Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Από τη C στη C++ Hy240b project 2014 Phase 1.
Advertisements

Τύποι δεδομένων και τελεστές,
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα.
ΘΕΩΡΙΑ ΔΙΑΛΕΞΗ 4 Αριθμητικές εκφράσεις και πράξεις Εντολές ανάθεσης
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, toString Αντικείμενα ως παράμετροι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring Παναγιώτης Σφέτσος, PhD
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 6: Java Collections Εβδομάδα 6: Συλλογές δεδομένων στην Java.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Εβδομάδα 2: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism]
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
Μεθοδολογίες Προγραμματισμού ΙΙ JUNIT - Test First Design
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Αντικείμενα, Κλάσεις και Μέθοδοι
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 7: Συμβολοσειρές.
Νευρωνικά Δίκτυα Εργαστήριο Εικόνας, Βίντεο και Πολυμέσων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Σύγκριση Java και C++ Μεταπτυχιακό Εφαρμοσμένης Πληροφορικής - Αλέξανδρος Χατζηγεωργίου, Νοέμβριος 2004.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Ολυμπιάδα Πληροφορικής
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός)
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
2η ΟΣΣ – Σύγχρονες μέθοδοι προγραμματισμού - Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
Μέθοδοι Μέθοδοι Δημιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Αντικειμενοστραφής Προγραμματισμός Ι
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού - Κλάσεις ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014:
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κλάσεις και αντικείμενα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Διάλεξη #7: Συμβολοσειρές.
Διάλεξη #3: Υλοποίηση μεθόδων.
Μεταγράφημα παρουσίασης:

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 2 Επισκόπηση Τοπικές μεταβλητές Κλήση μεθόδων Μέθοδοι της κλάσης String Δημιουργία αντικειμένων Στατικές μέθοδοι (μέθοδοι κλάσεων)

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 3 Μέθοδοι (methods) Οι μέθοδοι χρησιμοποιούνται στην Java για την υλοποίηση των «λειτουργιών» των κλάσεων

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 4 Μέθοδοι: Παράδειγμα class Cube { private int length;... public int getSurfaceArea() { return length * length * 6; }

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 5 Άλλο ένα παράδειγμα class Cuboid { private int height; private int depth; private int width;... public int getSurfaceArea() { return height * width * 2 + height * depth * 2 + width * depth * 2; }

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 6 Παράδειγμα με τοπικές μεταβλητές public int getSurfaceArea() { int front; int side; int top; front = height * width; side = height * depth; top = width * depth; return (front + side + top) * 2; }

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 7 Τοπικές μεταβλητές int length; String name; Person father; int length = 0; String name = "Fred"; Person father = new Person(); int length; int max; max = length * 2; Δήλωση: Δήλωση με αρχικοποίηση: Σφάλμα – χρήση χωρίς αρχικοποίηση

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 8 Παράδειγμα με τοπικές μεταβλητές (2) public int getSurfaceArea() { int front = height * width; int side = height * depth; int top = width * depth; return (front + side + top) * 2; }

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 9 Τοπικές μεταβλητές: εμβέλεια (scope) Η εμβέλεια των τοπικών μεταβλητών εκτείνεται μόνο στο τμήμα κώδικα που δηλώθηκαν (μέθοδο) public void methodA() { int x; x = 33; } public void methodB() { System.out.println(x); } ERROR

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 10 Τοπικές μεταβλητές: διάρκεια ζωής Η ύπαρξη (διάρκεια ζωής) μίας μεταβλητής είναι συνυφασμένοι με την διάρκεια ζωής του τμήματος κώδικα στο οποίο δηλώθηκε (μέθοδο) Κάθε φορά που η μέθοδος καλείται, δημιουργείται μια νέα μεταβλητή Όταν η εκτέλεση φτάσει στο τέλος του τμήματος κώδικα που δηλώθηκε η μεταβλητή, τότε η μεταβλητή παύει να υπάρχει (discarded) Η τιμή μίας μεταβλητής δεν διατηρείται μεταξύ διαδοχικών εκτελέσεων του τμήματος κώδικα στο οποίο δηλώθηκε

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 11 Τοπικές μεταβλητές: ανασκόπηση Οι τοπικές μεταβλητές δηλώνονται σε μια μέθοδο Δεν λαμβάνουν αρχική τιμή αυτόματα (η χρήση μιας μη-αρχικοποιημένης μεταβλητής είναι σφάλμα) Η εμβέλεια των τοπικών μεταβλητών εκτείνεται στις μεθόδους στις οποίες δηλώθηκαν Η διάρκεια ζωής τους ταυτίζεται με αυτή της μεθόδου στην οποία δηλώθηκαν

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 12 Κλήση μεθόδων class Car {... public int getWeight() { int engineWeight = engine.getWeight(); int bodyWeight = body.getWeight(); return engineWeight + bodyWeight; }

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 13 Άλλο ένα παράδειγμα class Person { private Address address;... public void printDetails() { System.out.println("Name: " + name); address.printDetails();... }

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide άλλο ένα παράδειγμα class TutorialManager {... public int enrolStudent() { String name =...; String studentID =...; database.insertStudent(name, studentID);... }

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 15 Κλήση μεθόδων: σύνταξη όνομαΑντικειμένου.όνομαΜεθόδου(παράμετροι) objectName.methodName(parameters) όνομαΑντικειμένου.όνομαΜεθόδου(παράμετροι) objectName.methodName(parameters) Σύνταξη:

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 16 Μέθοδοι αλφαριθμητικών (Strings) Η χρήση των αλφαριθμητικών γίνεται μέσω της κλάσης String Τα αντικείμενα τύπου String παρέχουν τις μεθόδους –int length() –String substring(int start, int length) –String toUpperCase() –String toLowerCase –+ (παράθεση, συνένωση [concatenation] )

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 17 Παράδειγμα μεθόδου της κλάσης String String name = "Cartman"; int letters = name.length();

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 18 Παράδειγμα χρήσης String Άτομο με όνομα: –John Fitzpatrick Kennedy δημιούργησε "accountName": τα αρχικά του ονόματος και του πατρώνυμου ακολουθούμενα από τα τρία πρώτα γράμματα του επιθέτου (σε πεζά γράμματα) –jfken

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 19 Παράδειγμα χρήσης 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 20 Δημιουργία αντικειμένων 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 21 Δημιουργία αντικειμένων: σύνταξη new όνομαΚλάσης(παράμετροι) new className(parameters) new όνομαΚλάσης(παράμετροι) new className(parameters) Σύνταξη :

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 22 Άλλο ένα παράδειγμα class Person { private String fullName; private Address address;... public Person(String name, String street, String city) { fullName = name; address = new Address(street, city); }

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 23 Στατικές μέθοδοι (Static methods) Οι στατικές μέθοδοι «ανήκουν» σε μια κλάση και όχι σε ένα αντικείμενο (μέθοδοι κλάσης [class methods] ) Δεν απαιτείται η ύπαρξη αντικείμενου για την κλήση τους (καλούνται «επί της κλάσης»)

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 24 Στατικές μέθοδοι: παράδειγμα class Car { private static int numberOfCars;... public Car() {... numberOfCards++; }

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 25 Άλλα παραδείγματα int speed = Math.round (distance / time); System.out.print ("Hello"); System.out.println ("World");

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 26 Στατικά πεδία Τα στατικά πεδία δεδομένων ανήκουν σε μια κλάση και όχι σε ένα αντικείμενο Τα στατικά πεδία είναι κοινόχρηστα από όλα τα (αντικείμενα) μίας κλάσης – κάθε στιγμιότυπο [instance] της ίδιας κλάσης χρησιμοποιεί τα ίδια στατικά πεδία Υπάρχει μόνο ένα αντίγραφο ενός στατικού πεδίου μίας κλάσης ανεξάρτητα από τον αριθμό των στιγμιότυπων της κλάσης που έχουν δημιουργηθεί

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 27 Στατικά πεδία (2) field1 field2 field3 field4 field1 field2 field3 field4 Class Circle static field

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 28 Στατικά πεδία: παράδειγμα class Circle { private static double pi = ; private double radius; private Color color;... public double getSurfaceArea() { return pi * radius * radius; }