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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

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

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

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

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

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

Λογιστικές Εφαρμογές Εργαστήριο

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

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

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

ΑΝΑΚΕΦΑΛΑΙΩΣΗ. Τα βασικά για την γλώσσα Java

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

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

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

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

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

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

10.1 Γενικά για τα streams

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

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

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

Περιβαλλοντική Χημεία

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

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

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

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

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

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

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

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

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

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Προγραμματισμός και Εφαρμογές Υπολογιστών

Βιομηχανικοί Ελεγκτές

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

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

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

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

Οργανωσιακή Συμπεριφορά Ενότητα 1: Η έννοια της οργάνωσης και διοίκησης

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

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

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

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

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

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

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

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

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Generics και ArrayLists

Wrapper Classes, Abstract Classes and Interfaces

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

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

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Φυσική. Ενότητα # 6: Βαρυτικό Πεδίο

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Πληροφορική. Εργαστηριακή Ενότητα 8 η : Γραφήματα

Υδραυλικά & Πνευματικά ΣΑΕ

ΚΛΑΣΕΙΣ ΜΕΘΟΔΟΙ - ΑΝΤΙΚΕΙΜΕΝΑ

Προγραμματισμός και Εφαρμογές Υπολογιστών

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

Transcript:

Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 6: Κληρονομικότητα, Interfaces και I/O Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε Κάντε κλικ για να ξεκινήσετε

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

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

Ευχαριστίες Στην ανάπτυξη του υλικού βοήθησαν οι φοιτητές Λάζαρος Τουμανίδης, Λίλιαν Γούσιου και ο βοηθός εργαστηρίου Κόγιας Δημήτριος. 4

Βιβλιογραφία Harvey Deitel,Paul Deitel, «Java Προγραμματισμός, 8η έκδοση», Γκιούρδας, 2010. Γιώργος Λιακέας, «Εισαγωγή στη Java», Κλειδάριθμος, 2009. Χρήστος Κυτάγιας, Κώστας Δ. Κυτάγιας, Γιώργος Πρεζεράκος, Δημήτρης Κυτάγιας, «Αντικειμενοστραφής Προγραμματισμός με Java», Σύγχρονη Εκδοτική, 2013. Wanda Dann, Stephen Cooper, and Randy Pausch, «Learning to program with Alice» 3rd edition, Pearson Education, 2012. Michael Kölling, «Introduction to Programming with Greenfoot». «Object-Oriented Programming in Java with Games and Simulations», Pearson Education, August 2009. Οι σημειώσεις είναι βασισμένες και σε υλικό του καθηγητή του ΤΕΙ Πειραιά Γ. Πρεζεράκου. 5

Περιεχόμενα 6.1 Κληρονομικότητα 6.2 Interfaces (Διεπαφές) 6.3 Είσοδος Έξοδος (I/O) 6

Προσδοκώμενα Αποτελέσματα Στην ενότητα αυτή θα μάθετε για: Την έννοια και την χρήση της κληρονομικότητας, Τον τρόπο χρήσης των διεπαφών, Τις εντολές για προσδιορισμό του τρόπου εισόδου και εξόδου σε ένα πρόγραμμα. 7

6.1 Κληρονομικότητα 8

