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

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

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

Transcript

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

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

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

4 Η τεχνολογία 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 Τεχνολογία Java Αντικειμεστραφής προγραμματισμός και συντακτικό της γλώσσας Χρήσιμες κλάσεις Κληρονομικότητα Διεπαφές, Αφηρημένες Κλάσεις Πακέτα και εμβέλεια κλάσεων Εργαλεία υλοποίησης Διάλεξη 3 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο

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

7 Αντικειμενοστραφής προγραμματισμός με Java - Βασικές έννοιες Η έννοια της κλάσης: public MyClass{} Μια public κλάση αποθηκεύεται σε ένα αρχείο που φέρει το όνομα της, δηλαδή MyClass.java Μια κλάση μπορεί να δηλωθεί και ως private/protected αρκεί να εμπεριέχεται σε μια public εξωτερική κλάση (inner class). Μεταβλητές/πεδία: μοντελοποίηση των χαρακτηριστικών μιας κλάσης public: πρόσβαση από όλους. protected: πρόσβαση από τη κλάση και τις υποκλάσεις της. package-private: πρόσβαση από όλες τις κλάσεις του ίδιου πακέτου. private: πρόσβαση μόνο από την ίδια την κλάση. static: κοινή για όλα τα αντικείμενα μιας κλάσης. final: αρχικοποιείται μία φορά και δεν αλλάζει η τιμή τους. Μέθοδοι: η λειτουργικότητα της κλάσης Αντίστοιχη διάκριση με τις μεταβλητές. Αντικείμενο: η πραγμάτωση μιας κλάσης Ουσιαστικά το αντικείμενο αποτελεί ένα στιγμιότυπο της κλάσης. MyClass myobject = new MyClass(); new τελεστής για την δέσμευση μνήμης για το αντικείμενο myobject. 7

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

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

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

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

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

13 Τύποι μεταβλητών και τελεστές Η Java υποστηρίζει 8 primitive data types byte: 8-bit ακέραιος short: 16-bit ακέραιος int: 32-bit ακέραιος long: 64-bit ακέραιος float: 32-bit δεκαδικός double: 64-bit δεκαδικός char: 16-bit χαρακτήρας (υποστήριξη του Unicode) boolean: λογική τιμή (true/false) Η Java παρέχει τις ακόλουθες κατηγορίες τελεστών = Τελεστές ανάθεσης Αριθμητικοί τελεστές +, -, *. /, % Μοναδιαίοι τελεστές ++, --,! Ισότητας και συσχέτισης ==,!=, >, >=, <,<= Τελεστές για λογικές συνθήκες &&, Τελεστής σύγκρισης τύπoυ objectname instanceof MyClass Συγκρίνει αν ένα object είναι συγκεκριμένου τύπου (επιστρέφει true/false) 13

14 Δομές ελέγχου Η 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 value1: ; break;. default: ; } Το expression μπορεί να είναι ακέραιος, String ή enumerated type 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); 14

15 Πίνακες (1/2) Ο πίνακας είναι ένα αντικείμεντο που διατηρεί ένα σύνολο από αντικείμενα του ίδιου τύπου Η αρίθμηση στους πίνακες ξεκινά πάντα από το 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(); 15

16 Πίνακες (2/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 16

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

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

19 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 19

20 String H Java μας παρέχει την κλάση String για να χειριζόμαστε τις συμβολοσειρές σαν αντικείμενα. Δημιουργία String αντικειμένων String greeting = Hello world! ; String greeting = new String( Hello world! );..και άλλα 11 είδη constructor για να δημιουργήσω ένα αντικείμενο τύπου String Η κλάση String είναι immutable, αυτό σημαίνει πως όταν ένα νέο string αντικείμενο δημιουργηθεί δεν μπορεί να αλλάξει. Χρήσιμες συναρτήσεις... 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 = 1+ ; String str = String.valueOf(1); String str = Integer.toString(1) 20

21 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): αντιγραφή μεταξύ πινάκων. 21

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

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

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

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

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

27 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 προς τα κάτω. 27

28 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(); Parent obj = new Child(); Child child = (Child) obj; if(obj instanceof Child) Child child = (Child) obj

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

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

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

32 Διεπαφές (Interfaces) Υπάρχουν στιγμές που θέλουμε να συμφωνήσουμε με τα άλλα μέλη της ομάδας μας στο πως θα επικοινωνούν κομμάτια κώδικα και να μοιράσουμε την υλοποίηση! Τα interfaces μας παρέχουν αυτή την δυνατότητα. Στην Java ένα interface αποτελεί ένα reference type, παρόμοιο με μια κλάση, και περιέχει μόνο σταθερές (static & final μεταβλητές)και δηλώσεις μεθόδων. Δεν υλοποιείται ΚΑΜΙΑ μέθοδος. Δεν μπορούμε να δημιουργήσουμε αντικείμενα από interfaces. Ένα interface μπορεί να γίνει implement από μια κλάση ή extend από ένα άλλο interface. Μια κλάση μπορεί να κάνει implement παραπάνω από ένα interfaces (σε αντίθεση με την κληρονομικότητα, όπου μπορεί να κάνει extend μια μόνο κλάση). Όταν κάνουμε implement ένα interface, πρέπει να γράψουμε κώδικα για όλες τις μεθόδους που ορίζονται. Λέξεις κλειδιά: interface, implements 32

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

34 Αφηρημένες (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. 34

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

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

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

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

39 Συγγραφή, Μεταγλώττιση και Εκτέλεση προγράμματος Απαραίτητα: Java Development Kit (JDK): Ένας κειμενογράφος ή ένα IDE: Notepad, Textpad, WordPad NetBeans, Eclipse Ορισμός των μεταβλητών JAVA_HOME: C:\jdk1.6.0_10\bin PATH: C:\jdk1.6.0_10\bin CLASSPATH: C:\jdk1.6.0_10\jre\lib Κατά την εκτέλεση ενός προγράμματος οι βιβλιοθήκες του CLASSPATH χρησιμοποιούνται χωρίς να ζητηθεί. Μεταγλώτιση και εκτέλεση από την γραμμή εντολών 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. 39

40 Παράδειγμα Μεταγλώττιση 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 Διάλεξη 3 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο

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

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

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

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

Διάλεξη Εισαγωγή στη 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 υποστηρίζει

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) 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 προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη 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.

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

Κληρονομικότητα. Παύλος Εφραιμίδης 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.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

Κλάσεις στη 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.2. Σχόλια. 2.3. Τύποι Δεδομένων

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

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

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

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

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

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

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

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

Πακέτα (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) Φωλιασμένες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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 Περιεχόμενα Μαθήματος

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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 (Κατασκευαστές) Ειδικός τύπος μεθόδων που δημιουργούν αντικείμενα μιας κλάσης και: Εκτελούνται κατά την αρχικοποίηση των αντικειμένων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Σχεδίαση-Ανάπτυξη

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016 Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2016-17, Χειμερινό Εξάμηνο 1 η Ενδιάμεση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II HelloWorld.java class HelloWorld public static void main(string args[]) // print message System.out.println( Hello world! ); javac HelloWorld.java

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