Προγραμματισμός Διαδικτύου

Σχετικά έγγραφα
Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Αρχιτεκτονική υπολογιστών

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

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

Λειτουργικά Συστήματα

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

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

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

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

Δομημένος Προγραμματισμός

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

Αρχιτεκτονική υπολογιστών

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Αρχιτεκτονική υπολογιστών

Δομημένος Προγραμματισμός

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Αρχιτεκτονική υπολογιστών

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Δομημένος Προγραμματισμός

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Ιστορία της μετάφρασης

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

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 9 : Κανονικές Εκφράσεις. Αλέξανδρος Τζάλλας

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Λειτουργικά Συστήματα

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

Εισαγωγή στους Αλγορίθμους

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 2 : Σύνολα & Σχέσεις (2/2) Αλέξανδρος Τζάλλας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Φωνολογική Ανάπτυξη και Διαταραχές

Πληροφορική ΙΙ Θεματική Ενότητα 5

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 4 : Πράξεις με bits. Δρ. Γκόγκος Χρήστος

Εισαγωγή στους Αλγορίθμους

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Αρχιτεκτονική υπολογιστών

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 8 : Αυτόματα NFA - DFA. Αλέξανδρος Τζάλλας

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Μάρκετινγκ Αγροτικών Προϊόντων

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ηλεκτρονικοί Υπολογιστές

Θεωρία Υπολογισμού Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις

Εκκλησιαστικό Δίκαιο

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Βιοχημεία - Αρχές Βιοτεχνολογίας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 11 : Κόστος παραγωγής Καραμάνης Κωνσταντίνος

Transcript:

1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Προγραμματισμός Διαδικτύου Ενότητα 3 : Κατηγορίες και κληρονομικότητα Ιωάννης Τσούλος

2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Τμήμα Μηχανικών Πληροφορικής Τ.Ε Προγραμματισμός Διαδικτύου Ενότητα 3 : Κατηγορίες και κληρονομικότητα Ιωάννης Τσούλος Επίκουρος Καθηγητής Άρτα, 2015

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 3 3

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

Ορισμός Στον πραγματικό κόσμο τα πάντα είναι δομημένα σε κατηγορίες (οχήματα) και αντικείμενα (λιμουζίνες, φορτηγά, ποδήλατα ). Κάθε κατηγορία περιέχει κάποια συστατικά στοιχεία που σε προγραμματιστικό περιβάλλον υλοποιούνται από μεταβλητές και θα τα ονομάζουμε πεδία Για παράδειγμα στην κατηγορία ΟΧΗΜΑ πεδία μπορεί να είναι: η μάρκα του οχήματος ο αριθμός των θέσεων το χρώμα κτλ. Η πρόσβαση στα πεδία επιτυγχάνεται μέσω συναρτήσεων που θα τις ονομάζουμε μεθόδους. 5 5

Πεδία 1/3 Τα πεδία είναι μεταβλητές που συνήθως είτε είναι εντελώς κρυφά από τον έξω κόσμο είτε δεν μπορούν να τροποποιηθούν με άμεσο τρόπο. Η δημιουργία αντικειμένων δεν έχει καμία σχέση με δυναμική κατανομή μνήμης και για αυτόν τον λόγο δεν υπάρχει και αντίστοιχος τελεστής delete. Η αναφορά στα πεδία της κατηγορίας γίνεται με τον τελεστή. να παρεμβάλλεται ανάμεσα στο όνομα του αντικειμένου (όχι της κατηγορίας) και το όνομα του πεδίου. Η παραπάνω χρήση της κατηγορίας αν και αποτελεσματική αντιβαίνει σε έναν από τους βασικότερους κανόνες του αντικειμενοστραφούς προγραμματισμού που είναι η ενθυλάκωση. 6 6

Πεδία 2/3 Σύμφωνα με την ενθυλάκωση δεν πρέπει να έχουμε άμεση πρόσβαση στα πεδία της κατηγορίας όπως γίνεται στο παράδειγμα. Για αυτόν τον λόγο και δεν πρέπει να δηλώσουμε τα πεδία σαν public αλλά σαν private. 7 7

Πεδία 3/3 Algorithm 1. Η απλή κατηγορία σημείου class point_simple public double x, y ; Algorithm 2. Μια main() που χρησιμοποιεί τα απλά σημεία. public class MainPointSimple public static void main (String argf]) point_simple mypoint=new point_simple (); mypoint.x = 100; mypoint.y = 200; System.out. println ("point wxw="+point.x ); System.out. println ("point wyw="+point.y ); 8 8

Μέθοδοι 1/2 Kατηγορίες μεθόδων o Αρχικοποίησης. Eκτελούνται με την δημιουργία ενός αντικειμένου και σκοπός τους είναι να αρχικοποιήσουν κάποια ή όλα τα πεδία της κατηγορίας. o Εχουν σαν όνομά τους το όνομα της κατηγορίας. o Είναι σχεδόν πάντα public o Δεν επιστρέφουν τίποτα o Μέθοδοι get. Eχουν σαν στόχο να επιστρέψουν την τιμή ενός πεδίου της κατηγορίας. Ονομάζονται έτσι γιατί το όνομά τους είναι συνήθως getfieldnameq όπου FieldName το όνομα του πεδίου που θέλουμε να μάθουμε. o Επιστρέφουν πάντα τιμή (δεν είναι σχεδόν ποτέ void) o Είναι σχεδόν πάντα public (αλλιώς δεν θα είχαν και λόγω ύπαρξης) o Σχεδόν ποτέ δεν δέχονται ορίσματα 9 9