Βασική Κλάση Φτιάχνοντας ένα παιχνίδι: Φτιάχνουμε μια κλάση για τη δημιουργία ενός χαρακτήρα. public class Person { public String name; public int hp = 100; public int mp = 0; public void sayname() { System.out.println(name); public void punchface(person target) { target.hp -= 10; 9

Κληρονομικότητα Τώρα φτιάχνουμε ένα Μάγο (Wizard)... public class Wizard { // πρέπει να αντιγράψουμε τον κώδικα // από την κλάση Person. // Θα μπορούσε να αποφευχθεί; 10

Κληρονομικότητα; Τώρα φτιάχνουμε ένα Μάγο (Wizard)... Αλλά περιμένετε! Ένας Μάγος μπορεί και κάνει οτιδήποτε ένας Person μπορεί και κάνει! 11

Κληρονομικότητα; Τώρα φτιάχνουμε ένα Μάγο (Wizard)... Μην δράσετε αμέσως! Δε χρειάζεται να κάνετε αντιγραφή και επικόλληση! 12

Χρήση Κληρονομικότητας Ο Wizard είναι μία υποκατηγορία της κλάσης Person public class Wizard extends Person { 13

Κληρονομικότητα Ο Wizard μπορεί να χρησιμοποιήσει ό,τι* το Person έχει! wizard1.hp += 1; O Wizard μπορεί να κάνει ό,τι* το Person κάνει! wizard1.punchface (person1); Μπορείτε να χρησιμοποιήσετε ένα Wizard όπως και ένα Person επίσης! person1.punchface(wizard1); *εκτός των ιδιωτικών πεδίων και μεθόδων 14

Κληρονομικότητα Τώρα αυξάνει ένα Wizard public class Wizard extends Person { public void cast(string spell) { // κώδικας της μεθόδου... mp -= 10; 15

Κληρονομώντας από Κλάσεις που Έχουν Κληρονομήσει Τι συμβαίνει με το Grand Wizard; public class GrandWizard extends Wizard { public void sayname() { System.out.println( Grand wizard + name) grandwizard1.name = Flash grandwizard1.sayname(); ((Person)grandWizard1).sayName(); 16

Πως το Καταφέρνει Αυτό η Java; Πως συμπεριφέρεται η Java όταν βλέπει grandwizard1.punchface(person1) 1. Ψάχνει για punchface() στην κλάση GrandWizard. 2. Δεν είναι εδώ! Έχει το GrandWizard κληρονομιά; 3. Ναι. Ψάχνει για punchface() στην κλάση Wizard. 4. Δεν είναι εδώ! Έχει το Wizard κληρονομιά; 5. Ναι. Ψάχνει το punchface() στην κλάση Person. 6. To βρήκε! Καλεί το punchface() 7. Αφαιρεί hp από το person1 17

Πως το καταφέρνει αυτό η Java; Πως συμπεριφέρεται η Java όταν βλέπει ((Person)grandWizard1).sayName() 1. Η μετατροπή σε Person λέει στην Java να αναζητήσει αρχικά τη μέθοδο στην κλάση Person. 2. Ψάχνει για το sayname() στην κλάση Person. 3. To βρήκε! Καλεί το sayname() 18

Τι Συμβαίνει στο Παράδειγμα μας; Πατέρας των Wizard και Elf. Person Παιδί του Person. Wizard Thief Elf Παιδί του Wizard. Grand Wizard 19

Μπορείτε να Κληρονομήσετε Μόνο από μία Κλάση 20

Μπορείτε να Κληρονομήσετε Μόνο από μία Κλάση 21

Μπορείτε να Κληρονομήσετε Μόνο από μία Κλάση Έστω ότι τόσο η κλάση Thief όσο και η κλάση Elf έχουν μια μέθοδο: public void sneakup(), την οποία και υλοποιούν με διαφορετικό τρόπο. Αν η κλάση Bad Elf καλούσε τη μέθοδο sneakup() τότε ποια υλοποίηση θα έπρεπε να πραγματοποιηθεί; 22

Για να Διαβάσετε Περισσότερα: http://java.sun.com/docs/books/tutorial/java/iandi/subclasses.html http://home.cogeco.ca/~ve3ll/jatutor5.htm http://en.wikipedia.org/wiki/inheritance_(computer_science) http://www.google.com 23

6.2 Διεπαφές (Interfaces) 24

Υλοποίηση/ Διεπαφή 25

Διεπαφές Java Με τις διεπαφές μπορείτε να χειριστείτε τα αντικείμενα, χωρίς να γνωρίζετε πως λειτουργούν. Είναι ωφέλιμο να έχετε παρόμοια αλλά όχι ταυτόσημα αντικείμενα. Είναι ωφέλιμο να χρησιμοποιείτε κώδικα γραμμένο από άλλους. 26

Παράδειγμα Διεπαφής: Σχεδιασμός ενός Κουτιού public class BouncingBox { public void draw(graphics surface) { // κώδικας σχεδιασμού ενός κουτιού // Σχεδιασμός κουτιών for (BouncingBox box : boxes) { box.draw(surface); 27

Παράδειγμα Διεπαφής: Σχεδιασμός ενός Λουλουδιού public class Flower { public void draw(graphics surface) { // κώδικας σχεδιασμού ενός λουλουδιού // Σχεδιασμός λουλουδιών for (Flower flower : flowers) { flower.draw(surface); 28

Παράδειγμα public class DrawGraphics { ArrayList<BouncingBox> boxes = new ArrayList<BouncingBox>(); ArrayList<Flower> flowers = new ArrayList<Flower>(); ArrayList<Car> cars = new ArrayList<Car>(); public void draw(graphics surface) { for (BouncingBox box : boxes) { box.draw(surface); for (Flower flower : flowers) { flower.draw(surface); for (Car car : cars) { car.draw(surface); 29

Παράδειγμα public class DrawGraphics { ArrayList<Drawable> shapes = new ArrayList<Drawable>(); ArrayList<Flower> flowers = new ArrayList<Flower>(); ArrayList<Car> cars = new ArrayList<Car>(); public void draw(graphics surface) { for (Drawable shape : shapes) { shape.draw(surface); for (Flower flower : flowers) { flower.draw(surface); for (Car car : cars) { car.draw(surface); 30

Διεπαφές Συλλογές κλάσεων που μοιράζονται μεθόδους. Δηλώνετε μία διεπαφή με μία συνήθη μέθοδο. Μπορείτε στη συνέχεια να χρησιμοποιήσετε την διεπαφή, χωρίς να ξέρετε το συγκεκριμένο τύπο του αντικειμένου. 31

Διεπαφές: Σχεδιάζοντας Σχήματα import java.awt.graphics; interface Drawable { void draw(graphics surface); void setcolor(color color); 32

Υλοποιώντας Διεπαφές Οι υλοποιήσεις των διεπαφών παρέχουν πλήρεις μεθόδους: import java.awt.graphics; class Flower implements Drawable { //... Υπόλοιπος κώδικας... public void draw(graphics surface) { //... Κώδικας σχεδιασμού flower εδώ... 33

Παρατηρήσεις Έχουν μόνο μεθόδους (ως επί το πλείστον αληθές). Δεν παρέχουν κώδικα, μόνο τον ορισμό (ονομάζονται υπογραφές). Μία κλάση μπορεί να εκτελέσει έναν αριθμό διεπαφών. 34

6.3 Είσοδος Έξοδος (I/O) 35

Ένας Τρόπος Εξόδου που Γνωρίζουμε System.out.println( some string ); 36

Η Ολοκληρωμένη Εικόνα 37

InputStream InputStream είναι μια σειρά από bytes Διαβάζει το ένα Βyte μετά το άλλο με χρήση του read(). Ένα byte είναι απλά ένας αριθμός Τα δεδομένα του σκληρού σας δίσκου αποθηκεύονται σε Βytes. Τα Bytes μπορούν να ερμηνευτούν ως χαρακτήρες, αριθμοί InputStream stream = System.in; 38

InputStreamReader O Reader είναι μια κλάση για μια σειρά χαρακτήρων Διαβάζει τον ένα χαρακτήρα μετά τον άλλο με χρήση του read() To InputStreamReader παίρνει ένα InputStream και μετατρέπει τα bytes σε χαρακτήρες Και πάλι δεν είναι πολύ βολικό: Μπορεί να διαβάσει μόνο ένα χαρακτήρα τη φορά new InputStreamReader(stream) 39

BufferReader Ο BufferReader ρυθμίζει μία σειρά χαρακτήρων ώστε να μπορείτε να διαβάσετε τη μία σειρά μετά την άλλη - String readline() new BufferedReader( new InputStreamReader(System.in)); 40

Είσοδος Χρήστη InputStreamReader ir = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(ir); br.readline(); 41

FileReader Ο FileReader παίρνει ένα αρχείο κειμένου - Το μετατρέπει σε σειρά χαρακτήρων. - FileReader( PATH TO FILE ); Χρησιμοποιήστε αυτό καθώς και τον BufferReader για να διαβάσετε αρχεία! FileReader fr = new FileReader( readme.txt ); BufferedReader br = new BufferedReader(fr); 42

Κώδικας FileReader import java.io.bufferedreader; import java.io.filereader; import java.io.ioexception; public class ReadFile { public static void main(string[] args) throws IOException { // Τα ονόματα των διαδρομών είναι σχετικά με τη θέση του φακέλου του project FileReader fr = new FileReader("./src/readme"); BufferedReader br = new BufferedReader(fr); String line = null; while ((line = br.readline())!= null) { System.out.println(line); br.close(); 43

Για περισσότερα σχετικά με Ι/Ο http://java.sun.com/docs/books/tutorial/essential/io/ 44

Εργασία Μαγικά Τετράγωνα Διαβάστε δύο αρχεία Ελέγξτε ότι όλες οι σειρές και οι στήλες έχουν άθροισμα 15 45

Σε αυτή την ενότητα μιλήσαμε για: 6.1 Κληρονομικότητα 6.2 Interfaces (Διεπαφές) 6.3 Είσοδος Έξοδος (I/O) 47

Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 6: Κληρονομικότητα, Interfaces και I/O Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε