Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12

Σχετικά έγγραφα
class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #11

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

Προγράμματα με δομή Κληρονομικότητας

Αντικειµενοστραφής Προγραµµατισµός

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

2.1 Αντικειµενοστρεφής προγραµµατισµός

Αντικειμενοστρεφής Προγραμματισμός

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Προγράμματα με δομή Κληρονομικότητας

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

Κλάσεις και Αντικείµενα

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

(Διαφάνειες Νίκου Βιδάκη)

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Σύνθεση και Κληρονομικότητα

Αντικειμενοστρεφής Προγραμματισμός

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008


Wrapper Classes, Abstract Classes and Interfaces

Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #3

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Διδάσκων: Παναγιώτης Ανδρέου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Σύνθεση και Κληρονομικότητα

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Η λέξη κλειδί this. Γαβαλάς Δαμιανός

Γενικά (για τις γραπτές εξετάσεις)

Ειδικά Θέματα Προγραμματισμού

Η κατασκευή αντικειμένων της κλάσης Student μπορεί να πραγματοποιηθεί είτε στη main είτε σε οποιαδήποτε μέθοδο κλάσης:

Εισαγωγή στον Προγ/μό Η/Υ

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 9: Κληρονομικότητα (Inheritance)

Αντικειµενοστρεφής Προγραµµατισµός

3 Αλληλεπίδραση Αντικειμένων

4 Συλλογές Αντικειμένων

02 Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Διαγράμματα Κλάσεων στη Σχεδίαση

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

Βασικά της γλώσσας JAVA

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

Αντικειμενοστρεφής Προγραμματισμός

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #7

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό - Εβδοµάδα 7

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 8 : ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ & ΠΟΛΥΜΟΡΦΙΣΜΟΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Οντοκεντρικός Προγραμματισμός

Διδάσκων: Παναγιώτης Ανδρέου

Mεταβλητές (variables) και Σταθερές (constants)

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

Βασικά Στοιχεία της Java

Αντικειμενοστραφής Προγραμματισμός

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Οντοκεντρικός Προγραμματισμός

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Ειδικά Θέματα Προγραμματισμού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Οντοκεντρικός Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Κάποιες γενικές παρατηρήσεις:

Αντικειμενοστρεφής Προγραμματισμός

Βάση Δεδομένων. User Interface - 1 User Interface - 2

Αντικειμενοστρέφεια. Ορισμοί αντικειμενοστρέφειας. Κάποιες γενικές παρατηρήσεις: Περιεχόμενα. Ποιοι είναι οι ορισμοί των παρακάτω;

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, 1908

Certified Java Programmer (CJP)

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

Transcript:

Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 2 Διάγραμμα αντικειμένων [Object diagram] Πηγαίος κώδικας Database [ ] void list() for (int i = 0; i < mys.length; i++) mys[i].; Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 3 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 4 Σύνοψη: μέθοδος print Υπενθύμιση: αντικείμενα και κλάσεις Music triple j sampler 33 great! class () object Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 5 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 6

Κλήση μεθόδου Αντιστοίχιση μεθόδου με κληρονομικότητα triple j sampler 33 great! () triple j sampler 33 great! getartist() Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 7 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 8 super Μία μέθοδος της υπερκλάσης μπορεί να κληθεί από μια μέθοδο της κλάσης μέσω της ειδικής μεταβλητής super. public void super.; System.out.println(); Χρήση της super σε κατασκευαστές Οι κατασκευαστές των υποκλάσεων πρέπει να έχουν μία κλήση προς τον super (τον κατασκευαστή της υπερκλάσης) στην πρώτη γραμμή του κώδικά τους. Εάν η κλήση έχει παραληφθεί, η εντολή super(); εισάγεται αυτόματα από τον μεταφραστή. Προσοχή: Ο κατασκευαστής που δεν έχει παραμέτρους είναι αυτός που επιλέγεται να εισαχθεί αυτόματα! Σύσταση: Πάντα να εισάγετε μία κλήση προς τον κατασκευαστή super μην εξαρτάστε από την αυτόματη εισαγωγή του Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 9 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 10 Παραδείγματα κατασκευαστών Music (String title) super(); Music (String title) Music (String title) super(title); Άμεση κλήση στον super χωρίς παραμέτρους Έμμεση κλήση στον super χωρίς παραμέτρους (δουλεύει μόνο όταν υπάρχει στην υπερκλάση κατασκευαστής χωρίς παραμέτρους) Άμεση κλήση στον super με παραμέτρους Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 11 Κληρονομικότητα και υπο-τύποι Η κληρονομικότητα δημιουργεί μία σχέση υπο-τύπων [subtypes] μεταξύ κλάσεων Υπενθύμιση: Η Java είναι μία γλώσσα με στατικό σύστημα τύπων δεδομένων [typed language]. Μόνο τιμές με συμβατούς τύπους δεδομένων (που είναι γνωστοί κατά την μετάφραση) μπορεί να καταχωρηθούν σε μεταβλητές και παραμέτρους Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 12

