Διάλεξη Εισαγωγή στη Java, Μέρος Α

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Διάλεξη Εισαγωγή στη Java, Μέρος Α"

Transcript

1 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο Διάλεξη Εισαγωγή στη Java, Μέρος Α 1. Τεχνολογία Java 2. Αντικειμενοστραφής προγραμματισμός και συντακτικό της γλώσσας 3. Χρήσιμες κλάσεις 4. Κληρονομικότητα 5. Διεπαφές, Αφηρημένες κλάσεις 6. Πακέτα και εμβέλεια κλάσεων 7. Εργαλεία υλοποίησης 1

2 Java tutorial 2

3 Τεχνολογία Java Αντικειμεστραφής προγραμματισμός και συντακτικό της γλώσσας Χρήσιμες κλάσεις Κληρονομικότητα Διεπαφές, Αφηρημένες Κλάσεις Πακέτα και εμβέλεια κλάσεων Εργαλεία υλοποίησης 3

4 Η τεχνολογία Java (1/2) Η Java αποτελεί μια υψηλού επιπέδου γλώσσα προγραμματισμού Τα βήματα για να εκτελέσουμε ένα πρόγραμμα σε java Μερικές από τις λέξεις κλειδιά που την χαρακτηρίζουν: αντικειμενοστρεφής Μεταγλώττιση: τα.java αρχεία μεταγλωττίζονται σε.class από τον java compiler (javac) και περιέχουν bytecodes. αρχιτεκτονικά ουδέτερη φορητή απλή και εύρωστη Εκτέλεση: η Java Virtual Machine (JVM) διαβάζει τα bytecodes και εκτελεί το πρόγραμμα μας. ασφαλής Τα προγράμματα στην Java δομούνται σε ξεχωριστά.java αρχεία. Αναφορές: 4

5 Η τεχνολογία Java (2/2) Η Java VM: Εξαρτάται από το λειτουργικό σύστημα που χρησιμοποιούμε Επιτρέπει το ίδιο.class αρχείο να μπορεί να εκτελεστεί σε οποιοδήποτε περιβάλλον Η Java τεχνολογία, πέρα από την Java VM, μας παρέχει και ένα συνολο βιβλιοθηκών (Java Application Programming Interface (Java API)) με έτοιμο κώδικα που παρέχει χρήσιμη λειτουργικότητα για τις εφαρμογές μας Java API MyClass.java Java Virtual Machine Operating System Java Platform 5

6 Τεχνολογία Java Αντικειμεστραφής προγραμματισμός και συντακτικό της γλώσσας Χρήσιμες κλάσεις Κληρονομικότητα Διεπαφές, Αφηρημένες Κλάσεις Πακέτα και εμβέλεια κλάσεων Εργαλεία υλοποίησης 6

7 Βασικές αρχές αντικειμενοστρεφούς προγραμματισμού Προγραμματιστικό μοντέλο που βασίζεται στην έννοια του αντικειμένου Τα πάντα αντιμετωπίζονται ως αντικείμενα με συγκεκριμένες μεθόδους. Βασικές αρχές αντικειμενοστρεφούς προγραμματισμού: Κληρονομικότητα (inheritance): ένα αντικείμενο κληρονομεί και επεκτείνει τα χαρακτηριστικά και τις μεθόδους ενός άλλου αντικειμένου. Όχημα -> Αυτοκίνητο -> Υβριδικό Αυτοκίνητο Πολυμορφισμός (polymorphism): Η ίδια μέθοδος μιας κλάσης υλοποιείται με διαφορετικό τρόπο από τις κλάσεις που την κληρονομούν. Ενθυλάκωση (encapsulation): Η απόκρυψη των χαρακτηριστικών ενός αντικειμένου και η προσπέλαση του μόνο από μια ορισμένη διεπαφή. 7

