Εμφάνιση 1-5 από 5
  1. #1
    Εγγραφή
    13-10-2009
    Μηνύματα
    87
    Downloads
    0
    Uploads
    0
    Εχω λιγο καιρο που εχω αρχισει να ασχολουμαι με Java και εχω μια απορια ,πανω σε ενα πινακα απο αντικειμενα κλασεων, λογω του οτι φτιαχνω ενα project και εχω κολλησει.
    Εχω τον παρακατω κωδικα(σε συντομια)
    Κώδικας:
    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);
        //!!!!!!!!!!!!!!!!!!!!
    }
    Το λαθος υπαρχει αναμεσα στα θαυμαστικα και συγκεκριμενα οταν παει να εισαγει εναν νεο γειτονα στη λιστα(στον "pointer" headN) και μου πεταει NullPointerException.
    Δεν μπορω να καταλαβω τι λαθος εχω κανει ή μηπως δεν εχω καταλαβει κατι σωστα και το χρησιμοποιω λαθος. ¨Η μηπως εχω ξεχασει να κανω import καποια βιβλιοθηκη, μηπως εχω δηλωσει λαθος τον πινακα.
    Οποιος ξερει ας βοηθησει.
    Ευχαριστω εκ των προτερων.

  2. #2
    Εγγραφή
    05-07-2009
    Μηνύματα
    43
    Downloads
    0
    Uploads
    0
    Για δοκίμασε αυτό.

    Κώδικας:
    array[1] = new NodeID();
    Θες πολύ διάβασμα φίλε.

  3. #3
    Εγγραφή
    25-03-2009
    Ηλικία
    41
    Μηνύματα
    507
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ HOL Full
    Ταχύτητα
    14886/1022
    ISP
    HOL
    DSLAM
    HOL - ΑΡΤΑ
    Router
    3COM OfficeConnect
    SNR / Attn
    9(dB) / 27(dB)
    Στην 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 γενικά) σχεδόν πάντα δεσμεύουν μνήμη στο σωρό για τα αντικείμενα (μόνο με εξαιρέσεις στην στοίβα) και άρα σχεδόν πάντα θα θεωρείς ότι έχεις δείκτη σε αντικείμενο.

  4. #4
    Εγγραφή
    13-10-2009
    Μηνύματα
    87
    Downloads
    0
    Uploads
    0
    Ευχαριστω @djcat και ειδικα εσενα φιλε μου @karnage. Ησουν κατατοπιστικοτατος και καταλαβα αμεσως τι λαθος εχω κανει. Πολυ ωραια εξηγηση.
    Το προβλημα διορθωθηκε.
    Ευχαριστω και παλι παιδια.

  5. #5
    Εγγραφή
    22-10-2004
    Μηνύματα
    2.435
    Downloads
    4
    Uploads
    0
    Ταχύτητα
    102400/10240
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΧΟΛΑΡΓΟΣ
    Router
    Speedport Plus
    Βασικά στην java μιλάμε για reference και όχι για pointer. Ψάξε λίγο για να καταλάβεις τις διαφορές. Είναι μικρές, αλλά σημαντικές, καλό είναι να τις ξέρεις. Επίσης να ξέρεις ότι αυτό το κάνεις απλά για εκπαιδευτικούς σκοπούς. Στο java.util.* υπάρχουν έτοιμες List, Tree, Map κλάσεις. Θα μπορούσες να δεις και τον source κώδικα για να πάρεις μια ιδέα.
    Heh, screw you guys... I'm going home!

Παρόμοια Θέματα

  1. Απορία για linked πίνακα μεταξύ Word & Excel
    Από Sebu στο φόρουμ Software γενικά
    Μηνύματα: 5
    Τελευταίο Μήνυμα: 01-08-10, 10:53
  2. Java: Πρόβλημα με πίνακα
    Από mpardsu στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 4
    Τελευταίο Μήνυμα: 23-01-09, 17:06
  3. Μηνύματα: 4
    Τελευταίο Μήνυμα: 04-03-08, 22:48
  4. Απορια πανω στη συνδεση
    Από jovanis στο φόρουμ Nova
    Μηνύματα: 13
    Τελευταίο Μήνυμα: 27-09-07, 11:52
  5. Απορία πάνω στο RAID
    Από ksipsi στο φόρουμ Σκληροί δίσκοι, αποθηκευτικά μέσα και λοιπά περιφερειακά
    Μηνύματα: 12
    Τελευταίο Μήνυμα: 26-12-06, 07:50

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας