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

Σχετικά έγγραφα
Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

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

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

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

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

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Κλάσεις και Αντικείµενα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors, equals, tostring Αντικείμενα ως παράμετροι

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

Εισαγωγή στον Προγραµµατισµό - Εβδοµάδα 7

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 10/1/08

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

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

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

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

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

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

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

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Βασικά της γλώσσας JAVA

Βασικά Στοιχεία της Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Copy Constructor Deep and Shallow Copies

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

Wrapper Classes, Abstract Classes and Interfaces

Προγραμματισμός Υπολογιστών με C++

ΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors, equals, tostring Αντικείμενα ως παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Mεταβλητές (variables) και Σταθερές (constants)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 6: Pass-by-value και φαινομενικό pass-by-reference

Προγραµµατισµός ΙΙ Java 2

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

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

! Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση. ! Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες

Βασικά Στοιχεία της Java

Εισαγωγή στον Προγ/μό Η/Υ

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

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

Κλάσεις και Αντικείμενα

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 5 : ΠΕΡΙΣΣΟΤΕΡΑ ΓΙΑ ΤΙΣ CLASSES

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

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors, equals, tostring Αντικείμενα ως παράμετροι

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α


ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

8. Μέθοδοι (Methods)

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες Μέθοδοι tostring και equals Αντικείμενα μέσα σε αντικείμενα

3 Αλληλεπίδραση Αντικειμένων

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

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning

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

Transcript:

Επισκόπηση Διάλεξη #3: Υλοποίηση μεθόδων Τοπικές μεταβλητές Κλήση μεθόδων Μέθοδοι της κλάσης String Δημιουργία αντικειμένων Στατικές μέθοδοι (μέθοδοι κλάσεων) Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 2 Μέθοδοι (methods) Μέθοδοι: Παράδειγμα Οι μέθοδοι χρησιμοποιούνται στην Java για την υλοποίηση των «λειτουργιών» των κλάσεων class Cube private int length; return length * length * 6; Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 3 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 4 class Cuboid private int height; private int depth; private int width; return height * width * 2 + height * depth * 2 + width * depth * 2; Παράδειγμα με τοπικές μεταβλητές int front; int side; int top; front = height * width; side = height * depth; top = width * depth; return (front + side + top) * 2; Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 5 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 6

Τοπικές μεταβλητές Δήλωση: int length; String name; Person father; Δήλωση με αρχικοποίηση: int length = 0; String name = "Fred"; Person father = new Person(); Σφάλμα χρήση χωρίς αρχικοποίηση int length; int max; max = length * 2; Παράδειγμα με τοπικές μεταβλητές (2) int front = height * width; int side = height * depth; int top = width * depth; return (front + side + top) * 2; Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 7 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 8 Τοπικές μεταβλητές: εμβέλεια (scope) Η εμβέλεια των τοπικών μεταβλητών εκτείνεται μόνο στο τμήμα κώδικα που δηλώθηκαν (μέθοδο) public void methoda() int x; x = 33; public void methodb() System.out.println(x); Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 9 Τοπικές μεταβλητές: διάρκεια ζωής Η ύπαρξη (διάρκεια ζωής) μίας μεταβλητής είναι συνυφασμένοι με την διάρκεια ζωής του τμήματος κώδικα στο οποίο δηλώθηκε (μέθοδο) Κάθε φορά που η μέθοδος καλείται, δημιουργείται μια νέα μεταβλητή Όταν η εκτέλεση φτάσει στο τέλος του τμήματος κώδικα που δηλώθηκε η μεταβλητή, τότε η μεταβλητή παύει να υπάρχει (discarded) Η τιμή μίας μεταβλητής δεν διατηρείται μεταξύ διαδοχικών εκτελέσεων του τμήματος κώδικα στο οποίο δηλώθηκε Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 10 Τοπικές μεταβλητές: ανασκόπηση Οι τοπικές μεταβλητές δηλώνονται σε μια μέθοδο Δεν λαμβάνουν αρχική τιμή αυτόματα (η χρήση μιας μη-αρχικοποιημένης μεταβλητής είναι σφάλμα) Η εμβέλεια των τοπικών μεταβλητών εκτείνεται στις μεθόδους στις οποίες δηλώθηκαν Η διάρκεια ζωής τους ταυτίζεται με αυτή της μεθόδου στην οποία δηλώθηκαν Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 11 Κλήση μεθόδων class Car public int getweight() int engineweight = engine.getweight(); int bodyweight = body.getweight(); return engineweight + bodyweight; Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 12

class Person private Address address; public void printdetails() System.out.println("Name: " + name); address.printdetails(); Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 13 άλλο ένα παράδειγμα class TutorialManager public int enrolstudent() String name = ; String studentid = ; database.insertstudent(name, studentid); Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 14 Κλήση μεθόδων: σύνταξη Σύνταξη: όνομααντικειμένου.όνομαμεθόδου(παράμετροι) objectname.methodname(parameters) Μέθοδοι αλφαριθμητικών (Strings) Η χρήση των αλφαριθμητικών γίνεται μέσω της κλάσης String Τα αντικείμενα τύπου String παρέχουν τις μεθόδους int length() String substring(int start, int length) String touppercase() String tolowercase + (παράθεση, συνένωση [concatenation] ) Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 15 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 16 Παράδειγμα μεθόδου της κλάσης String String name = "Cartman"; int letters = name.length(); Παράδειγμα χρήσης String Άτομο με όνομα: John Fitzpatrick Kennedy δημιούργησε "accountname": τα αρχικά του ονόματος και του πατρώνυμου ακολουθούμενα από τα τρία πρώτα γράμματα του επιθέτου (σε πεζά γράμματα) jfken Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 17 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 18

Παράδειγμα χρήσης String (2) public String accountname(string firstname, String middlename, String lastname) String accountstring = firstname.substring(0,1) + secondname.substring(0,1) + lastname.substring(0,3); return accountstring.tolowercase(); Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 19 Δημιουργία αντικειμένων class Line private Point start; private Point end; public Line(int x1, int y1, int x2, int y2) start = new Point(x1, y1); end = new Point(x2, y2); Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 20 Δημιουργία αντικειμένων: σύνταξη Σύνταξη: new όνομακλάσης(παράμετροι) new classname(parameters) class Person private String fullname; private Address address; public Person(String name, String street, String city) fullname = name; address = new Address(street, city); Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 21 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 22 Στατικές μέθοδοι (Static methods) Οι στατικές μέθοδοι «ανήκουν» σε μια κλάση και όχι σε ένα αντικείμενο (μέθοδοι κλάσης [class methods]) Δεν απαιτείται η ύπαρξη αντικείμενου για την κλήση τους (καλούνται «επί της κλάσης») Στατικές μέθοδοι: παράδειγμα class Car private static int numberofcars; public Car() numberofcars++; Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 23 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 24

Άλλα παραδείγματα Στατικά πεδία Τα στατικά πεδία δεδομένων ανήκουν σε μια κλάση και όχι σε ένα αντικείμενο int speed = Math.round(distance / time); System.out.print("Hello"); System.out.println("World"); Τα στατικά πεδία είναι κοινόχρηστα από όλα τα (αντικείμενα) μίας κλάσης κάθε στιγμιότυπο [instance] της ίδιας κλάσης χρησιμοποιεί τα ίδια στατικά πεδία Υπάρχει μόνο ένα αντίγραφο ενός στατικού πεδίου μίας κλάσης ανεξάρτητα από τον αριθμό των στιγμιότυπων της κλάσης που έχουν δημιουργηθεί Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 25 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 26 Στατικά πεδία (2) Στατικά πεδία: παράδειγμα Class Circle class Circle field1 field2 field3 field4 static field field1 field2 field3 field4 private static double pi = 3.1415; private double radius; private Color color; public double getsurfacearea() return pi * radius * radius; Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 27 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 28