Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Advertisements

Ποιότητα Λογισμικού Ενότητα 6: Μέτρηση της κάλυψης των ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Ποιότητα Λογισμικού Ενότητα 4: Παράδειγμα Ελέγχου. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Διδακτική Πληροφορικής
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Διδακτική Πληροφορικής
Διδακτική Πληροφορικής Ενότητα 2: Η εξέλιξη των εργαλείων της Εκπαίδευσης. Διδάσκων: Γεώργιος Σούλτης, Επίκουρος Καθηγητής. Τμήμα Μηχανικών Πληροφορικής,
Διδακτική Πληροφορικής Ενότητα 3: Η Πληροφορική στην Εκπαίδευση. Διδάσκων: Γεώργιος Σούλτης, Επίκουρος Καθηγητής. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Προγραμματισμός ΗΥ Ενότητα 6: Δισδιάστατοι πίνακες.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Αντικειμενοστραφής Προγραμματισμός Ι
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
Τεχνολογία Ξύλου 1 Ενότητα 13: Ποιότητα και Πιστοποίηση Ξυλείας Διδάσκων: Δρ. Μιχάλης Σκαρβέλης, Αναπληρωτής Καθηγητής. Τμήμα Σχεδιασμού και Τεχνολογίας.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Εκπαιδευτικά Προγράμματα με Χρήση Η/Υ ΙΙ Θέμα «παιγνίδια» (website address) Διδάσκουσα: Καθηγήτρια Τζένη.
Στοιχεία Μηχανών ΙΙ Ενότητα 3: Μετωπικοί τροχοί με κεκλιμένη οδόντωση – Κωνικοί οδοντωτοί τροχοί Δρ Α. Δ. Τσολάκης Τμήμα Μηχανολόγων Μηχανικών Τ.Ε. ΕΛΛΗΝΙΚΗ.
Τμήμα Τεχνολόγων Γεωπόνων Τίτλος Μαθήματος: ΚΑΛΛΩΠΙΣΤΙΚΑ ΔΕΝΤΡΑ ΚΑΙ ΘΑΜΝΟΙ Ενότητα 12: Οδηγίες δημιουργίας φυτολογίου Γρηγόριος Βάρρας Αν. Καθηγητής Άρτα,
Διοίκηση Ανθρωπίνων Πόρων Ενότητα 3: Προσέλκυση Ανθρώπινου Δυναμικού. Διδάσκων: Γεώργιος Ασπρίδης, Επίκουρος Καθηγητής. Τμήμα Διοίκησης Επιχειρήσεων.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Αντικειμενοστραφής Προγραμματισμός Ι
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Προγραμματισμός κινητών συσκευών
Κλάσεις και αντικείμενα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
Προγραμματισμός ΗΥ Ενότητα 11: Header Files. Διδάσκων: Ηλίας Κ Σάββας,
Τεχνολογία και Προγραμματισμός Υπολογιστών
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(9)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Διαχείριση Κινδύνου Ενότητα 7: Παρακολούθηση Κινδύνων.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επιχειρησιακές Επικοινωνίες
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Άσκηση 9 (1 από 2) Ανακαλύψτε στο χάρτη σας μερικά χαρτογραφικά αντικείμενα που να ανήκουν στις παρακάτω κατηγορίες : φυσικά, τεχνητές κατασκευές, αφηρημένα.
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(3)
Εργαστήριο 7 : Scratch (Μέρος 7ο) Δημήτριος Νικολός ΤΕΕΑΠΗ
Τοπολογικές σχέσεις 1/3 Βρείτε και περιγράψτε τις τοπολογικές σχέσεις σύμφωνα με τους (Pantazis, Donnay 1996) για τα παρακάτω γεω-γραφικά αντικείμενα:
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός κινητών συσκευών
Επικοινωνιακός Προγραμματισμός Ι
Ηλεκτρικές Μηχανές ΙΙ Ενότητα 5: Κανονικοποιημένες Καμπύλες
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Επικοινωνιακός Προγραμματισμός Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επιχειρησιακές Επικοινωνίες
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(7)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(4)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΕνΟτητα # 8: Ms Word V CLAUDIA BOETTCHER ΤμΗμα ΙστορΙαΣ
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(5)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(10)
ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Γενική και Μαθηματική Χαρτογραφία (Ε)
Ενότητα 1: ……………….. Όνομα Επώνυμο Τμήμα __
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός κινητών συσκευών
Προγραμματισμός ΗΥ Ενότητα 12: Αρχεία Δομών. Διδάσκων: Ηλίας Κ Σάββας,
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.