8 Αντικειμενοστραφής προγραμματισμός με Java - Βασικές έννοιες (1) Η έννοια της κλάσης: public MyClass{} Μια public κλάση αποθηκεύεται σε ένα αρχείο που φέρει το όνομα της, δηλαδή MyClass.java Τα πεδία και οι μέθοδοι αποτελούν τα μέλη μιας κλάσης <Access Modifier> class <Class Name> { // field, // constructor, // method declarations } Μια κλάση μπορεί να δηλωθεί και ως private/protected αρκεί να εμπεριέχεται σε μια public εξωτερική κλάση (είναι δηλαδή inner class). 8

9 Αντικειμενοστραφής προγραμματισμός με Java - Βασικές έννοιες (2) Μεταβλητές/πεδία: μοντελοποίηση των χαρακτηριστικών μιας κλάσης public: πρόσβαση από όλους. protected: πρόσβαση από τη κλάση και τις υποκλάσεις της. package-private: πρόσβαση από όλες τις κλάσεις του ίδιου πακέτου. private: πρόσβαση μόνο από την ίδια την κλάση. static: κοινή για όλα τα αντικείμενα μιας κλάσης. final: αρχικοποιείται μία φορά και δεν αλλάζει η τιμή τους. Modifier Class Package Subclass World public protected - no modifier - - private

10 Αντικειμενοστραφής προγραμματισμός με Java - Βασικές έννοιες (3) Μέθοδοι: η λειτουργικότητα της κλάσης Αντίστοιχη διάκριση με τις μεταβλητές. Αντικείμενο: η πραγμάτωση μιας κλάσης Ουσιαστικά το αντικείμενο αποτελεί ένα στιγμιότυπο της κλάσης. MyClass myobject = new MyClass(); new τελεστής για την δέσμευση μνήμης για το αντικείμενο myobject. Καλείται ο constructor π.χ. MyClass(); 10

11 Η κλάση Ποια η σημασία του static πεδίου numberofbicycles; Τί σημαίνει το this? Η δήλωση μιας κλάσης ακολουθεί την μορφή <Access Modifier> class <Class Name> { } // field, constructor, and method declarations Το σώμα μιας κλάσης περιλαμβάνει τον κώδικα για τον ορισμό του κύκλου ζωής ενός αντικειμένου μιας κλάσης. Constructors: Καλούνται κατά την δημιουργία ενός αντικειμένου. Η δήλωση τους μοιάζει με αυτή των μεθόδων μόνο που έχουν σαν όνομα το όνομα της κλάσης και δεν επιστρέφουν κάτι κατά την κλήση τους. Μπορούμε να ορίσουμε κανένα, ένα ή και περισσότερους constructors για μια κλάση, που θα διαφέρουν στην λίστα παραμέτρων. Εάν δεν δηλώσουμε εμείς κανένα, τότε η Java μας παρέχει τον default no-argument constructor. Οι μεταβλητές μέλη μιας κλάσης ορίζονται και ως τα πεδία μιας κλάσης. Η δήλωση τους ακολουθεί την μορφή: Ορισμός μεθόδων μιας κλάσης Method overloading <Access Modifier> <field type> <field name> Ο ορισμός των μεθόδων ακολουθεί την μορφή <Access Modifier> <return type> <method name> (<argument list>) <exception list>{ } //body 11

12 Αντικείμενο Τί τυπώνει το πρόγραμμα μας? Ποιός ο ρόλος του τελεστή + στην System.out.println()? Η Java VM ξεκινά την εκτέλεση της εφαρμογής από την main μέθοδο. Η κλάση Bicycle δεν περιέχει στο σώμα της την συνάρτηση main. Γι αυτό το λόγο δεν αποτελεί μια πλήρη εφαρμογή, αλλά ορίζει απλά τον τύπο αντικειμένων. Για την δημιουργία ενός αντικειμένου μιας κλάσης χρειάζεται να: Δηλώσω μια μεταβλητή τύπου...bicycle Δεσμεύσω μνήμη για το αντικείμενο αυτό (χρήση του τελεστή new) Αρχικοποιήσω το αντικείμενο αυτό (κλήση ενός constructor της κλάσης) Προσπέλαση των πεδίων ενός αντικειμένου Μπoρώ να προσπελαύνω απευθείας τα public πεδία ενός αντικειμένου μιας κλάσης: objectname.fieldname Μπoρώ να προσπελαύνω τα private πεδία ενός αντικειμένου μιας κλάσης μέσω της κλήσης κατάλληλων μεθόδων: objectname.fieldgetter() / objectname.fieldsetter() Κλήση των μεθόδων ενός αντικειμένου. Η Java μας επιτρέπει να δημιουργούμε όσα αντικείμενα θέλουμε κατά την εκτέλεση της εφαρμογής μας, χωρίς να πρέπει να αποδεσμεύσουμε ρητά την μνήμη. Το Java runtime environment αποδεσμεύει την μνήμη για όσα αντικείμενα δεν χρησιμοποιούνται πλέον. Αυτή η διεργασία ονομάζεται garbage collection

13 public static void main(string[] args) Η main μέθοδος απαιτείται ώστε να εκτελεστεί το πρόγραμμα μας. public: όλες οι κλάσεις έχουν πρόσβαση σε αυτήν static: Ανήκει στην κλάση και όχι στα αντικείμενα της. void: Δεν επιστρέφει κάτι. String[] args: Λαμβάνει σαν όρισμα έναν πίνακα από συμβολοσειρές. Τα ορίσματα δίνονται από την γραμμή εντολών. Προφανώς οι παράμετροι εισόδου είναι συμβολοσειρές Integer.parseInt() Double.parseDouble() Για περισσότερα στο java.lang πακέτο του Java API 13

14 static Ως static μπορούμε να ορίσουμε πεδία και μεθόδους μιας κλάσης static πεδία Είναι πεδία που ανήκουν στην κλάση και όχι στα αντικείμενα της κλάσης. Τα στατικά πεδία αρχικοποιούνται μόνο μια φορά κατά την έναρξη της εκτέλεσης και πριν δημιουργηθεί κάποιο αντικείμενο για την κλάση. Μπορεί να θεωρηθεί και ως κοινή μνήμη που την μοιράζονται όλα τα αντικείμενα. Η προσπέλαση ενός static πεδίου γίνεται με την χρήση του ονόματος της κλάσης και όχι κάποιου αντικειμένου: <class name>.<static field name>. static μέθοδοι Είναι μέθοδοι που ανήκουν στην κλάση και όχι στα αντικείμενα της. Μπορούν να προσπελάσουν μόνο static πεδία μιας κλάσης και όχι κάποιο άλλο πεδίο. Μπορούν μόνο να καλέσουν άλλες static μεθόδους της κλάσης. Η κλήση μιας static μεθόδου γίνεται με την χρήση του ονόματος της κλάσης και όχι κάποιου αντικειμένου: <class name>.<static method name>. Δεν μπορεί να αναφερθούν στα this & super keywords. H main μέθοδος είναι static για να μπορεί να είναι προσβάσιμη από το περιβάλλον εκτέλεσης χωρίς να χρειάζεται η δημιουργία κάποιου αντικειμένου. 14

15 this Η δεσμευμένη λέξη this αναφέρεται στο τρέχον αντικείμενο μιας κλάσης this.<field name> Στην περίπτωση που ένα πεδίο μιας κλάσης αποκρύπτεται από το όνομα μιας παραμέτρου (μέθοδος, constructor) this.<constructor> Στο σώμα ενός constructor μπορούμε να καλέσουμε έναν άλλο constructor της κλάσης (explicit constructor invocation). Για να χειριστούμε το ίδιο το αντικείμενο Να το περάσουμε σαν όρισμα κατά την κλήση μιας συνάρτησης obj.itisme(this); Για να το επιστρέψουμε κατά την κλήση μιας συνάρτησης MyClass getinstance() {return this;} Για να προσπελάσουμε το όνομα της τρέχουσας κλάσης 15

16 Τύποι μεταβλητών Η Java υποστηρίζει 8 primitive data types (θεμελιώδης τύποι δεδομένων) 1. byte: 8-bit ακέραιος (-2 7 έως 2 7-1, δηλαδή -128 έως 127) 2. short: 16-bit ακέραιος (-2 15 έως , δηλαδή έως ) 3. int: 32-bit ακέραιος 4. long: 64-bit ακέραιος 5. float: 32-bit δεκαδικός 6. double: 64-bit δεκαδικός 7. char: 16-bit χαρακτήρας (υποστήριξη του Unicode) 8. boolean: λογική τιμή (true/false) 16

17 Tελεστές Η Java παρέχει τις ακόλουθες κατηγορίες τελεστών: Τελεστές ανάθεσης = Αριθμητικοί τελεστές +, -, *, /, % Μοναδιαίοι τελεστές ++, --,! Ισότητας και συσχέτισης ==,!=, >, >=, <,<= Τελεστές για λογικές συνθήκες &&, Τελεστής σύγκρισης τύπoυ objectname instanceof MyClass Συγκρίνει αν ένα object είναι συγκεκριμένου τύπου (επιστρέφει true/false) 17

18 Δομές ελέγχου (1) Η Java μας παρέχει τις κλασικές δομές ελέγχου: If-then-else, switch, for, while, break, continue, return; if (condition) { } if (condition) { } else { } Προσοχή!! Το condition είναι τύπου boolean με τιμές true ή false. Δεν ισχύει αυτό που γνωρίζουμε από την C, δηλαδή η παράσταση μέσα στο if αν αποτιμάται σε θετικό ακέραιο, τότε είναι αληθής και αν είναι 0 είναι ψευδής switch (expression){ case value 1: ; break;. default: ; } Το expression μπορεί να είναι ακέραιος, String ή enumerated type

19 Δομές ελέγχου (2) while(condition){} Αν θέλουμε να ορίσουμε infinite loop while(true){ } και όχι while(1){ } όπως ισχύει στην C for(initialization; termination; increment){} Σε περιπτώσεις που σαρώνουμε arrays ή Collections, μια δυνατή σύνταξη του for loop είναι η ακόλουθη int[] numbers = {1,2,3,4,5,6,7,8,9,10}; for (int item : numbers) { } System.out.println("Count is: " + item);

20 Πίνακες (1) Ο πίνακας είναι ένα αντικείμενο που διατηρεί ένα σύνολο από αντικείμενα του ίδιου τύπου Η αρίθμηση στους πίνακες ξεκινά πάντα από το 0. Η δήλωση ενός πίνακα γίνεται μέσω του ορισμού του είδους των αντικειμένων που θα φέρει και των [] (αγκύλες) int[] myarray Ο πίνακας αρχικοποιείται και δεσμεύεται στη μνήμη μέσω του τελεστή new int[] myarray = new int[10] Εναλλακτικά int[] myarray= {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000} Το μέγεθος ενός πίνακα δεν μπορεί να μεταβληθεί. Στην περίπτωση που ο τύπος των αντικειμένων ενός πίνακα δεν είναι κάποιος από τους primitive types της Java, τότε θα πρέπει για κάθε στοιχείο του πίνακα ξεχωριστά να δεσμευτεί μνήμη MyObject[] myarray = new MyObject[10]; myarray[0] = new MyObject(); 20

21 Πίνακες (2) Οι πολυδιάστατοι πίνακες στην Java διαφέρουν από τους αντίστοιχους στην C. Οι 2-διάστατοι πίνακες είναι απλά μονοδιάστατοι πίνακες που φέρουν σαν στοιχεία πίνακες. String[][] names = {{ Mr., Mrs., Ms. }, { Smith, Jones }}; names[0][0] = Mr. ; Τα πάντα στην Java είναι δείκτες σε μνήμη. Η παρακάτω εντολή ΔΕΝ αντιγράφει τον πίνακα names στον πίνακα newnames. String[][] newnames = names; Τόσο η μεταβλητή names, όσο και η newnames δείχνουν στον ίδιο χώρο μνήμης (references). Η συνάρτηση arraycopy της κλάσης System μας επιτρέπει να αντιγράψουμε τα περιεχόμενα ενός πίνακα σε έναν άλλο. System.arraycopy(Object src, int srcpos, Object dest, int destpos, int length) Προσοχή! Η μέθοδος αυτή δεν κάνει deep-copy καθώς δεν δημιουργεί νέα αντικείμενα και για τα πεδία του τύπου κλάσης των στοιχείων του πίνακα και δεν δουλεύει για Collections. Ο αριθμός των θέσεων ενός πίνακα δίνεται από το built-in property length. myarray.length, names[0].length 21

22 Παράδειγμα Τί τυπώνει το πρόγραμμα μας ; Τί σημαίνει το System.gc() ; 22

23 Τεχνολογία Java Αντικειμεστραφής προγραμματισμός και συντακτικό της γλώσσας Χρήσιμες κλάσεις Κληρονομικότητα Διεπαφές, Αφηρημένες Κλάσεις Πακέτα και εμβέλεια κλάσεων Εργαλεία υλοποίησης 23

24 Number H Java έχει ορίσει την κλάση Number μαζί με ενα σύνολο υποκλάσεων για τον ορισμό αντικειμένων με πεδίο το αντίστοιχο primitive type. Στόχος αυτών των κλάσεων είναι να κάνουν wrap ένα primitive data value σε ένα αντικείμενο. Οι περιπτώσεις που μπορεί να χρειαστούμε κάποιο Number object αντί για ένα primitive: Σαν όρισμα σε μεθόδους που περιμένουν κάποιο object Για να χρησιμοποιήσουμε τις maximum και minimum values των αντίστοιχων data types πχ Integer.MAX_VALUE, Integer.MIN_VALUE. Για την γρήγορη μετατροπή τους από και προς string (θυμήσου την atoi()!!) και άλλους τύπους Μια πολύ χρήσιμη κλάση: java.lang.math 24

25 String (1) H Java μας παρέχει την κλάση String για να χειριζόμαστε τις συμβολοσειρές σαν αντικείμενα. Δημιουργία String αντικειμένων String greeting = Hello world! ; String greeting = new String( Hello world! );..και άλλα 11 είδη constructor για να δημιουργήσω ένα αντικείμενο τύπου String Η κλάση String είναι immutable, αυτό σημαίνει πως όταν ένα νέο string αντικείμενο δημιουργηθεί δεν μπορεί να αλλάξει. 25

26 String (2) Χρήσιμες συναρτήσεις... String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); String name = "My name is.concat("rumplestiltskin"); Συνένωση string πετυχαίνουμε και με τον τελεστή + (θυμήσου τα παραδείγματα με την System.out.println) char character = hello.charat(0); hello.equals( helloοοο ); Μετατροπή μεταξύ Number και String String to Number <NumberSubclass>.parseXXXX πχ Float.parsefFoat(myString) Number to String String str = String.valueOf(1); 26