Χρήση υπο-τύπων Person aperson; Student astudent; Staff astaffmember; aperson = astaffmember; aperson = astudent; aperson.changeaddress (); astudent = aperson; aperson.graduate(); astudent = new Student (); astaffmember = new Staff (); Σωστή χρήση Λάθος χρήση Υπο-τύποι και συμφωνία τύπων [conformance] Αντικείμενα υπο-τύπων μπορεί να υποκαθιστούν αντικείμενα των υπερ-τύπων τους (μπορεί να χρησιμοποιηθούν σε περιπτώσεις όπου αναμένονταν ένα αντικείμενο του υπερ-τύπου). «Ένα αντικείμενο υπο-τύπου είναι-ένα [is-a] αντικείμενο υπερ-τύπου» Ένας υπο-τύπος συμφωνεί [conforms to] με τον υπερτύπο. Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 13 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 14 Στατικοί δυναμικοί τύποι δεδομένων Στατικοί δυναμικοί τύποι δεδομένων Person aperson; Ο στατικός τύπος [static type] είναι ο τύπος δήλωσης μίας μεταβλητής ή παραμέτρου όπως αυτός εμφανίζεται στον πηγαίο κώδικα. Οι μεταβλητές μπορεί να αναφέρονται σε αντικείμενα του συγκεκριμένου τύπου δήλωσης τους ή σε αντικείμενα που ανήκουν σε οποιονδήποτε υπο-τύπο του. Student Ο δυναμικός τύπος [dynamic type] είναι ο τύπος του αντικειμένου (κατά το χρόνο εκτέλεσης). Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 15 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 16 Υπο-τύποι / πολυμορφισμός Δυναμικός καθορισμός τύπου [Dynamic dispatch] Οι υπο-τύποι παρέχουν τις ίδιες μεθόδους αλλά οι υλοποιήσεις [implementations] των μεθόδων μπορεί να διαφέρουν! Κώδικας: an = a; an.; an = a; an.; Αποτέλεσμα: : Triple J Hottest 100 (79 min) artist: sampler, 33 tracks double - great! Ίδιος κώδικας, Διαφορετικό αποτέλεσμα! : The South Park Movie (102 min) director: Fred Smith (not seen yet) Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 17 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 18

Προσδιορισμός μεθόδου [method lookup, binding] Επεκτασιμότητα [Extendability] an.; an "instance of" setcomment() getdirector() Σημείωση: Ο δυναμικός τύπος των δεδομένων προσδιορίζει το σημείο εκκίνησης της διαδικασίας προσδιορισμού της κατάλληλης μεθόδου! Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 19 Ο δυναμικός προσδιορισμός του τύπου δεδομένων υποστηρίζει την επεκτασιμότητα νέες υποκλάσεις μπορεί να προστεθούν αργότερα χωρίς να είναι απαραίτητη η τροποποίηση του κώδικα που χρησιμοποιεί τις κλάσεις βάσης. Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 20 Η κλάση Object tostring (Σχεδόν) κάθε κλάση έχει μία υπερ-κλάση. Εάν η υπερ-κλάση δεν έχει άμεσα δηλωθεί, τότε ως υπερκλάση θεωρείται η κλάση Object Οι μέθοδοι της κλάσης Object είναι διαθέσιμες σε κάθε κλάση Object Person Game Staff Student Η κλάση Object παρέχει τη μέθοδο tostring, η οποία μετατρέπει ένα αντικείμενο σε ένα String. Παράδειγμα: String s = person.tostring(); Η μέθοδος tostring καλείται έμμεσα κατά την εκτέλεση της συνένωσης συμβολοσειρών (+) Παράδειγμα: System.out.println( Details: + person); Συνέπεια: όλα τα αντικείμενα μπορεί να λάβουν μέρος σε συνένωση συμβολοσειρών κατάλληλη λειτουργία για παρουσίαση αποτελεσμάτων! Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 21 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 22 Μετατροπείς πρόσβασης [Access Modifiers] Οι μετατροπείς πρόσβασης καθορίζουν την ορατότητα [visibility] ενός πεδίου ή μεθόδου. Παραδείγματα: private int number; protected String name; private Ορατά/προσπελάσιμα μόνο από το εσωτερικό της κλάσης Ένα private πεδίο client 1 Περιοχή ορατότητας a class public void changeaddress(address newaddress) private int calculateresult(int parameter) νέο! Μετατροπείς πρόσβασης: private, protected, public. client 2 subclass 1 subclass 2 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 23 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 24

