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

Slides:



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

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

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

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

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

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

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

 Οι κατασκευαστές (constructors), είναι μέθοδοι που εκτελούνται όταν κατασκευάζεται ένα αντικείμενο. Μία τάξη μπορεί να έχει αρκετούς κατασκευαστές, οι οποίοι διαφοροποιούνται από τη λίστα των παραμέτρων τους.  Ένας κατασκευαστής, θα πρέπει υποχρεωτικά να έχει το ίδιο όνομα με αυτό της τάξης, αλλά δεν μπορεί να έχει τύπο επιστροφής, γιατί δεν επιστρέφει καμία τιμή. Πρέπει επίσης να έχει τύπο πρόσβασης public. Έχει δηλαδή, την ακόλουθη μορφή: πρόσβαση Όνομα_Τάξης(λίστα_παραμέτρων) { εντολές αρχικοποίησης } Κατασκευαστές6

Μέθοδοι Κατασκευής (Constructors)  Ένας κατασκευαστής, εκτελείται κάθε φορά που δημιουργούμε ένα αντικείμενο, και ο σκοπός του θα πρέπει να είναι η αρχικοποίηση του αντικειμένου.  Η Java υποστηρίζει την ύπαρξη πολλών κατασκευαστών, οι οποίοι θα πρέπει να διακρίνονται μεταξύ τους, από τη λίστα των παραμέτρων τους.  Αν δεν ορίσετε κανένα κατασκευαστή για την τάξη σας, τότε η Java θα προμηθεύσει ένα εξ ορισμού κατασκευαστή (default constructor), ο οποίος δεν κάνει τίποτα.  Οι κατασκευαστές συνήθως, χρησιμοποιούνται για την δημιουργία αντικειμένων με ταυτόχρονη απόδοση τιμών, σε κάποιες ιδιωτικές μεταβλητές της τάξης. Κατασκευαστές7

Παράδειγμα: Κατασκευαστές Η τάξη Person, θα μπορούσε να είχε ένα κατασκευαστή με παράμετρο ένα String, που θα αρχικοποιούσε τη μεταβλητή name στο δοθέν String: public Person(String s) { name = s; } και ένα κατασκευαστή, με παράμετρο ένα άλλο αντικείμενο τύπου Person, ο οποίος θα αντέγραφε τις ιδιότητες του δοθέντος Person, στο αντικείμενο που δημιουργείται: public Person(Person p) { name = p.getName(); age = p.getAge(); } Κατασκευαστές8

Κλήση του κατάλληλου κατασκευαστή  Όταν δημιουργείτε ένα αντικείμενο μίας τάξης, η Java θα καλέσει τον κατάλληλο κατασκευαστή, ανάλογα με τη λίστα παραμέτρων που δόθηκε.  Παραδείγματα δημιουργίας αντικειμένου Person, είναι τα ακόλουθα:... //καλείται ο εξ ορισμού κατασκευαστής Person p1 = new Person(); //καλείται ο κατασκευαστής με παράμετρο ένα String Person p2 = new Person("Maria"); //καλείται ο κατασκευαστής με παράμετρο ένα άλλο Person Person p3 = new Person(p2); Κατασκευαστές9

Παράδειγμα 1 με κλάση (1 από 5)  Δημιουργήστε μία κλάση αντικειμένων Point, η οποία να περιγράφει σημεία στο επίπεδο. Να περιλαμβάνει μία μέθοδο κατασκευής, τις μεθόδους πρόσβασης στις συντεταγμένες x και y του σημείου, μία μέθοδο ελέγχου ισότητας δύο αντικειμένων, και μία μέθοδο εκτύπωσης ενός αντικειμένου. Στη συνέχεια, γράψτε ένα πρόγραμμα στο οποίο να χρησιμοποιήσετε την κλάση που φτιάξατε, και να δημιουργήσετε δύο σημεία στο επίπεδο. Με την βοήθεια των δύο αυτών σημείων, να ελέγξετε την κλάση των αντικειμένων που δημιουργήσατε. Κατασκευαστές10

Παράδειγμα 1 με κλάση (2 από 5) public class Point { // Sintetagmenes x kai y tou shmeiou private double x, y; // Methodos kataskevis (Constructor) public Point(double a, double b) { x = a; y = b; } // Methodos prosvasis sti sintetagmeni x (Accessor Method) public double x() { return x; } Κατασκευαστές11

Παράδειγμα 1 με κλάση (3 από 5) // Methodos prosvasis sti sintetagmeni y (Accessor Method) public double y() { return y; } // Methodos elegxou isotitas antikeimenon public boolean equals(Point p) { return (x == p.x && y == p.y); } // Methodos ektyposis antikeimenou public String toString() { return new string( “ ( “ + x + ”, “ + y + “ ) “ ); } Κατασκευαστές12

Παράδειγμα 1 με κλάση (4 από 5) class TestPoint { public static void main(String[] arguments) { Point a = new Point(4, 5); System.out.println(“ a.x = “ + a.x() + “ a.y = “ + a.y() ); System.out.println(“ a = “ + a); Point b = new Point (2, 3); System.out.println(“ b = “ + b); if(a.equals(b) ) System.out.println(“ To a isoute me to b”); else System.out.println(“ To a einai diaforetiko tou b”); b = new Point(4, 5); System.out.println(“ b = “ + b); if(a.equals(b) ) System.out.println(“ To a isoute me to b”); else System.out.println(“ To a einai diaforetiko tou b”); } Κατασκευαστές13

Παράδειγμα 1 με κλάση (5 από 5) Κατασκευαστές14

Παράδειγμα 2: Μία τάξη τραπεζικού λογαριασμού (1 από 3)  Σαν παράδειγμα, εξετάζουμε μία τάξη ενός τραπεζικού λογαριασμού. Η τάξη Account, όπως θα την πούμε, θα είναι πολύ απλή. Θα αποτελείται από τα εξής: 1)Ένα ιδιωτικό μέλος balance, το οποίο θα είναι το υπόλοιπο του λογαριασμού. 2)Έναν constructor (κατασκευαστή), που θα καλείται όταν δημιουργούνται αντικείμενα τύπου Account, και θα θέτει την ιδιότητα balance ίση με 0. Αρχικά το υπόλοιπο κάθε λογαριασμού είναι μηδέν. 3)Μία μέθοδο getBalance, που θα επιστρέφει το τρέχον υπόλοιπο του λογαριασμού. 4)Μία μέθοδο withdraw (ανάληψη), για την ανάληψη χρημάτων από τον λογαριασμό. 5)Μία μέθοδο deposit (κατάθεση), για την κατάθεση χρημάτων στο λογαριασμό. Κατασκευαστές15

Παράδειγμα 2: Μία τάξη τραπεζικού λογαριασμού (2 από 3) public class Account { private double balance; public Account() { //constructor balance = 0.0; } public double getBalance() { return balance; } public boolean withdraw(double money) { if (money <= balance) { balance -= money; return true; } return false; } Κατασκευαστές16

Παράδειγμα 2: Μία τάξη τραπεζικού λογαριασμού (3 από 3) public boolean deposit(double money) { if (money >= 0) { balance += money; return true; } return false; } Κατασκευαστές17

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