27 Java.lang.System Μια χρήσιμη κλάση που μας παρέχει το Java API είναι και η System. Περιέχει μέσα της ένα σύνολο από static μεθόδους και πεδία. Χειρίζεται όλες τις δραστηριότητες που αφορούν την είσοδο και έξοδο του προγράμματος in:"standard" input stream out:"standard" output stream err :"standard" error output stream. Μερικές χρήσιμες μέθοδοι currenttimemillis(): επιστρέφει τα δευτερόλεπτα που πέρασαν από την 1/1/1970. gc(): αρχικοποιεί τον garbage collector. exit(int code): τερματίζει την εκτέλεση του προγράμματος και επιστρέφει έναν ακέραιο στο run time περιβάλλον. arraycopy(object src, int srcpos, Object dest, int destpos, int length): αντιγραφή μεταξύ πινάκων. 27

28 Τεχνολογία Java Αντικειμεστραφής προγραμματισμός και συντακτικό της γλώσσας Χρήσιμες κλάσεις Κληρονομικότητα Διεπαφές, Αφηρημένες Κλάσεις Πακέτα και εμβέλεια κλάσεων Εργαλεία υλοποίησης 28 28

29 Κληρονομικότητα Στην Java μια κλάση μπορεί να κληρονομήσει και να επεκτείνει τα πεδία και τις μεθόδους μιας άλλης κλάσης. SuperClass/ParentClass/BaseClass extends SubClass/ChildClass/ExtendedClass H κλάση Object (java.lang.object) θεωρείται ως η super class όλων των κλάσεων. Κάθε κλάση που υλοποιούμε και δεν κληρονομεί ρητά κάποια άλλη, θεωρείται υποκλάση της Object. Μια κλάση μπορεί να κληρονομήσει ΜΟΝΟ ΜΙΑ άλλη κλάση. Ο σκοπός της κληρονομικότητας είναι να χρησιμοποιούμε υπάρχουσες κλάσεις και να προσθέτουμε επιπλέον χαρακτηριστικά χωρίς να χρειαστεί να ξαναγράψουμε κώδικα. Λέξη κλειδί extends: SubClass extends SuperClass