Άδειες χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην παρακάτω άδεια χρήσης Creative Commons (C C): Αναφορά δημιουργού (B Y), Μη εμπορική χρήση (N C), Μη τροποποίηση (N D), 3.0, Μη εισαγόμενο. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί ενότητας Ο αναγνώστης να μπορεί να: 1) Αντιληφθεί την έννοια της κληρονομικότητας. 2) Χρησιμοποιεί την κληρονομικότητα σε μεγάλα προγράμματα. Κληρονομικότητα4

Περιεχόμενα ενότητας 1) Κληρονομικότητα 2) Παραδείγματα Κατασκευαστές5

Κληρονομικότητα (inheritance)  Είναι ο τρόπος με τον οποίο μία τάξη, μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά, από άλλες τάξεις.  Μέσω της κληρονομικότητας, μπορούμε να δημιουργήσουμε μία νέα τάξη (θυγατρική), προσδιορίζοντας μόνο τα σημεία εκείνα, στα οποία αυτή διαφέρει από μία υπάρχουσα τάξη. class TestB extends TestA { ……………. } Κληρονομικότητα6

Μέθοδοι επικάλυψης  Όταν μία μέθοδος ορίζεται σε μία υποκλάση και στην υπερκλάση, χρησιμοποιείται η μέθοδος της υποκλάσης.  Αυτό επιτρέπει σε μία υποκλάση να αλλάζει, να αντικαθιστά ή να καταργεί τελείως, μέρος της συμπεριφοράς ή των ιδιοτήτων των υπερκλάσεων της.  Η δημιουργία μιας τέτοιας μεθόδου σε μία υποκλάση, έτσι ώστε να αλλάξει η συμπεριφορά που κληρονομήθηκε από μία υπερκλάση, ονομάζεται μέθοδος επικάλυψης (Overriding). Κληρονομικότητα7

