JAVA – Basic OOP Principles

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Advertisements

Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
Week 11 Quiz Sentence #2. The sentence. λαλο ῦ μεν ε ἰ δότες ὅ τι ὁ ἐ γείρας τ ὸ ν κύριον Ἰ ησο ῦ ν κα ὶ ἡ μ ᾶ ς σ ὺ ν Ἰ ησο ῦ ἐ γερε ῖ κα ὶ παραστήσει.
WRITING B LYCEUM Teacher Eleni Rossidou ©Υπουργείο Παιδείας και Πολιτισμού.
Lesson 6c: Around the City I JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Προσομοίωση Δικτύων 4η Άσκηση Σύνθετες τοπολογίες, διακοπή συνδέσεων, δυναμική δρομολόγηση.
Lesson 1a: Let’s Get Started JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Lesson 3b: More basic words JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Προσομοίωση Δικτύων 3η Άσκηση Δημιουργία, διαμόρφωση μελέτη σύνθετων τοπολογιών.
Αριθμητική Επίλυση Διαφορικών Εξισώσεων 1. Συνήθης Δ.Ε. 1 ανεξάρτητη μεταβλητή x 1 εξαρτημένη μεταβλητή y Καθώς και παράγωγοι της y μέχρι n τάξης, στη.
ΕΥΡΩΠΑΪΚΑ ΣΧΟΛΕΙΑ. SCHOOLS OF EUROPEAN EDUCATION.
ANAΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Aντικειμενοστρεφής Ανάπτυξη Συστημάτων Εισαγωγή στη UML.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
Lesson 1a: Let’s Get Started JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Ψηφιακά Παιχνίδια και μάθηση Δρ. Νικολέτα Γιαννούτσου Εργαστήριο Εκπαιδευτικής Τεχνολογίας.
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
From Applying Theory to Theorising Practice Achilleas Kostoulas Epirus Institute of Technology.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
∆οµηµένες Αναπαραστάσεις Γνώσης
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Κληρονομικότητα [inheritance]
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Software Engineering for Web Applications
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγ/μό Υπολογιστών
JSIS E 111: Elementary Modern Greek
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Β΄ ΠΛΗΡΟΦΟΡΙΚΗΣ
Αντικειμενοστραφής Προγραμματισμός (Object Oriented Programming)
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Wrapper Classes, Abstract Classes and Interfaces
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
JSIS E 111: Elementary Modern Greek
Κελυφοποιημένα δεδομένα [encapsulated data]
ΠΑΡΑΤΗΡΩNTAΣ ΤΟΝ ΟΥΡΑΝΟ
ΤΕΧΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ
JSIS E 111: Elementary Modern Greek
Εισαγωγή στον προγραμματισμό
ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης
Διδάσκων: Κων/νος Κώτης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Πρότυπα Προγραμματισμού
ΓΥΜΝΑΣΙΟ ΛΕΥΚΟΠΗΓΗΣ Σχολικό έτος
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Οσμές στη Σχεδίαση του Λογισμικού
Swing II Εβδομάδα Νο. 6.
Προχωρημένος Προγραμματισμός
JAVA Basics Εβδομάδα Νο. 1.
Εκπαιδευτική ρομποτική
JSIS E 111: Elementary Modern Greek
ΑΠΟΣΤΑΞΗ Distillation.
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Υλικά και Δραστηριότητες Διδασκαλίας Μαθηματικών ΙΙ
Wrapper Classes, Abstract Classes and Interfaces
Υπο-τύποι και πολυμορφισμός
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Deriving the equations of
Erasmus + An experience with and for refugees Fay Pliagou.
Κληρονομικότητα [inheritance]
Μεταγράφημα παρουσίασης:

JAVA – Basic OOP Principles Εβδομάδα Νο. 3

Σημερινό μάθημα Ενθυλάκωση (Encapsulation) Κληρονομικότητα (Inheritance) super/this keywords Πολυμορφισμός (Polymorphism) method overriding Ασκήσεις

Ενθυλάκωση (encapsulation) H τεχνική κατά την οποία αποκρύπτεται η εσωτερική κατάσταση της κλάσης και η αλληλεπίδραση μαζί της γίνεται μέσω των μεθόδων. Δηλώνουμε τα fields ως private και κάνουμε προσπέλαση (ανάγνωση ή αλλαγή τιμής) στις μεταβλητές μιας κλάσης μέσω μεθόδων(π.χ. setters, getters). int gear; int speed; setGear getGear setSpeed getSpeed Fields Methods Class ο κόσμος

Κληρονομικότητα – Inheritance (1/4) Κάποιες κλάσεις αντικειμένων έχουν κοινά χαρακτηριστικά με άλλες κλάσεις Κληρονομικότητα είναι η δυνατότητα μιας κλάσης να κληρονομεί καταστάσεις και συμπεριφορές από μία άλλη Μια κλάση που κληρονομεί τα χαρακτηριστικά μια άλλης κλάσης (υπερκλάσης) ονομάζεται υποκλάση της κλάσης αυτής Κάθε κλάση περιέχει όλα τα χαρακτηριστικά της υπερκλάσης της και κάποια επιπλέον Κάθε κλάση μπορεί να έχει πολλές υποκλάσεις αλλά μόνο μια υπερκλάση Στην Java υλοποιείται με την δεσμευμένη λέξη: extends