30 Object Είναι η κλάση που την κληρονομούν έμμεσα ή άμεσα όλες οι κλάσεις στην Java. Βρίσκεται στην κορυφή της ιεραρχίας των κλάσεων. Η κλάση αυτή ορίζει συμπεριφορά που όλα τα αντικείμενα των κλάσεων πρέπει να διαθέτουν. Μερικές από τις σημαντικότερες μεθόδους της Object που μια κλάση από τον χρήστη μπορεί να κάνει override ή και να χρησιμοποιήσει αυτούσια: equals(): επιστρέφει true ή false ανάλογα αν δυο αντικείμενα είναι όμοια. Με τον όρο όμοια δεν εννοούμε να δείχνουν στο ίδιο αντικείμενο (μνήμη). Κάνοντας override την μέθοδο αυτή μπορούμε να κάνουμε πιο συγκεκριμένα τα κριτήρια για να είναι δυο αντικείμενα όμοια. getclass(): μας δίνει ένα runtime representation της κλάσης που ανήκει το εκάστοτε αντικείμενο για να ανακτήσουμε πληροφορίες για την κλάση αυτή, πχ. myobject.getclass().getname() tostring(): μας παρέχει ένα string για την αναπαράσταση ενός object. Συνήθως το κάνουμε override για να παρουσιάσουμε με δικό μας τρόπο τα πεδία μιάς κλάσης σε μια εκτύπωση. 30

