| Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
java:arrays [2018/02/12 18:17] gthanos [Πίνακες αναφορικού τύπου] |
java:arrays [2020/02/21 11:58] gthanos [Πίνακες δύο διαστάσεων] |
| Rectangle [] rectangles = new Rectangle[4]; | Rectangle [] rectangles = new Rectangle[4]; |
| Point originOne = new Point(23, 94); | Point originOne = new Point(23, 94); |
| Rectangle rectOne = new Rectangle(100, 200, originOne); | Rectangle rectOne = new Rectangle(10, 20, originOne); |
| | |
| rectangles[0] = rectOne; | rectangles[0] = rectOne; |
| rectangles[1] = new Rectangle(50, 100, new Point(5,10)); | rectangles[1] = rectOne; |
| rectangles[2] = rectOne; | rectangles[2] = new Rectangle(50, 100, new Point(5,10)); |
| rectangles[3] = new Rectangle(20, 30, new Point(-5, 7)); | rectangles[3] = new Rectangle(20, 30, new Point(-5, 7)); |
| | |
| } | } |
| | |
| rectangles[1] = rectangles[3]; | rectangles[2] = rectangles[3]; |
| } | } |
| | |
| </code> | </code> |
| |
| Στον παραπάνω κώδικα στην γραμμή ''Rectangle [] rectangles = new Rectangle[4];'' δημιουργούμε ένα πίνακα από δείκτες σε αντικείμενα τύπου **Rectangle**. Αρχικά ο πίνακας έχει σε όλες τις θέσεις του την τιμή **null**. Στις επόμενες γραμμές αναθέτουμε αντικείμενα σε κάθε θέση του πίνακα. Οι θέσεις 0 και 2 του πίνακα δείχνουν στο ίδιο αντικείμενο στο οποίο δείχνει και η μεταβλητή **rectOne**. | Στον παραπάνω κώδικα στην γραμμή ''Rectangle [] rectangles = new Rectangle[4];'' δημιουργούμε ένα πίνακα από δείκτες σε αντικείμενα τύπου **Rectangle**. Αρχικά ο πίνακας έχει σε όλες τις θέσεις του την τιμή **null**. Στις επόμενες γραμμές αναθέτουμε αντικείμενα σε κάθε θέση του πίνακα. Οι θέσεις 0 και 1 του πίνακα δείχνουν στο ίδιο αντικείμενο στο οποίο δείχνει και η μεταβλητή **rectOne**. |
| |
| Εάν επιχειρήσουμε να σχεδιάσουμε το παραπάνω διάγραμμα αυτό θα δείχνει ως εξής: | Εάν επιχειρήσουμε να σχεδιάσουμε το παραπάνω διάγραμμα αυτό θα δείχνει ως εξής: |
| | |
| | |Αρχικά δημιουργείται ένας πίνακας που όλα τα στοιχεία του είναι **null**. |Στη συνέχεια δημιουργούμε αντικείμενα και τα αναθέτουμε σε κάθε θέση του πίνακα. Οι θέσεις 0 και 1 του πίνακα δείχνουν στο αντικείμενο που δείχνει και η μεταβλητή **rectOne**. |Η ανάθεση του αντικειμένου της θέσης 3 στην θέση 2 δημιουργεί ένα αντικείμενο για το οποίο δεν υπάρχει αναφορά. Το αντικείμενο αυτό καταστρέφεται από τον [[java:objects#garbage_collection|Garbage Collector]]. | |
| | | {{ :java:createrectangletable1.png?150 |}} | {{ :java:createrectangletable2.png? |}}| {{:java:createrectangletable3.png? |}} | |
| |
| |
| } | } |
| </code> | </code> |
| | |
| | == Επεξήγηση του παραπάνω κώδικα == |
| | | ''names = new String[3][];'' | Αρχικά δεσμεύουμε ένα μονοδιάστατο πίνακα που τα στοιχεία του είναι μονοδιάστατοι πίνακες από [[https://docs.oracle.com/javase/8/docs/api/java/lang/String.html|java.lang.String]]. | |
| | | ''names[0] = new String[3]; names[1] = new String[5]; names[2] = new String[4];'' |Για κάθε θέση του παραπάνω πίνακα δεσμεύουμε ένα νέο μονοδιάστατο πίνακα από [[https://docs.oracle.com/javase/8/docs/api/java/lang/String.html|java.lang.String]]. Οι νέοι πίνακες δεν έχουν απαραίτητα το ίδιο μέγεθος. | |
| |
| |
| | Προηγούμενο: [[java:objects| Δημιουργία Αντικειμένων]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[java:public_private_access_modifiers | Περιορισμός της πρόσβασης με τους προσδιοριστές private και public]] | | | Προηγούμενο: [[java:objects| Δημιουργία Αντικειμένων]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[java:this_operator | Ο τελεστής this]] | |