public Ορατά/προσπελάσιμα από το εσωτερικό της κλάσης και από κάθε άλλη κλάση client 2 client 1 Ένα public πεδίο a class subclass 1 subclass 2 Περιοχή ορατότητας protected Ορατά/προσπελάσιμα από το εσωτερικό της κλάσης και από κάθε υποκλάση της Ένα protected πεδίο client 1 Περιοχή ορατότητας a class client 2 subclass 1 subclass 2 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 25 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 26 Οδηγίες χρήσης μετατροπέων πρόσβασης Χρησιμοποιείτε πάντοτε ένα μετατροπέα πρόσβασης. Περιορίστε την πρόσβαση όσο το δυνατό περισσότερο. Μη χρησιμοποιείτε public πεδία. Η δεσμευμένη λέξη final Δηλώστε μία μέθοδο ως final για να αποτρέψετε τον εκ νέου ορισμό της [prevent redefinition, overriding] Δηλώστε μία κλάση ως final για να είναι όλες οι μέθοδοί της final. Παραδείγματα: final public String getpassword() final class SecurityManager Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 27 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 28 Το πρόβλημα του «αντίστροφου πολυμορφισμού» Ανομοιογενείς συλλογές αντικειμένων class A class B extends A void dosomething(int n) Πως εκτελούμε μία Β-μέθοδο μετά από καταχώρηση στο αντικείμενο a (τύπου Α); // variables A a; B b; b = new B(); a = b; a.dosomething(42); b = a; b.dosomething(42); «λανθασμένα» στις περισσότερες γλώσσες Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 29 Μία ανομοιογενής συλλογή [heterogenous collection] είναι μία συλλογή από αντικείμενα διαφορετικών τύπων (πολυμορφική συλλογή [polymorphic collection]) Ανομοιογενής συλλογές δημιουργούνται δηλώνοντας τα στοιχεία τους ως μέλη μιας υπερ-κλάσης τους. Η γενικότερη περίπτωση: Τα στοιχεία είναι τύπου Object η συλλογή μπορεί να περιέχει οποιοδήποτε αντικείμενο (πχ. ListArray) Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 30

Απώλεια τύπου [type loss] Το πρόβλημα: η απώλεια τύπου String mynote = consider this! ; ArrayList notes = new ArrayList(); notes.add(mynote); String note; note = notes.get(0); Σωστό -- η παράμετρος είναι τύπου Object Λάθος -- Καταχώρηση Object σε String! Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 31 Μετατροπή τύπου [casting] Η λύση: μετατροπή τύπου [casting] String mynote = consider this! ; ArrayList notes = new ArrayList(); notes.add(mynote); String note; note = (String)notes.get(0); Μετατροπή σε String! Μία μετατροπή τύπου μετατρέπει τον στατικό τύπο ενός αντικειμένου σε έναν άλλο τύπο (συνήθως υπο-τύπο). Είναι σωστή μόνο εάν ο δυναμικός τύπος του αντικειμένου είναι σύμφωνος (conforms) με τον τύπο της μεταβλητής στην οποία καταχωρείται. Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 32 Τμήμα κώδικα Γενικές κλάσεις [Generics] String mynote = consider this! ; ArrayList notes = new ArrayList(); notes.add(mynote); System.out.println(notes.get(0)); println χωρίς μετατροπή τύπου. Δουλεύει; γιατί; / γιατί όχι; Συλλογές που περιέχουν αντικείμενα ενός συγκεκριμένου τύπου ή υποτύπων του. Παραμετροποιημένοι [parameterized] ή γενικοί [generic] τύποι. ArrayList<Person> ArrayList<Entertainment> Περισσότερα ΠΡΟΣΕΧΩΣ Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 33 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 34