31 Παράδειγμα 31

32 Χαρακτηριστικά κληρονομικότητας Μια υποκλάση κληρονομεί όλα τα μέλη μιας υπερκλάσης (πεδία, μεθόδους, εμφωλευμένες κλάσεις), αλλά έχει direct access στα public και protected μέλη. Constructors Οι constructors δεν θεωρούνται μέλη μιας κλάσης άρα δεν μπορούν να κληρονομηθούν, μπορούν όμως να κληθούν από την υποκλάση. Πεδία Ο constructor μιας υποκλάσης μπορεί να καλέσει τον constructor της υπερκλάσης είτε έμμεσα ή με την χρήση της super. Τα κληρονομημένα πεδία μπορούν να χρησιμοποιηθούν άμεσα όπως οποιοδήποτε άλλο πεδίο της κλάσης. Μπορούμε να ορίσουμε επιπλέον πεδία σε μια υποκλάση που δεν ορίζονται στην υπερκλάση. Μπορούμε να ορίσουμε πεδία στην υποκλάση με ίδιο όνομα με αυτά στην υπερκλάση και να τα αποκρύψουμε (hiding). 32

33 Χαρακτηριστικά κληρονομικότητας Μέθοδοι Οι κληρονομημένες μέθοδοι μπορούν να κληθούν από την υποκλάση. Μπορούμε να ορίσουμε νέες μεθόδους σε μια υποκλάση που δεν εμφανίζονται στην υπερκλάση. Μπορούμε να ορίσουμε μεθόδους στην υποκλάση με ίδια υπογραφή με αυτές στην υπερκλάση (method overriding). Μπορούμε να καλέσουμε αυτές της υπερκλάσης με τον τελεστή super. Μπορούμε να ορίσουμε μια static μέθοδο στην υποκλάση με ίδια υπογραφή με μια static μέθοδο στην υπερκλάση και έτσι να την αποκρύψουμε (hiding). 33

34 Παράδειγμα Τί τυπώνει το πρόγραμμα μας? Ποιές αρχές του αντικειμενοστραφούς προγραμματισμού διακρίνετε? Method hiding Method overriding ΑΠΑΝΤΗΣΗ The class method in Animal. The instance method in Cat. The instance method in Dog. 34

35 super Υπάρχουν περιπτώσεις στις οποίες θέλουμε να καλέσουμε μια μέθοδο της γονικής κλάσης που κάνουμε override, ή έναν constructor. Χρήση της super για την κλήση μεθόδων Class ParentClass { } void methoda() { } Class ChildClass extends ParentCLass { } void methoda(){ super.methoda();.} Χρήση της super για την κλήση constructors Η κλήση της super(<argument list>); γίνεται πάντα πρώτη. Μπορεί να μην γίνεται ρητά από το πρόγραμμα μας η κλήση της super. To run time περιβάλλον θα καλέσει τον non-argument constructor (default constructor). Υπάρχει μια αλυσιδωτή κλήση constructors από την κλάση παιδί μέχρι να φτάσουμε στην κλήση του Object constructor (constructor chaining). Στην κληρονομικότητα τα αντικείμενα χτίζονται από την κλάση Object προς τα κάτω. 35

36 Type casting Ο ορισμός μιας κλάσης μας παρέχει νέους τύπους δεδομένων. Ως type casting ορίζουμε την μετατροπή ενός αντικειμένου από έναν αρχικό τύπο σε ένα άλλο. Type casting σε reference του ίδιου τύπου αντικειμένου. Upcasting: το να δείχνουμε ένα αντικείμενο μιας κλάσης Child με ένα reference τύπου Parent, όπου Child extends Parent. δεν μπορούμε να καλέσουμε επιπλέον μεθόδους και πεδία που ορίζονται στην Child και οχι στην Parent. Μπορούμε όμως να καλέσουμε τις overridden methods της Child!! Downcasting: το να δείχνουμε ένα αντικείμενο της κλάσης Parent με ένα reference τύπου Child. Σε αυτή την περίπτωση θα μας χτυπήσει compile-time error μιας και η μνήμη δεν είναι ίδια. Η μόνη εξαίρεση Parent obj = new Child(); Child child = (Child) obj; Parent obj = new Child(); if (obj instanceof Child) Child child = (Child) obj 36