Η λέξη this  Με τη λέξη this, αναφερόμαστε σε μεταβλητές ή μεθόδους του τρέχοντος αντικειμένου μας. public class ΌνομαΚλάσης { private int a; public μέθοδοςA( int a){ this.a = 15; … } Κληρονομικότητα8

Η χρήση του this  Σε υποκλάσεις η λέξη this, χρησιμοποιείται όταν θέλουμε να αναφερθούμε σε μεταβλητές και μεθόδους, του τρέχοντος αντικειμένου μας. Κληρονομικότητα9

Η χρήση του super  Η λέξη super, χρησιμοποιείται όταν θέλουμε να αναφερθούμε σε μεταβλητές και μεθόδους, της αμέσως προηγούμενης υπερκλάσης του αντικειμένου μας. Κληρονομικότητα10

Θέματα που πρέπει να γνωρίζουμε Αφού μία τάξη δηλωθεί ότι επεκτείνει την υπερτάξη της, κληρονομεί κάποια από τα μέλη της υπερτάξης της με τους εξής κανόνες:  Αν η υπερτάξη έχει δηλώσει κάποια μέλη ως ιδιωτικά (private), τότε τα μέλη αυτά, ναι μεν κληρονομούνται από την υποτάξη, αλλά η πρόσβαση γίνεται έμμεσα μέσω μεθόδων τύπου public της υπερτάξης.  Από την άλλη μεριά, η υποτάξη μπορεί να αναφερθεί στα προστατευμένα (protected) μέλη της, (που κληρονομούνται από την υπερτάξη), άμεσα χωρίς κανένα πρόβλημα.  Τα δημόσια (public) μέλη της υπερτάξης, είναι φυσικά προσπελάσιμα από όλους και από τις υποτάξεις. Κληρονομικότητα11

Παράδειγμα - Μέρος 1ο Δημιουργούμε την τάξη Person. public class Person { protected String name; private int age; public Person() {} public void setName(String n) { name = n; } public void setAge(int a) { age = a; } public String getName() { return name; } public int getAge() { return age; } public String sayWhoYouAre() { return "Είμαι ο “ +name+ " και είμαι “ + age + " ετών."; } Κληρονομικότητα12

Παράδειγμα - Μέρος 2ο Δημιουργούμε την υποτάξη Student. public class Student extends Person { private String fieldOfStudy; public void setField(String s) { fieldOfStudy = s; } public String getField() { return fieldOfStudy; } public String sayWhoYouAre() { return "Είμαι o " + name + " και είμαι " + getAge() + " ετών. " + "Σπουδάζω " + fieldOfStudy; } Κληρονομικότητα13

Παράδειγμα - Μέρος 3ο Στην τάξη Main χρησιμοποιούμε αντικείμενα της τάξης Person και της υποτάξης Student. public class TestPesonAndStudent { public static void main(String[] args) { Person p = new Person(); Student s = new Student(); p.setName("Γιώργος"); p.setAge(33); s.setName("Νίκος"); s.setAge(22); s.setField("Πληροφορική"); System.out.println(p.sayWhoYouAre()); System.out.println(s.sayWhoYouAre()); } Κληρονομικότητα14

Παράδειγμα 2 με κλάση (1 από 6)  Δημιουργήστε μία κλάση αντικειμένων Student, η οποία να περιγράφει φοιτητές. Ένας φοιτητής έχει το όνομα, το επώνυμο, και τον αριθμό μητρώου του. Η κλάση που θα δημιουργήσετε, πρέπει να περιλαμβάνει μία μέθοδο κατασκευής, τις μεθόδους πρόσβασης στο όνομα, το επώνυμο, και τον αριθμό μητρώου του φοιτητή, και μία μέθοδο εκτύπωσης ενός αντικειμένου. Στη συνέχεια να δημιουργήσετε την κλάση JavaStudent, η οποία να επεκτείνει την κλάση Student, με τον βαθμό κάθε φοιτητή στο μάθημα της Java. Η νέα κλάση πρέπει να περιλαμβάνει μία μέθοδο κατασκευής, μία μέθοδο πρόσβασης στο βαθμό του φοιτητή, και μία μέθοδο εκτύπωσης ενός αντικειμένου. Στη συνέχεια γράψτε ένα πρόγραμμα, στο οποίο να δημιουργήσετε τέσσερα αντικείμενα της κλάσης JavaStudent. Εισάγετε κατάλληλα δεδομένα σε αυτά και εκτυπώστε τα. Κληρονομικότητα15

Παράδειγμα 2 με κλάση (2 από 6) public class Student { protected String onoma; protected String eponimo; protected int AM; //Arithmos mitroou // Methodos kataskevis (Constructor) public Student(String onoma, String eponimo, int AM) { this.onoma = onoma; this.eponimo = eponimo; this.AM = AM; } Κληρονομικότητα16

Παράδειγμα 2 με κλάση (3 από 6) public String onoma() //Methodos prosvasis sto onoma { return onoma; } public String eponimo() // Methodos prosvasis sto eponimo { return eponimo; } public int AM() // Methodos prosvasis ston AM { return AM; } public String toString() //Methodos ektyposis antikeimenou { String a = new String(onoma + “ “ + eponimo “ + AM : “ + AM); return a; } Κληρονομικότητα17

Παράδειγμα 2 με κλάση (4 από 6) public class JavaStudent extends Student { protected double bathmos; // Bathmos sto mathima Java // Methodos kataskevis (Constructor) public JavaStudent(String onoma, String eponimo, int AM, int bathmos) { super(onoma, eponimo, AM); this.bathmos = bathmos; } public double bathmos() // Methodos prosvasis sto bathmo { return bathmos; } public String toString() // Methodos ektyposis antikeimenou { String a = new String(super.toString() + “Bathmos : “ + bathmos); return a; } Κληρονομικότητα18

Παράδειγμα 2 με κλάση (5 από 6) class TestJavaStudent { public static void main(String[] arguments) { JavaStudent a = new JavaStudent(“Nikolaos”, “Apostolou”, 3145, 8.5); JavaStudent b = new JavaStudent(“Ioannis”, “Dalas”, 3256, 5.0); JavaStudent c = new JavaStudent(“Georgios”, “Ladas”, 3372, 7.0); JavaStudent d = new JavaStudent(“Maria”, “Nikolaou”, 3484, 6.5); System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); } Κληρονομικότητα19

Παράδειγμα 2 με κλάση (6 από 6) Κληρονομικότητα20

Τέλος ένατης ενότητας