Κληρονομικότητα – Inheritance (2/4) Bicycle Υπερκλάση των κλάσεων Mountain Bike, Road Bike και Tandem Bike Mountain Bike Road Bike Tandem Bike Υποκλάση της κλάσης Bicycle Υποκλάση της κλάσης Bicycle Υποκλάση της κλάσης Bicycle

Κληρονομικότητα – Inheritance (3/4) Bicycle Mountain Bike extends … Road Bike extends … Tandem Bike extends …

Κληρονομικότητα – Inheritance (4/4) Αφού το MountainBike κληρονομεί από ένα Bicycle, τότε το MountainBike είναι τύπου: MountainBike Bicycle

Πολυμορφισμός – Polymorphism Πολυμορφισμός ονομάζεται η ιδιότητα των υποκλάσεων τόσο να ορίζουν δικές τους συμπεριφορές και ταυτόχρονα να διατηρούν κάποιες άλλες όπως έχουν οριστεί στις υπερκλάσεις τους. Πιο απλά, ένα αντικείμενο έχει τη δυνατότητα να πάρει πολλές διαφορετικές μορφές. Η διαδικασία αυτή λέγεται “method overriding” και δίνει την δυνατότητα σε μία κλάση να διαφοροποιεί μία μέθοδο που κληρονομεί από την υπερκλάση της, διατηρώντας ίδια την υπογραφή της (όνομα μεθόδου, αριθμός και τύπος παραμέτρων)

super / this keywords super  Χρησιμοποιείται μέσα σε μία κλάση και μας δίνει πρόσβαση στα πεδία, τους κατασκευαστές ή τις μεθόδους της υπερκλάσης this  Χρησιμοποιείται μέσα σε μία κλάση και μας δίνει πρόσβαση στα πεδία, τους κατασκευαστές ή τις μεθόδους της ίδια της κλάσης Κλήση του constructor της υπερκλάσης Κλήση του field αυτής της κλάσης Κλήση μεθόδου της υπερκλάσης

Ασκήσεις Δημιουργήστε την κλάση «ElectronicDevice» και 2 υποκλάσεις του έτσι ώστε κάθε κλάση να έχει τουλάχιστον ένα κατασκευαστή, δύο μεταβλητές, όλες τις μεθόδους setters και getters και άλλη μία μέθοδο(εκτός setters-getters). Επίσης, να φαίνεται στην άσκηση ο τρόπος με τον οποίο μια κλάση μπορεί να κάνει κλήση των μεταβλητών και μεθόδων του εαυτού της και της υπερκλάσης της, με την χρήση των this και super. Στην συνέχεια να υλοποιήσετε μια κλάση Main (η οποία θα έχει μέθοδο main() ) στην οποία θα δημιουργήσετε στιγμιότυπα (instances) των κλάσεων σας και θα καλείτε τις μεθόδους τους.

Προαιρετικές ασκήσεις Δημιουργήστε την κλάση του αντικειμένου «Telephone». Η κλάση αυτή να έχει μία υπερκλάση και δύο υποκλάσεις που θεωρείτε κατάλληλες. Όλες οι κλάσεις που θα δημιουργήσετε να έχουν τουλάχιστον ένα κατασκευαστή, δύο μεταβλητές, όλες τις μεθόδους setters και getters και άλλη μία μέθοδο(εκτός setters-getters). Επίσης, να φαίνεται στην άσκηση ο τρόπος με τον οποίο μια κλάση μπορεί να κάνει κλήση των μεταβλητών και μεθόδων του εαυτού της και της υπερκλάσης της, με την χρήση των this και super. Στην συνέχεια να υλοποιήσετε μια κλάση Main (η οποία θα έχει μέθοδο main() ) στην οποία θα δημιουργήσετε στιγμιότυπα (instances) των κλάσεων σας και θα καλείτε τις μεθόδους τους.

Χρήσιμα Links The Java Tutorials - Trail: Learning the Java Language Lesson: Object-Oriented Programming Concepts What Is Inheritance? http://download.oracle.com/javase/tutorial/java/concepts/index.html “Object-Oriented Programming Concepts teaches you the core concepts behind object-oriented programming: objects, messages, classes, and inheritance. This lesson ends by showing you how these concepts translate into code. Feel free to skip this lesson if you are already familiar with object-oriented programming.” Lesson: Interface and Inheritance Inheritance http://download.oracle.com/javase/tutorial/java/IandI/subclasses.html “This section describes the way in which you can derive one class from another. That is, how a subclass can inherit fields and methods from a superclass. You will learn that all classes are derived from the Object class, and how to modify the methods that a subclass inherits from superclasses.”

Επόμενο μάθημα Interfaces Αφηρημένες κλάσεις / μέθοδοι (Abstract classes/methods) Packages UML – Class Diagrams

Τέλος διαφανειών See you next time! The end