Μέθοδοι 2/2 o Μέθοδοι set. Eίναι οι αντίθετες σαν λογική από τις μεθόδους. Βασικός τους σκοπός είναι να αλλάξουν την τιμή ενός πεδίου μιας κατηγορίας. o Δεν επιστρέφουν σχεδόν ποτέ τιμή (είναι void), εκτός και αν επιστρέψουν κάποιον κωδικό με τον οποίο διαπιστώνει ο προγραμματιστής αν όλα πήγαν καλά κατά την αλλαγή του πεδίου. o Είναι σχεδόν πάντα public. o Πάντα έχουν τουλάχιστον ένα όρισμα. o Μέθοδοι υπολογισμού. Είναι όλες οι υπόλοιπες μέθοδοι που δεν περιλαμβάνονται σε κάποια από τις παραπάνω κατηγορίες. Σκοπός του είναι είτε να υπολογίσουν κάτι είτε να κάνουν κάποια άλλη λειτουργία πχ να ανοίξουν ένα αρχείο και να αποθηκεύσουν δεδομένα. 10 1

Η μέθοδος tostring() Στο προηγούμενο παράδειγμα κατηγορίας για να εμφανίσουμε τα στοιχεία της κατηγορίας λάβαμε με μεθόδους get() τα πεδία και τα εμφανίσαμε. Ωστόσο η Java παρέχει σαν διευκόλυνση έναν καλύτερο τρόπο για την εμφάνιση πληροφοριών σχετικά με μια κατηγορία και αυτό είναι η μέθοδος tostring() η οποία υπάρχει σε όλα τα αντικείμενα που παράγουμε. Για να μπορέσουμε να την χρησιμοποιήσουμε θα πρέπει να την επαναπρορίσουμε μέσα σε μια κατηγορία. Στο παράδειγμα του σημείου αρκεί να προσθέσουμε την επόμενη μέθοδο μέσα στον κώδικα της κατηγορίας: public String tostring() return "x:_"+x+"_y:_"+y; 11 1

Η μέθοδος tostring() Για να μπορέσουμε να χρησιμοποιήσουμε την παραπάνω μέθοδο μπορούμε για παράδειγμα στην συνάρτηση main() να γράψουμε: System.out. println (" point1_=_"+ptl ); System.out. println (" point2_=_"+pt2 ); Με αυτόν τον τρόπο η Java καταλαβαίνει πως όταν απαιτείται να συνενώσει αλφαριθμητικό με κάποιο αντικείμενο θα καλέσει την μέθοδο tostring() που υπάρχει ήδη στην κατηγορία. 12 1

Κληρονομικότητα class People protected String name, lastname ; protected int age; public People () name=" " ; lastname=""; age = 0; public People ( String n, String l, int a) name=n ; lastname=l ; age=a ; public String getname() return name; public String getlastname() return lastname; public int getage() return age; public void advanceage() age++; public String tostring() return name+" : "+lastname+" : "+age ; 13 1

Κληρονομικότητα Class Student extends People private int semester ; public Student () super(); semester=0; public Student ( String n, String l, int a, int s) super (n,l, a); semesier s ; Public int getsemester () return semester; Public String tostring () return super. tostring ()+" : "+semester ; 14 1

Κληρονομικότητα Class Teacher extends People private String schoolname; public Teacher () super (); schoolname=" " ; public Teacher ( String n,string l, int a, String s) super (n,l, a); schoolname=s ; public String getschoolname () return schoolname; public String tostring () return super. tostring ()+" : "+semester ; 15 1

Κληρονομικότητα Public class UsePeople public static void main( String arg[]) People John=new People (" JohnTsoulos ",35); Student Dimitra=new Student (" Dimitra", "Xronopoulou",30,8); Teacher Maria new Teacher (" Maria"," Ioannou ", 40, "ΚΟΖΑΝΗ" ); System. out. println (" John data "+John); System. out. println (" Dimitra data "+Dimitra); System. out. println (" Maria data "+Maria ): 16 1

Κληρονομικότητα Η λέξη final Η λέξη final χρησιμοποιείται όταν θέλουμε να ορίσουμε πως μια μέθοδος ή πεδίο θα είναι σταθερό δηλαδή δεν μπορεί να μεταβληθεί από κληρονομιά ή από κάποια ανάθεση. Συνήθως χρησιμοποιείται μπροστά από πεδία προκειμένου να καθορίσουμε πως αυτό το πεδίο θα χρησιμοποιηθεί σαν σταθερά μέσα σε ένα πρόγραμμα. Για παράδειγμα αν θέλουμε να ορίσουμε πως ο φορολογικός συντελεστής είναι σταθερός στο 23% μπορούμε να γράψουμε: final double taxrate=0.23; 17 1

