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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ποιότητα Λογισμικού Ενότητα 6: Μέτρηση της κάλυψης των ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Advertisements

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

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

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

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

Σκοποί ενότητας Ο αναγνώστης να μπορεί να αντιληφθεί την έννοια της αφηρημένης τάξης. Αφηρημένες τάξεις4

Περιεχόμενα ενότητας 1) Αφηρημένες τάξεις 2) Παραδείγματα Αφηρημένες τάξεις5

Αφηρημένες (abstract) τάξεις  Υπάρχουν μερικές τάξεις για τις οποίες δεν έχει νόημα η δημιουργία αντικειμένων.  Αυτές οι τάξεις θα πρέπει να δηλώνονται ως abstract (αφηρημένες).  Οι τάξεις που δηλώνονται ως abstract, δεν μπορούν να χρησιμοποιηθούν για την δημιουργία αντικειμένων, και χρησιμοποιούνται μόνο σαν υπερτάξεις άλλων τάξεων. Αφηρημένες τάξεις6

Αφηρημένες τάξεις και αφηρημένες μέθοδοι Όταν μία τάξη έχει μία abstract μέθοδο:  Δεν δίνει παρά μόνο την δήλωση της μεθόδου, χωρίς να την ορίζει.  Δεν μπορούμε να δημιουργήσουμε αντικείμενα από αυτή την τάξη, η οποία θεωρείται και πρέπει να δηλωθεί ως abstract.  Όλες οι υποτάξεις της τάξης αυτής, θα πρέπει να ορίσουν την abstract μέθοδο, αλλιώς και αυτές με τη σειρά τους θα είναι abstract, και δεν θα μπορούμε να δημιουργήσουμε αντικείμενα από αυτές. Αφηρημένες τάξεις7

Παράδειγμα αφηρημένης τάξης Μέρος 1ο Η τάξη Payment που ακολουθεί: abstract class PaymentMethod { protected double money; PaymentMethod() { money = 0; } public double getMoney() { return money; } public void setMoney(double d) { money = d; } public abstract void pay(); } Η συμπαγής (concrete) τάξη που θα αποτελέσει υποτάξη της αφηρημένης (abstract) τάξης PaymentMethod. Η τάξη που θα δηλώσουμε εδώ είναι η CreditCardPayment για πληρωμή με πιστωτική κάρτα. public class CreditCardPayment extends PaymentMethod { public void pay() { System.out.println( “Πληρωμή"+money+ " Ευρώ με πιστωτική κάρτα"); } Αφηρημένες τάξεις8

Παράδειγμα αφηρημένης τάξης Μέρος 2ο Η άλλη συμπαγής (concrete) τάξη που θα αποτελέσει υποτάξη της αφηρημένης (abstract) τάξης PaymentMethod, είναι η CheckPayment για πληρωμή με επιταγή. public class CheckPayment extends PaymentMethod { public void pay() { System.out.println( "Πληρωμή "+money+ " δρχ. με επιταγή που θα σταλεί από τον πελάτη"); } Για να δοκιμάσουμε τις τάξεις που κάναμε, θα κάνουμε μία τάξη Main με μία παραμετρική συνάρτηση main. Στη main θα περνάμε σαν παράμετρο τον τρόπο πληρωμής και το ποσό, που θα βρίσκονται στις θέσεις 0 και 1 αντίστοιχα του πίνακα args, που είναι οι παράμετροι της main. Θα ακολουθηθεί η σύμβαση ότι το 1 θα σημαίνει πληρωμή με πιστωτική κάρτα, και το 2 πληρωμή με επιταγή. Αφηρημένες τάξεις9

Παράδειγμα αφηρημένης τάξης Μέρος 3ο public class Main { public static void main (String[] args) { if (args.length != 2) stop(); int type=0; double money=0.0; try { type = Integer.parseInt(args[0]); money = (Double.valueOf (args[1])).doubleValue(); } catch (NumberFormatException e) { stop(); } PaymentMethod p; switch (type) { case 1: p = new CreditCardPayment(); p.setMoney(money); p.pay(); break; case 2: p = new CheckPayment(); p.setMoney(money); p.pay(); break; default: stop(); } public static void stop() { System.out.println("Χρήση: java Main (1 ή 2) ποσό"); System.exit(0); } Αφηρημένες τάξεις10

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