37 Constructors tostring() για να τυπώνουμε πληροφορίες ενός αντικειμένου Πρόσβαση στα private πεδία της κλάσης με getters και setters equals() για να συγκρίνουμε δυο αντικείμενα Is std1 equal with std2: false Student id: 123 Student name: Maria Student surname: Papadopoulou Διάλεξη 2 Student id: 456 Student name: Dimitris Student surname: Nikolaou Διάλεξη

38 Τεχνολογία Java Αντικειμεστραφής προγραμματισμός και συντακτικό της γλώσσας Χρήσιμες κλάσεις Κληρονομικότητα Διεπαφές, Αφηρημένες Κλάσεις Πακέτα και εμβέλεια κλάσεων Εργαλεία υλοποίησης 38

39 Διεπαφές (Interfaces) (1) Υπάρχουν στιγμές που θέλουμε να συμφωνήσουμε με τα άλλα μέλη της ομάδας μας στο πως θα επικοινωνούν κομμάτια κώδικα και να μοιράσουμε την υλοποίηση! Τα interfaces μας παρέχουν αυτή την δυνατότητα. Στην Java ένα interface αποτελεί ένα reference type, παρόμοιο με μια κλάση, και περιέχει μόνο σταθερές (static & final μεταβλητές) και δηλώσεις μεθόδων. Δεν υλοποιείται ΚΑΜΙΑ μέθοδος. Δεν μπορούμε να δημιουργήσουμε αντικείμενα από interfaces. 39

40 Διεπαφές (Interfaces) (2) Ένα interface μπορεί να γίνει implement από μια κλάση ή extend από ένα άλλο interface. Όταν κάνουμε implement ένα interface, πρέπει να γράψουμε κώδικα για όλες τις μεθόδους που ορίζονται. Μια κλάση μπορεί να κάνει implement παραπάνω από ένα interfaces (σε αντίθεση με την κληρονομικότητα, όπου μπορεί να κάνει extend μια μόνο κλάση). 40

41 Συνολικά implements extends 41

