Εχω λιγο καιρο που εχω αρχισει να ασχολουμαι με Java και εχω μια απορια ,πανω σε ενα πινακα απο αντικειμενα κλασεων, λογω του οτι φτιαχνω ενα project και εχω κολλησει.
Εχω τον παρακατω κωδικα(σε συντομια)
Το λαθος υπαρχει αναμεσα στα θαυμαστικα και συγκεκριμενα οταν παει να εισαγει εναν νεο γειτονα στη λιστα(στον "pointer" headN) και μου πεταει NullPointerException.Κώδικας:import java.io.*; import java.util.*; class Neighbor{ int id; Neighbor next; Neighbor previous; } class NeighborList{ Neighbor head,tail; //constructor εννοειται οτι υπαρχει και αρχικοποιει σε null τα παραπανω //συναρτηση "public void addNeighbor(int data)" που εισαγει εναν νεο //κομβο στη λιστα και ειναι τυπου void } class NodeID{ NeighborList headN=new NeighborList(); //και διαφορα αλλα } class project{ //!!!!!!!!!!!!!!!!!!!! NodeID[] array=new NodeID[10] array[1].headN.addNeighbor(100); //!!!!!!!!!!!!!!!!!!!! }
Δεν μπορω να καταλαβω τι λαθος εχω κανει ή μηπως δεν εχω καταλαβει κατι σωστα και το χρησιμοποιω λαθος. ¨Η μηπως εχω ξεχασει να κανω import καποια βιβλιοθηκη, μηπως εχω δηλωσει λαθος τον πινακα.
Οποιος ξερει ας βοηθησει.
Ευχαριστω εκ των προτερων.
Εμφάνιση 1-5 από 5
-
01-11-10, 03:07 Απορια πανω σε πινακα απο αντικειμενα σε Java #1
-
01-11-10, 10:46 Απάντηση: Απορια πανω σε πινακα απο αντικειμενα σε Java #2
Για δοκίμασε αυτό.
Κώδικας:array[1] = new NodeID();
-
01-11-10, 13:21 Απάντηση: Απορια πανω σε πινακα απο αντικειμενα σε Java #3
Στην Java, όπως και στην C# αλλά αντίθετα με την C++, ο πίνακας που δήλωσες είναι πίνακας δεικτών σε αντικείμενα και όχι πίνακας αντικειμένων.
Δηλαδή η έκφραση :
Object[] array = new Object[10];
δεσμεύει ένα πίνακα με 10 θέσεις για δείκτες σε αντικείμενα τύπου Object. Για να δώσεις τιμές σε αυτούς τους δείκτες, θα πρέπει επί μέρους να αρχικοποιείς τον καθένα όπως αναφέρθηκε πιο πάνω :
Κώδικας:array[0] = new Object(); array[1] = new Object();
Στην C++ αντίθετα η έκφραση θα δέσμευε μνήμη για 10 αντικείμενα. Για να κάνεις το ίδιο σε C++ θα έπρεπε να δηλώσεις :
Κώδικας:Object *array[10];
Κώδικας:array[0] = new Object();
Η διαφορά είναι ότι οι γλώσσες όπως Java, C# (.Net γενικά) σχεδόν πάντα δεσμεύουν μνήμη στο σωρό για τα αντικείμενα (μόνο με εξαιρέσεις στην στοίβα) και άρα σχεδόν πάντα θα θεωρείς ότι έχεις δείκτη σε αντικείμενο.
-
01-11-10, 18:09 Απάντηση: Απορια πανω σε πινακα απο αντικειμενα σε Java #4
Ευχαριστω @djcat και ειδικα εσενα φιλε μου @karnage. Ησουν κατατοπιστικοτατος και καταλαβα αμεσως τι λαθος εχω κανει. Πολυ ωραια εξηγηση.
Το προβλημα διορθωθηκε.
Ευχαριστω και παλι παιδια.
-
04-11-10, 21:52 Απάντηση: Απορια πανω σε πινακα απο αντικειμενα σε Java #5
Βασικά στην java μιλάμε για reference και όχι για pointer. Ψάξε λίγο για να καταλάβεις τις διαφορές. Είναι μικρές, αλλά σημαντικές, καλό είναι να τις ξέρεις. Επίσης να ξέρεις ότι αυτό το κάνεις απλά για εκπαιδευτικούς σκοπούς. Στο java.util.* υπάρχουν έτοιμες List, Tree, Map κλάσεις. Θα μπορούσες να δεις και τον source κώδικα για να πάρεις μια ιδέα.
Heh, screw you guys... I'm going home!
Παρόμοια Θέματα
-
Απορία για linked πίνακα μεταξύ Word & Excel
Από Sebu στο φόρουμ Software γενικάΜηνύματα: 5Τελευταίο Μήνυμα: 01-08-10, 10:53 -
Java: Πρόβλημα με πίνακα
Από mpardsu στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 4Τελευταίο Μήνυμα: 23-01-09, 17:06 -
Γαλλία: πάνω από 15 εκατομμύρια συνδέσεις brοadband και πάνω από 5 εκατομμύρια γραμμές LLU
Από lewton στο φόρουμ ΕιδήσειςΜηνύματα: 4Τελευταίο Μήνυμα: 04-03-08, 22:48 -
Απορια πανω στη συνδεση
Από jovanis στο φόρουμ NovaΜηνύματα: 13Τελευταίο Μήνυμα: 27-09-07, 11:52 -
Απορία πάνω στο RAID
Από ksipsi στο φόρουμ Σκληροί δίσκοι, αποθηκευτικά μέσα και λοιπά περιφερειακάΜηνύματα: 12Τελευταίο Μήνυμα: 26-12-06, 07:50
Bookmarks