Κληρονομικότητα Η λέξη static Σκοπός της είναι να ορίσει πως ένα πεδίο ή μέθοδος ανήκει στην κατηγορία και όχι στο αντικείμενο Για παράδειγμα αν ορίσουμε στην κατηγορία People την μεταβλητή public static int counter=0; για να έχουμε πρόσβαση σε αυτήν την μεταβλητή από οπουδήποτε θα πρέπει να γράφουμε People.counter Το ίδιο ισχύει και για μεθόδους που ορίζονται ως static. Ο μόνος πρακτικός λόγος χρήσης static πεδίων είναι να χρησιμοποιηθούν ως μετρητές αντικειμένων Επιπλέον οι static μέθοδοι μπορούν να καλέσουν μόνον static μεθόδους από την κατηγορία τους. 18 1

Κληρονομικότητα Αφηρημένες μέθοδοι Οι αφηρημένες μέθοδοι είναι ειδικές κατηγορίες μεθόδων οι οποίες δεν έχουν κώδικα απλά έχουν όνομα και καλούνται από την κατηγορία. Σκοπός τους είναι να παρέχουν ένα γενικό interface χωρίς όμως να είναι ακόμα καθορισμένο τι ακριβώς θα κάνουν. Αφηρημένες κατηγορίες έχουμε μόνον όταν θα κληρονομηθεί η κατηγορία που τις περιέχει από κάποια άλλη. Για αυτόν τον λόγο και οι κατηγορίες που περιέχουν αφηρημένες μεθόδους δεν μπορούν να χρησιμοποιηθούν άμεσα παρά μόνον σε κληρονομικότητα. 19 1

Κληρονομικότητα abstract class Shape public abstract double getarea(); public abstract double getperimeter(); public String tostring() return " Area:_"+getArea() + "_Perimeter:_"+getPerimeter(); public boolean same Area ( Shape other) boolean ret ; if (getarea() == other. getarea()) ret true ; else ret false ; return ret ; 20 2

class Square extends Shape private double a; public Square (double mya) a= mya; public double get Area () return a*a; public double getperimeter () return 4*a; Κληρονομικότητα class Circle extends Shape private double x0,y0,r; public Circle (double mx, double my, double x0=mx; y0=my; R=mr; public double get Area () return Math.PI*R*R; public double getperimeter () return 2.0 * Math.PI*R; 21 2

Πολυμορφισμός Με τον όρο πολυμορφισμό στον αντικειμενοστραφή προγραμματισμό εννοούμε πως μπορούμε να χρησιμοποιούμε αντικείμενα με έναν γενικό τρόπο και ανάλογα με το περιβάλλον στο οποίο εμφανίζονται να έχουν διαφορετικό αποτέλεσμα. public class TestShape public static void main (String arg[]) Shape s1=new Square (10); Shape s2=new Circle (5,5,2); System. out. printin ("Shape1_=_"+s1); System. out. printin ("Shape2_=_"+s2); if ( s1. same Area ( s2 )) System. out. println ( "Same_areas" ); else System. out. println ( "Not_same_areas " ); 22 2

2 Βιβλιογραφία Πλήρες Εγχειρίδιο της Java 2 Platform, Laura Lemay & Rogers Cadenhead, Ελληνική έκδοση Γκιούρδα Java Προγραμματισμός, 6η έκδοση, Harvey M. Deitel, Paul J. Deitel. Εκδόσεις Μ. Γκιούρδας, Αθήνα 2005. Εισαγωγή στη γλώσσα προγραμματισμού Java, Εμμ. Σκορδαλάκης, Εργαστήριο Λογισμικού Ομάδα Τεχνολογίας Λογισμικού ΕΜΠ Java με UML, Else Lervik και Vegard B. Havdal, Εκδόσεις Κλειδάριθμος, 2005. Προγραμματισμός με Java, Γιάννη Κάβουρα, Εκδόσεις Κλειθάριθμος, Αθήνα 2003. Java in a nutshell, Deluxe Edition και Java Examples in a Nutshell, David Flanagan, Εκδόσεις OReilly Java Collections An Introduction to ADTs, Data Structures and Algorithms,David Watt, Deryck Brown, John Wiley and Sons Thinking in Java (3rd edition), B. Eckel, Pearson Prentice Hall, 2003. Introduction to Java Programming (5th edition), Y. Daniel Liang, Pearson Prentice Hall, 2005.

2 24 Προγραμματισμός Διαδικτύου Κατηγορίες και κληρονομικότητα, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Σημείωμα Αναφοράς Copyright Τεχνολογικό Ίδρυμα. Ιωάννης Τσούλος. Προγραμματισμός Διαδικτύου. Έκδοση: 1.0 Άρτα, 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.teiep.gr/openclass/courses/comp114/

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 4.0 Διεθνές [1] ή μεταγενέστερη. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, Διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] http://creativecommons.org/licenses/by-nc-nd/4.0/deed.el 2

2 Προγραμματισμός Διαδικτύου Κατηγορίες και κληρονομικότητα, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015

2 Τέλος Ενότητας Κατηγορίες και κληρονομικότητα