42 Αφηρημένες (Abstract) κλάσεις Αποτελούν κλάσεις με μια ή περισσότερες abstract μεθόδους (που δεν έχουν υλοποιηθεί). public abstract class MyAbstractClass { // declare fields // declare non-abstract methods abstract void abstractmethod(); } Μια κλάση μπορεί να την κάνει extend και να υλοποιήσει όλες τις abstract μεθόδους της. Σε σύγκριση με τα interfaces, οι abstract classes περιέχουν πεδία non static και final, και παρέχουν υλοποίηση για κάποιες από τις μεθόδους τους. Ο λόγος που υπάρχουν είναι για να αφήνουν στον προγραμματιστή που τις κάνει extend την ελευθερία να ολοκληρώσει την υλοποίηση τους. Μια abstract κλάση που περιέχει μόνο abstract μεθόδους είναι καλύτερο να δηλωθεί ως interface. 42

43 Τεχνολογία Java Αντικειμεστραφής προγραμματισμός και συντακτικό της γλώσσας Χρήσιμες κλάσεις Κληρονομικότητα Διεπαφές, Αφηρημένες Κλάσεις Πακέτα και εμβέλεια κλάσεων Εργαλεία υλοποίησης 43

44 Πακέτα (Packages) Με τον όρο package ορίζουμε την ομαδοποίηση συναφών κλάσεων και interfaces σε ένα κατάλογο. Πλεονεκτήματα από τον ορισμό πακέτων Ορισμός συνάφειας μεταξύ τύπων Modularity.. Δεν υπάρχουν «συγκρούσεις» στην ονοματολογία των κλάσεων, καθώς κάθε package ορίζει δικό του namespace. Επιτρέπουμε δικαίωμα πρόσβασης μεταξύ κλάσεων στο ίδιο package και περιορίζουμε την πρόσβαση σε κλάσεις έξω από αυτό. Το Java API παρέχει κώδικα ομαδοποιημένο σε πακέτα (java.lang, java.util...) Λέξη κλειδί:package 44

45 Πακέτα (Packages) Σύμβαση ονοματολογίας: το όνομα ενός package είναι με μικρά Πολλές εταιρείες επιλέγουν σαν όνομα package το αντίστροφο του ονόματος του Internet domain τους π.χ package gr.uoa.di Αν θέλουμε να αναφερθούμε στον κώδικα μας στις κλάσεις κάποιου πακέτου γράφουμε import gr.uoa.di.* Παράδειγμα 45

46 Εμβέλεια (Scope) Η Java μας παρέχει ένα σύνολο από access modifiers για να ορίζουμε τα όρια την εμβέλεια - που είναι ορατή μια κλάση ή ένα πεδίο/μεταβλητή μιας κλάσης. Η εισαγωγή πακέτων ορίζει πεδία εμβέλειας Εμβέλεια κλάσης Μία κλάση μπορεί να δηλωθεί ως public και να υπάρχει πρόσβαση από άλλες κλάσεις, ανεξάρτητα από το πακέτο που βρίσκονται. Αν δεν υπάρχει συγκεκριμένος modifier, θεωρούμε τον default (package-private) με τον οποίο μια κλάση είναι ορατή ΜΟΝΟ στο πακέτο της. Εμβέλεια πεδίων (Φθίνουσα αυστηρότητα) private: μόνο οι μέθοδοι της κλάσης έχουν πρόσβαση στο πεδίο αυτό. package-private: μόνο η ίδια η κλάση και κλάσεις που ανήκουν στο ίδιο πακέτο έχουν πρόσβαση στο πεδίο αυτό. protected: πρόσβαση σε αυτό έχουν η ίδια η κλάση, κλάσεις που ανήκουν στο ίδιο πακέτο και κλάσεις που την κληρονομούν (ανεξαρτήτως πακέτου) public: όλες οι κλάσεις, ανεξαρτήτως πακέτου, έχουν πρόσβαση στο πεδίο αυτό. 46

47 Τεχνολογία Java Αντικειμεστραφής προγραμματισμός και συντακτικό της γλώσσας Χρήσιμες κλάσεις Κληρονομικότητα Διεπαφές, Αφηρημένες Κλάσεις Πακέτα και εμβέλεια κλάσεων Εργαλεία υλοποίησης 47 47

48 Συγγραφή, Μεταγλώττιση και Εκτέλεση προγράμματος Απαραίτητα: Java Development Kit (JDK): Συγγραφή κώδικα ένας κειμενογράφος: Notepad, Textpad, WordPad ένα IDE: Eclipse, Netbeans, Intellij IDEA Μεταγλώτιση και εκτέλεση από την γραμμή εντολών javac cp path_to_libraries;path_to_classes sourcepath path_to_sources java cp path_to_libraries;path_to_classes MainClass arg1 arg2 argn Σε περιβάλλον Linux το διαχωριστικό ανάμεσα στις βιβλιοθήκες είναι : αντί για ; των Windows. 48

49 Παράδειγμα Μεταγλώττιση javac.exe src\gr\uoa\printerclass.java -d classes javac.exe -cp classes src\gr\uoa\di\firstclass.java -d classes Εκτέλεση java -cp classes/ gr.uoa.di.firstclass "Hello World" Αποτέλεσμα Hello World 49

50 Αναφορές Javadoc Oracle tutorial 50

Διάλεξη 3 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο

Διάλεξη 3 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο Διάλεξη 3 Τεχνολογία Java Αντικειμενοστραφής προγραμματισμός και συντακτικό της γλώσσας Χρήσιμες κλάσεις Κληρονομικότητα Διεπαφές, Αφηρημένες κλάσεις Πακέτα και εμβέλεια κλάσεων Εργαλεία υλοποίησης Διάλεξη

Διαβάστε περισσότερα

Διάλεξη Εισαγωγή στη Java, Μέρος Α

Διάλεξη Εισαγωγή στη Java, Μέρος Α Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο 2018-2019 Διάλεξη Εισαγωγή στη Java, Μέρος Α 1. Τεχνολογία Java 2. Αντικειμενοστραφής προγραμματισμός

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

Διαβάστε περισσότερα

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

Διαβάστε περισσότερα

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

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

(Διαφάνειες Νίκου Βιδάκη)

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

Διαβάστε περισσότερα

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

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

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

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

Διαβάστε περισσότερα

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες: Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 8 Πακέτα (Packages) Access

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Ισότητα Strings class StringTest public static void main(string args[]) String x1 = "java"; String y1 = "java"; System.out.println("1.

Διαβάστε περισσότερα

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

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

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1 Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί

Διαβάστε περισσότερα

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

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 2: Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

Διαβάστε περισσότερα

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

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))

Διαβάστε περισσότερα

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

Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors Μαθήματα από το lab Ένα πρόγραμμα αποτελείται από διάφορες κλάσεις και αντικείμενα αυτών των κλάσεων. Μία από τις κλάσεις

Διαβάστε περισσότερα

Java sessions. Part 1 - Βασικά έννοιες - μέθοδοι

Java sessions. Part 1 - Βασικά έννοιες - μέθοδοι Java sessions Part 1 - Βασικά έννοιες - μέθοδοι Ενότητα 1 Η γλώσσα Java 1.1 - Ιστορία Ξεκίνησε το 1995 από τον James Gosling, υπάλληλο της Sun Microsystems Αρχικά ονομάστηκε Oak, αργότερα άλλαξε σε Java

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD (Object Oriented Programming) Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος Πακέτα (Packages) Φωλιασμένες

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι

Διαβάστε περισσότερα

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά

Διαβάστε περισσότερα

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

Διαβάστε περισσότερα

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12 Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

Διαβάστε περισσότερα

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

Βασικά της γλώσσας JAVA 17 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

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

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1 Αντικείμενα στη Java Παύλος Εφραιμίδης Java Αντικείμενα στη Java 1 Αντικείμενα (Objects) στην Java Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 9: Κληρονομικότητα (Inheritance)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 9: Κληρονομικότητα (Inheritance) ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 9: Κληρονομικότητα (Inheritance) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 9 Κληρονομικότητα (Inheritance) Υπάρχουν κλάσεις που

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods

Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods (Object Oriented Programming) Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Διαφορές Java και C++ ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΙΑΦΟΡΕΣ JAVA C++ Η

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 16/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Τύποι της Java Primitives vs References Οι πρωταρχικοί

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD (Object Oriented Programming) Διασυνδέσεις / Διεπαφές PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος Διεπαφές/Διασυνδέσεις (Interfaces) 2 Διεπαφές/Διασυνδέσεις (Interfaces)

Διαβάστε περισσότερα

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1) Αντικείμενα (Objects) στην Java Αντικείμενα στη Java Παύλος Εφραιμίδης Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας μηνύματα το ένα στο άλλο

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με κοινά χαρακτηριστικά και κοινή συμπεριφορά. Ένα καλούπι/πρότυπο

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

Διαβάστε περισσότερα

Τύποι δεδομένων, τελεστές, μεταβλητές

Τύποι δεδομένων, τελεστές, μεταβλητές Τύποι δεδομένων, τελεστές, μεταβλητές Βασικά στοιχεία της γλώσσας Η Java χαρακτηρίζεται από ένα αρκετά καλά οργανωμένο σύνολο εντολών κι ένα μέρος της επιτυχίας της οφείλεται στα διάφορα APIs (βιβλιοθήκες)

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ

Διαβάστε περισσότερα

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη

Διαβάστε περισσότερα

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

Διαβάστε περισσότερα

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

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

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

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08 Constructors (Κατασκευαστές) Ειδικός τύπος μεθόδων που δημιουργούν αντικείμενα μιας κλάσης και: Εκτελούνται κατά την αρχικοποίηση των αντικειμένων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 - Παράδειγμα με switch (το οποίο δείχνει επίσης πότε σε μια άσκηση χρησιμοποιούμε user-input και System.out.println() για έξοδο και πότε χρησιμοποιούμε είσοδο σε μέθοδο

Διαβάστε περισσότερα

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 7: Ενθυλάκωση (encapsulation), Τροποποιητές(modifiers) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ενθυλάκωση -Τροποποιητές Πρόσβασης (Access Modifiers), public, protected, private,

Διαβάστε περισσότερα

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση

Διαβάστε περισσότερα

Η λέξη κλειδί this. Γαβαλάς Δαμιανός dgavalas@aegean.gr

Η λέξη κλειδί this. Γαβαλάς Δαμιανός dgavalas@aegean.gr Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #6 η : Η λέξη κλειδί this, υπερφόρτωση μεθόδων, κληρονομικότητα, πολυμορφισμός, υπερκάλυψη, επίπεδα προσπέλασης Γαβαλάς Δαμιανός dgavalas@aegean.gr

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις Στατικές μέθοδοι Τι σημαίνει το keyword static στον ορισμό της main μεθόδου? Τι είναι μια στατική μέθοδος?

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

Διαβάστε περισσότερα

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

Διαβάστε περισσότερα

Ευφυείς Τεχνολογίες ----Πράκτορες

Ευφυείς Τεχνολογίες ----Πράκτορες Ευφυείς Τεχνολογίες ----Πράκτορες Ενότητα 6: Προγραμματισμός Βασισμένος στους πράκτορες Το Περιβάλλον Ανάπτυξης Πολλαπλών Πρακτόρων JADE Δημοσθένης Σταμάτης demos@it.teithe.gr www.it.teithe.gr/~demos Μαθησιακοί

Διαβάστε περισσότερα

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

Wrapper Classes, Abstract Classes and Interfaces

Wrapper Classes, Abstract Classes and Interfaces Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

Διαβάστε περισσότερα

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

8. Μέθοδοι (Methods) 8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι Μαθήματα από το lab Boolean μεταβλητές: Συνήθως τα ονόματα που δίνουμε στις boolean μεταβλητές περιγράφουν

Διαβάστε περισσότερα

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

Αντικειμενοστραφής Προγραμματισμός Κλάσεις Αντικειμενοστραφής Προγραμματισμός Κλάσεις-Αντικείμενα Ένα παράδειγμα Συναρτήσεις κατασκευής (Constructors) Συνάρτηση καταστροφής (Destructor) Συναρτήσεις πρόσβασης (Access Functions) Συνάρτηση

Διαβάστε περισσότερα

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

Διαβάστε περισσότερα

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

Διαβάστε περισσότερα

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα Η μνήμη του υπολογιστή Η κύρια μνήμη (main memory - RAM) του υπολογιστή κρατάει τα δεδομένα για την εκτέλεση των προγραμμάτων.

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον

Διαβάστε περισσότερα

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

Mεταβλητές (variables) και Σταθερές (constants) Mεταβλητές (variables) και Σταθερές (constants) Οι μεταβλητές είναι οι θέσεις μνήμης στις οποίες ένα πρόγραμμα τοποθετεί τα δεδομένα του κατά τη διάρκεια της λειτουργίας του. θα μάθουμε: πως δηλώνουμε

Διαβάστε περισσότερα

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13 Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις

Διαβάστε περισσότερα

ΚΑΛΟΥΠΩΜΑΤΑ & ΜΕΤΑΤΡΟΠΕΣ

ΚΑΛΟΥΠΩΜΑΤΑ & ΜΕΤΑΤΡΟΠΕΣ ΚΑΛΟΥΠΩΜΑΤΑ & ΜΕΤΑΤΡΟΠΕΣ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Είδη καλουπωμάτων Μετατροπές και έλεγχοι τύπου Τελευταία ενημέρωση: Οκτώβριος 2013 Εισαγωγή - 2 Όπως και στη Java, στη C++

Διαβάστε περισσότερα