Προγραμματισμός ΙΙ (Java) 1. Εισαγωγή

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

Download "Προγραμματισμός ΙΙ (Java) 1. Εισαγωγή"

Transcript

1 Προγραμματισμός ΙΙ (Java) 1. Εισαγωγή 1

2 Στόχοι Όσοι ολοκληρώνουν το μάθημα με επιτυχία να: Γνωρίζουν καλά τις βασικές αρχές του αντικειμενοστρεφούς προγραμματισμού: αντικείμενα, κλάσεις, γνωρίσματα, μεθόδους, αφαιρετικούς τύπους δεδομένων, ενθυλάκωση, κληρονομικότητα, διεπαφές Είναι εξοικειωμένοι με βασικές τεχνικές του προγραμματισμού με Java όπως: χειρισμός εξαιρέσεων, πολυνηματισμός, χρήση εφαρμογών τρίτων, χειρισμός συλλογών αντικειμένων, σύνδεση με ΒΔ και αρχεία Μπορούν να καθορίζουν τη λογική για την επίλυση ενός προβλήματος σύμφωνα με το υπόδειγμα του αντικειμενοστρεφούς προγραμματισμού και κατόπιν να είναι σε θέση να την υλοποιούν σε μια ολοκληρωμένη εφαρμογή Πώς να τεκμηριώνουν και να προετοιμάζουν ένα επαγγελματικό πρόγραμμα χρησιμοποιώντας τα εργαλεία της Java 2

3 Θεματολογία Εισαγωγή (1 ο μάθημα) Σύνδεση με το δομημένο προγραμματισμό Κλάσεις: ενθυλάκωση και ελεγχόμενη πρόσβαση, στατικά μέλη Αντικείμενα: σχεδίαση αντικειμένων, αρχικοποίηση και κατασκευαστές Μέθοδοι (2 ο μάθημα) γνωρίσματα, παράμετροι, τοπικές μεταβλητές, αποτελέσματα και τιμές επιστροφής υπερφόρτωση μεθόδων και κατασκευαστών Κληρονομικότητα και σύνθεση υπέρβαση μεθόδων πολυμορφισμός Αφηρημένες κλάσεις και μέθοδοι. Διεπαφές. 3

4 Θεματολογία Χρήση κώδικα τρίτων (3 ο -4 ο μάθημα) Διαχείριση εξαιρέσεων Διαχείριση αρχείων (5 ο μάθημα) Συλλογές δεδομένων (6 ο μάθημα) Διάσχιση, Εισαγωγή, Διαγραφή, Αναζήτηση Σύνδεση με ΒΔ, καταχώρηση δεδομένων (7 ο μάθημα) Γραφικά και χειρισμός γεγονότων (8 ο -9 ο μάθημα) Πολυνηματισμός (10 ο μάθημα) Τεκμηρίωση εφαρμογών, Java EE (11 ο μάθημα) Επίλυση σφαλμάτων (12 ο μάθημα) Παρουσίαση εργασιών (13ο μάθημα) 4

5 Διαδικαστικά Ώρες μαθήματος: Δευτέρα 1-4 Αμφιθέατρο Εργαστήριο: Μετά από συνεννόηση στο εργ. 4ου Διδάσκων: Ηρακλής Βαρλάμης Γραφείο: Web: Σημειώσεις, ανακοινώσεις, ασκήσεις, κλπ. 5

6 Διδακτικές μέθοδοι Θεωρία: Θεωρία προγραμματισμού με αντικείμενα Επίδειξη τεχνικών προγραμματισμού Εργαστήριο: Έλεγχος προόδου υλοποίησης της εφαρμογής Επίλυση αποριών σε σχέση με την εργασία Εργασίες: Ανάπτυξη μιας ολοκληρωμένης εφαρμογής σε Java σε 5 στάδια 6

7 Βιβλιογραφία Java προγραμματισμός : 8 η έκδοση, H. M. Deitel, P. J. Deitel (μτφρ. Χρυσούλα Απ. Κουτρούμπα). Εκδ. Γκιούρδας Μ Αθήνα Πλήρες εγχειρίδιο της Java 6, Laura Lemay & Rogers Cadenhead. Εκδ. Γκιούρδας Αθήνα. Εισαγωγή στην Java, 3η έκδοση, Γ. Λιακέας. Εκδ.Κλειδάριθμος ΕΠΕ Αθήνα Στο e-class: διαφάνειες και ασκήσεις που δίνονται στα εργαστήρια 7

8 Βαθμολογία Βαθμολογία (ισχύει για Ιούνιο και Σεπτέμβριο): Τελική εξέταση:70% [βαθμός >=5] Εργασία: 30% [βαθμός >=5, υποχρεωτική] Bonus ως 15% σε πολύ καλές εργασίες Τελική εξέταση: με ανοιχτό βιβλίο και σημειώσεις μαθήματος Κατοχύρωση: Εργασίες δίνετε μόνο μέσα στο εξάμηνο και ο βαθμός τους κατοχυρώνεται για το Σεπτέμβριο Τίποτε δεν κατοχυρώνεται για επόμενη χρονιά! 8

9 Απαιτούμενα και καλές πρακτικές Μαθήματα "Εισαγωγή στον Προγραμματισμό" "Προγραμματισμός Ι" «Αντικειμενοστραφής Προγραμματισμός" Καλές πρακτικές Παρακολούθηση διαλέξεων και τήρηση σημειώσεων. Μελέτη διαφανειών και σημειώσεων μετά από κάθε διάλεξη. Εξάσκηση στον υπολογιστή κατά το διάβασμα. Ενεργή συμμετοχή στα εργαστήρια. Παρακολούθηση των περιοχών συζητήσεων. Σοβαρή ενασχόληση με τις εργασίες. Επανάληψη μέσω των διαφανειών πριν τις εξετάσεις. 9

10 Ας ξεκινήσουμε 10

11 Τι θα πρέπει να ξεχάσουμε Τη λογική του δομημένου προγραμματισμού Μια εφαρμογή Java χρησιμοποιεί τις 4 δομές: Ακολουθία Επιλογή Επανάληψη Αναδρομή αλλά δεν στηρίζεται σε αυτές Η εφαρμογή μας δεν πρέπει να είναι μια σειρά από μεθόδους που η μια καλεί την άλλη και όλες μαζί διαχειρίζονται δεδομένα. 11

12 Γιατί δεν αρκεί ο δομημένος προγραμματισμός Τα δεδομένα δεν παριστούν πάντοτε οντότητες του πραγματικού κόσμου Τα δεδομένα είναι πολύπλοκα και έχουν εξαρτήσεις Όταν αλλάξουν τα δεδομένα χρειάζονται σημαντικές αλλαγές σε όλο το πρόγραμμα Είναι προτιμότερο να σχεδιάσουμε την εφαρμογή γύρω από οντότητες που αντιλαμβανόμαστε: Αντικειμενοστρεφής προγραμματισμός 12

13 Τι θα πρέπει να θυμόμαστε Τα πάντα είναι αντικείμενα. Τα αντικείμενα περιέχουν: Κατάσταση: δεδομένα, χαρακτηριστικά, μεταβλητές Συμπεριφορά: λειτουργίες, μεθόδους Ταυτότητα: είναι μοναδικά Κάθε αντικείμενο έχει ένα τύπο (κλάση). Ο τύπος περιγράφει τα δεδομένα που μπορεί να αποθηκεύει (όχι όμως τις τιμές των μεταβλητών) και τις λειτουργίες που μπορεί να επιτελεί το αντικείμενο. Όλα τα αντικείμενα ίδιου τύπου μπορούν να λαμβάνουν τα ίδια μηνύματα. Κάθε αντικείμενο μπορεί να αποτελείται από άλλα αντικείμενα. Μια εφαρμογή σε Java είναι μια συλλογή αντικειμένων που επικοινωνούν μεταξύ τους με μηνύματα. 13

14 κλάσεις και αντικείμενα Αφηρημένοι τύποι δεδομένων (κλάσεις) κλάση: Ένα σύνολο αντικειμένων με κοινά χαρακτηριστικά (data elements) και λειτουργικότητα (functionality) Οι κλάση ορίζεται μία φορά και μπορούμε να δημιουργούμε όσα στιγμιότυπα θέλουμε. Οι αφηρημένοι τύποι λειτουργούν όπως οι συνήθεις τύποι δεδομένων Μεταβλητές κάποιου τύπου αντικείμενα (objects) ή στιγμιότυπα (instances) της κλάσης 14

15 Ορισμός κλάσης class Human { boolean alive; int age; String name; void born() { alive = true; void speak() { System.out.println( Hi! ); void incr_age() { age = age +1; Δεδομένα Λειτουργίες Μέθοδοι Στόχο έχουν να χειρίζονται τα δεδομένα, να τα τροποποιούν ή να επιστρέφουν τις τιμές αυτών, σε όποιον τις ζητήσει Κλήση μεθόδου = Αποστολή Μηνύματος 15

16 Γνωρίσματα - Δεδομένα Τα δεδομένα μπορεί να είναι απλού τύπου: int, boolean, double, float, long κλπ. Μπορεί να είναι σύνθετου τύπου. Δηλαδή αντικείμενα μιας άλλης κλάσης: String, Date, Human Δεν είναι απλός τύπος; Είναι κλάση; 16

17 Λειτουργίες - Μέθοδοι Οι μέθοδοι περιγράφουν τις λειτουργίες της κλάσης πάνω στα δεδομένα. Είναι ο τρόπος με τον οποίο επικοινωνούν τα αντικείμενα διαφόρων κλάσεων μεταξύ τους. Μία μέθοδος στη Java έχει: Όνομα Τύπο επιστροφής Λίστα ορισμάτων Το σώμα της μεθόδου πρέπει στο τέλος να επιστρέφει τιμή με χρήση της εντολής return Αν ο τύπος επιστροφής είναι void δεν χρειάζεται return. returntype methodname( /* λίστα ορισμάτων */ ) { /* σώμα μεθόδου */ return ; 17

18 Δημιουργία κλάσης Human Τα πάντα στην Java είναι αντικείμενα κάποιας κλάσης. Για το λόγο αυτό σε κάθε μας πρόγραμμα χρειάζεται να ορίσουμε τουλάχιστον μία κλάση. Η κλάση αυτή θα έχει το ίδιο όνομα με το αρχείο που θα την αποθηκεύσουμε. π.χ. Η κλάση Human θα πρέπει να αποθηκευθεί στο αρχείο Human.java Kλήση του Java compiler javac Human.java παράγει ένα αρχείο Human.class 18

19 1. Αρκεί μόνο η κλάση Human; Θεωρητικά αρκεί. Αλλά είναι προτιμότερο: Η εφαρμογή που θα διαχειρίζεται αντικείμενα της κλάσης Human θα είναι ένα java application σε μια δεύτερη κλάση με το όνομα Demo στο αρχείο Demo.java Για να μπορέσει η εφαρμογή Demo να εκτελεστεί πρέπει να έχει μια μέθοδο με το όνομα main. Η μέθοδος αυτή θα φτιάχνει αντικείμενα της κλάσης Human και θα καλεί τις μεθόδους τους. 19

20 Αντικείμενο = Χαρακτηριστικά + Μέθοδοι Για να χρησιμοποιήσουμε ένα αντικείμενο πρέπει πρώτα να το δημιουργήσουμε Για να στείλουμε μήνυμα σε ένα αντικείμενο, δίνουμε το όνομα του αντικειμένου μία τελεία και το όνομα της διαθέσιμης λειτουργίας Παρόμοια δίνουμε τιμή στα χαρακτηριστικά ενός αντικειμένου To σύνολο των διαθέσιμων λειτουργιών ενός αντικειμένου αποτελεί τη διεπαφή του με τα υπόλοιπα αντικείμενα Human john = new Human(); // Δημιουργείται ένας human john.speak(); john.age=0; Human age alive born() speak() incr_age() 20

21 Τα αντικείμενα και η μνήμη Όταν δημιουργούμε ένα αντικείμενο στη Java, δεσμεύουμε γι αυτό μνήμη και χρησιμοποιούμε πάντα μια αναφορά σ αυτό. Η εντολή: Human John; ορίζει την αναφορά John σε ένα Human αντικείμενο, αλλά δεν δεσμεύει μνήμη γι αυτό. Η εντολή: Human John = new Human(); δεσμεύει μνήμη για ένα αντικείμενο Human και ορίζει μια αναφορά John σ αυτό. 21

22 Κλήση μεθόδων Μια μέθοδος καλείται από κάποιο αντικείμενο (συνήθως) π.χ. Human John= new Human(); John.born(); John.speak(); John.setAge(10); Μπορούμε να αναφερθούμε απευθείας στα δεδομένα του αντικειμένου. John.age=15; int z=john.getage(); 22

23 Η μέθοδος main Η μέθοδος αυτή πρέπει να είναι διαθέσιμη σε όλες τις κλάσεις άρα να δηλωθεί public. Η μέθοδος πρέπει να μπορεί να κληθεί χωρίς να έχει δημιουργηθεί αντικείμενο της συγκεκριμένης κλάσης, άρα να δηλωθεί static. Τέλος πρέπει να παίρνει ορίσματα (παραμέτρους) από τη γραμμή εντολών και δεν είναι απαραίτητο να επιστρέφει κάποια τιμή. Έτσι προκύπτει η ανάγκη για μια μέθοδο στην κύρια κλάση της εφαρμογής μας που ορίζεται ως εξής: class Demo{ public static void main(string args[]){ /* σώμα της main*/ Human john=new Human(); john.born(); john.speak(); 23

24 Μεταγλώττιση και εκτέλεση Κλήση του Java compiler javac Demo.java Παράγει ένα αρχείο Demo.class Πρέπει τo Human.class να είναι στον ίδιο φάκελο Κλήση του Java Virtual Machine java Demo τυπώνει το μήνυμα στην οθόνη 24

25 2. Έλεγχος πρόσβασης - Ενθυλάκωση Είναι καλή πρακτική να μην επιτρέπουμε πρόσβαση σε όλα τα χαρακτηριστικά ή τις μεθόδους μιας κλάσης. Για να αποκρύψουμε από τους προγραμματιστές που θα χρησιμοποιήσουν την κλάση, τα μέρη της κλάσης που δεν χρειάζεται και δεν πρέπει να μεταβάλλουν Για να μπορούμε να αλλάζουμε την εσωτερική δομή μιας κλάσης χωρίς να επηρεάζεται ο τρόπος επικοινωνίας της με τις υπόλοιπες. Με τον τρόπο αυτό η διεπαφή της κλάσης απλουστεύεται και περιορίζεται μόνο στα απαραίτητα 25

26 Τα όρια μιας κλάσης Υπάρχουν τρεις τύποι πρόσβασης στα μέρη μιας κλάσης: public, private, και protected. Δημόσια (public), τα μέρη είναι διαθέσιμα σε όλους Ιδιωτική (private), τα μέρη είναι διαθέσιμα μόνο στην ίδια την κλάση και τις λειτουργίες της Προστατευμένη (protected), τα μέρη είναι διαθέσιμα στην κλάση και σε όσες κλάσεις την κληρονομούν. Δεδομένη (default) πρόσβαση, όταν δεν δηλώνεται κάποια από τις προηγούμενες, τα μέρη είναι διαθέσιμα στην κλάση και σε όλες τις υπόλοιπες κλάσεις της ίδιας εφαρμογής (του ίδιου package) 26

27 Παράδειγμα Αν δε δηλώσουμε κάτι διαφορετικό, η κλάση Demo έχει πρόσβαση και στις μεθόδους και στα χαρακτηριστικά των αντικειμένων τύπου Human. John.age=15; John.setAge(15); Άν όμως κάνουμε το age private class Human{ private int age; Τότε η Demo δεν μπορεί να αναφερθεί στο age μέσα από αντικείμενα τύπου Human. John.setAge(15); Αντίθετα εντός της Human, μπορούμε να αναφερθούμε στο age. π.χ. Στο σώμα των setage και getage Το ίδιο μπορεί να γίνει και για τις μεθόδους μιας κλάσης 27

28 Μέθοδοι Οι μέθοδοι μιας κλάσης μπορεί να είναι: Μέθοδοι πρόσβασης (get) που διαβάζουν τις τιμές των χαρακτηριστικών Μέθοδοι τροποποίησης (set) που τροποποιούν τις τιμές των χαρακτηριστικών Μέθοδοι κατασκευής (constructor) που αρχικοποιούν τις τιμές των χαρακτηριστικών κατά τη δημιουργία των αντικειμένων. Άλλες βοηθητικές μέθοδοι. 28

29 Νέος ορισμός κλάσης class Human { private boolean alive; private int age; void Human() { alive = true; age = 0 int getage() { return age; void setage(int a) { age=a; void speak() { System.out.println( Hi! ); void incr_age() { age = age +1; 29

30 Συμπερασματικά Σε ένα πρόβλημα: Προσπαθώ να δω: ποια αντικείμενα εμπλέκονται, τι δεδομένα έχει το καθένα από αυτά και ποιες λειτουργίες επιτελεί και στη συνέχεια ορίζω τις αντίστοιχες κλάσεις Σε μια κλάση Ορίζω χαρακτηριστικά: name, surname, age Ορίζω μεθόδους πρόσβασης: getname(), setname().. Ορίζω άλλες βοηθητικές μεθόδους Στο τέλος Ορίζω μια κλάση με μια μέθοδο main() Η κλάση αυτή εκτελεί το πρόγραμμά μου. Μόνο που δεν περιέχει όλη τη λύση. Κάποια πράγματα τα αναλαμβάνουν τα αντικείμενα 30

31 Βασικοί τύποι δεδομένων Για τους βασικούς τύπους (primitive types) η Java δημιουργεί μεταβλητές και όχι αναφορές στη μνήμη. Δήλωση μεταβλητής int //(τύπος) age; (Όνομα Μεταβλητής) Υπάρχουν αντίστοιχες τάξεις (wrapper types) για καθέναν από αυτούς, π.χ. char c = 'x'; Character C = new Character(c); Character C = new Character('x'); 31

32 Διαφορές Απλός τύπος τιμή double d= 10.50; ένας μόνο τρόπος αρχικοποίησης δεν έχει μεθόδους σύγκριση τιμών if (d==10.50) true Wrapper type αντικείμενο Double d1 = new Double(10.50); πολλοί τρόποι αρχικοποίησης Double d2=new Double( ); Double d3=new Double(10.50); έχει μεθόδους int x=d.intvalue(); // x = 10 int a = d1.compareto(d2); // a<0 σύγκριση αντικειμένων if (d1==d3) false if (d1.equals(d3) true 32

33 Δηλώσεις μεταβλητών παντού Οι δηλώσεις των μεταβλητών γίνονται παντού, όχι μόνο στην αρχή ενός block { for ( int i=0; i< 20; i++) { System.out.println( Hi! ); Char ch= A ; double pi = ; Παραμένουν σε ισχύ μέχρι την έξοδο από το block που τις περιβάλλει. Οι μεταβλητές πρέπει να αρχικοποιούνται πριν την χρήση τους (Ο compiler της Java επιβάλλει κάτι τέτοιο). 33

34 Εμβέλεια μεταβλητών/αντικειμένων Κάθε μεταβλητή έχει ισχύ εντός του μπλοκ στο οποίο ορίζεται και σε κάθε μπλοκ που υπάρχει μέσα σε αυτό. { { int x = 12; int x = 12; /* μόνο το x υπάρχει */ { { int x = 96; /* Δεν επιτρέπεται int q = 96; /* υπάρχουν τα x & q */ γιατί έχει ήδη οριστεί το x*/ q=150 /* δεν επιτρέπεται γιατί μόνο το x υπάρχει */ /* εκτός της εμβέλειας του q */ 34

35 Σε μια κλάση class Human { boolean alive; int age; String name; void speak(string phrase) { System.out.println( Hi! ); System.out.println( My name is +name); System.out.print( You asked me to say: ); System.out.println(phrase); int getageafter(int months){ int years=months/12; int ageafter=age+years; return ageafter; void setage(){ Scanner keyboard=new Scanner(System.in); System.out.println( How old are you? ); age=keyboard.nextint(); Input parameters System.in phrase months System.in attribute method name speak age getageafter age setage System.out void name, phrase return type return type System.out void 35

36 Προαγωγή τύπου Σε αριθμητικές εκφράσεις που περιλαμβάνουν διάφορους τύπους, όλοι οι τύποι προάγονται στον πιο ευρύ οπό όλους. short s; int i; double d; System.out.println(s+i+d); //result is double Η διαίρεση ακεραίων δίνει μόνο το ακέραιο μέρος; int years=42/12; years=3 double years= 42/12; years=3.0 double years=(double)42/12; years=3.5 Υπολογισμοί που αφορούν τους τύπους byte, short, char προάγονται σε υπολογισμούς με int: short s = 4; int t = 6; s = (short ) ( s + t ); //cast required 36

37 Στένεμα και διεύρυνση τύπων Η C ελεύθερα κάνει αναθέσεις μεταξύ αριθμητικών τύπων, αλλά η Java απαιτεί casting για την ανάθεση ενός τύπου σε έναν άλλο μικρότερο. Το στένεμα γίνεται από περισσότερο σε λιγότερο πλούσιο τύπο Πιθανή απώλεια πληροφορίας, γι αυτό χρειάζεται το casting π.χ. ανάθεση short σε byte, double σε float Το πέρασμα παραμέτρων είναι το ίδιο σαν την ανάθεση. Δεν μπορούμε να κάνουμε τίποτα cast σε boolean. Λάθος: boolean b = (boolean) num; Σωστό: boolean b = (num! = 0 ); 37

38 Θεμελιώδεις περικλείουσες κλάσεις Byte, Boolean, Short, Integer, Long, Float, Double Μπορούν να υπάρχουν επειδή η Java είναι case-sensitive H κάθε μια τους είναι wrapper κλάση για έναν απλό τύπο Δεν μπορεί να αλλάξει η τιμή τους (τίθεται μόνο στον constructor και δεν υπάρχουν μέθοδοι που να την αλλάζουν) Παράδειγμα Integer i = new Integer(15); Float f = new Float( ); int k = i.intvalue(); double d = f.floatvalue(); 38

39 String type Οι σταθερές String περικλείονται με διπλά εισαγωγικά String s = a string literal ; String s = new String( A string literal ); Οι τελεστές + και += υπερφορτώνονται για την ένωση δύο ή περισσοτέρων Strings. s = Welcome to ! ; Οτιδήποτε μπορεί να μετατραπεί σε αναπαράσταση string (όλοι οι primitive τύποι και τα αντικείμενα) Μεγάλη λειτουργικότητα εύρεση μήκους, ανάκτηση συγκεκριμένων χαρακτήρων αναζήτηση για χαρακτήρες και substrings ένωση strings, εύρεση/αντικατάσταση, σύγκριση μεταξύ strings 39

40 String type Τα Strings είναι αμετάβλητα Οι χαρακτήρες που τα αποτελούν θέτονται στον constructor και δεν αλλάζουν Αντιπροσωπευτικές μέθοδοι int length () char charat (int index) int indexof (char ch) int indexof (String s) boolean equals (String s) String tolowercase () String replace (char oldchar, char newchar) String concat (String s) String substring (int offset, int endindex) String[] split (String regex) 40

41 Τελεστές 41

42 Τελεστές πρόσθεση (+) αφαίρεση(-) πολλαπλασιασμός (*) διαίρεση(/) (για ακεραίους επιστρέφει το ακέραιο μέρος του αποτελέσματος) υπόλοιπο διαίρεσης (%) ανάθεση τιμής σε μεταβλητή(=) x+=4; x-=a; Τελεστές προσαύξησης και μείωσης: x=a++; x=++a; x=a--; x=--a; 42

43 Τελεστής ανάθεσης Δημιουργώντας ένα αντικείμενο, ουσιαστικά δεσμεύουμε μνήμη και δημιουργούμε μια αναφορά σε αυτή. Complex c1 = new Complex(); Complex c2 = new Complex(); c1.setreal(9); c1.setimag(47); c2=c1; Όταν αναθέσουμε ένα αντικείμενο (c1) σε ένα άλλο (c2), ουσιαστικά έχουμε δύο αναφορές στην ίδια θέση μνήμης (αυτή που δεσμεύτηκε για το c1) c2 = c1; To φαινόμενο αυτό ονομάζεται aliasing (συνωνυμία) public class Complex { private double x,y; public double real() { return x; public double imag() { return y; public void setreal(double u) {x=u; public void setimag(double v) {y=v; c2 c1 x=9.0, y=47.0 public double real() public double imag() public void setreal(double u) public void setimag(double v) 43

44 Σχεσιακοί τελεστές Επιστρέφουν true ή false Ισότητα (==) Ανισότητα (!=) Μικρότερο/Μεγαλύτερο (>,<,<=,>=) Για objects οι τελεστές συγκρίνουν αναφορές και όχι τα ίδια τα αντικείμενα. Για να συγκρίνουμε αντικείμενα χρησιμοποιούμε τη μέθοδο equals(). Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1 ==n2); //τυπώνει false System.out.println(n1!= n2); //τυπώνει true System.out.println(n1.equals(n2)); //τυπώνει true 44

45 Λογικοί τελεστές Επιστρέφουν true ή false AND (&&) OR ( ) NOT (!) Bitwise operators AND (&) π.χ. 3& & OR ( ) XOR (^) NOT (~) right-shift (>>), left-shift (<<), unsigned right shift (>>>) 45

46 Άλλοι τελεστές Τριαδικός (ternary) τελεστής boolean-exp? valueiftrue : valueiffalse π.χ. int x=55; String z= (x%2==1?"περιττός":"άρτιος"); Τελεστής ; (comma) Χρησιμοποιείται μόνο στη λίστα παραμέτρων του for Τελεστής πρόσθεσης String (+) int x = 0, y = 1, z = 2; String sstring = "x, y, z "; System.out.println(sString + x + y + z); Τελεστές μετατροπής (casting) int i = 200; long l = (long)i; long l2 = (long)200; 46

47 Προτεραιότητες 47

48 H equals στις κλάσεις χρήστη Ορίζοντας τη μέθοδο equals καθορίζουμε τον τρόπο με τον οποίο θα συγκρίνονται τα αντικείμενα της κλάσης μας public class Complex { private double x,y; public boolean equals(complex c) { if (x==c.x && y==c.y) return true; else return false; 48

49 Έλεγχος ροής προγράμματος 49

50 if - else if(συνθήκη εισόδου) εντολές else if(συνθήκη εισόδου) εντολές else εντολές public class IfElse { public int test(int testval, int target) { int result = 0; if(testval > target) result = +1; else if(testval < target) result = -1; else result = 0; // Match return result; 50

51 return To return καθορίζει την τιμή που θα επιστρέψει μια μέθοδος διακόπτει τη ροή εκτέλεσης της μεθόδου και επιστρέφει την τιμή public class IfElse2 { public int test(int testval, int target){ int result = 0; if(testval > target) return +1; else if(testval < target) return -1; else return 0; // Match 51

52 while & do-while while(συνθήκη εισόδου) εντολές do εντολές while(συνθήκη συνέχισης); To statement εκτελείται τουλάχιστον μία φορά public class WhileTest { public static void main(string[] args) { double r = Math.random(); while(r < 0.5) { System.out.println(r); r = Math.random(); do { System.out.println(r); r = Math.random(); while(r < 0.5); 52

53 for for(αρχικοποίηση; συνθήκη τερματισμού; βήμα) { εντολές public class ListCharacters { public static void main(string[] args) { for( char c = 0; c < 128; c++) if (c!= 26 ) // ANSI Clear screen System.out.println("value: " + (int)c +" character: " + c); public class CommaOperator { public static void main(string[] args) { for(int i = 1, j = i + 10; i < 5; i++, j = i * 2) { System.out.println("i= " + i + " j= " + j); 53

54 break / continue To break διακόπτει την εκτέλεση και βγαίνει από το βρόχο Το continue διακόπτει την εκτέλεση της συγκεκριμένης επανάληψης και συνεχίζει από την αρχή του βρόχου Προσοχή στους βρόχους που δεν τερματίζουν public class BreakAndContinue { public static void main(string[] args) { for(int i = 0; i < 100; i++) { if(i == 74) break; // Out of for loop if(i % 9!= 0) continue; // Next iteration System.out.println(i); 54

55 Επανάληψη και αναδρομή Συχνά το ίδιο αποτέλεσμα μπορεί να επιτευχθεί με επαναλαμβανόμενη κλήση μιας μεθόδου για συγκεκριμένο αριθμό επαναλήψεων με αναδρομική κλήση της ίδιας της μεθόδου μέσα στο σώμα της. 55

56 Παράδειγμα με παραγοντικό Ν!=Ν*(Ν-1)*(Ν-2)* *1 Επαναληπτικό long factorial (int n){ long result = 1; for ( int i =n; i>1; i--) result *=i; return result; Ν!=Ν*(Ν-1)! Αναδρομικό long factorial (int n){ if (n<=1) return 1; return n * factorial(n-1); 56

57 Γνωρίσματα κλάσης 57

58 static γνωρίσματα- μέθοδοι Αν ένα γνώρισμα είναι κοινό για όλα τα αντικείμενα μιας κλάσης τότε δεσμεύουμε μια φορά χώρο για όλα τα αντικείμενα. Κατά τη δήλωση της κλάσης, τη δηλώνουμε static. Το γνώρισμα αυτό θα δημιουργηθεί μία φορά μόλις δηλωθεί το πρώτο αντικείμενο αυτής της κλάσης και θα μπορεί να χρησιμοποιείται από κάθε αντικείμενο της ίδιας κλάσης. π.χ. static float bonus; Αν θέλουμε να αναφερθούμε στο γνώρισμα αυτό, μπορούμε απ ευθείας μέσω της κλάσης: π.χ. Human.bonus=100,00; Παρόμοια ισχύουν και για τις μεθόδους. π.χ. static setbonus(float b) Human.setBonus(200,00); Τα static μέλη μπορούμε να τα καλούμε είτε απ ευθείας μέσω της κλάσης είτε μέσω των αντικειμένων που δημιουργούμε. Οι static μέθοδοι έχουν πρόσβαση στα static μέλη της κλάσης. 58

59 Final γνωρίσματα Πρακτικά: final = μόνο για ανάγνωση Αν ένα γνώρισμα δηλωθεί final, τότε λειτουργεί ως σταθερά που πρέπει να αρχικοποιηθεί και δεν αλλάζει τιμή Αν η παράμετρος εισόδου μιας μεθόδου δηλωθεί final τότε δεν μπορεί να αλλάξει τιμή στο σώμα της μεθόδου. public void sethour(final int hrs) Αν ένα αντικείμενο δηλωθεί final τότε το όνομα του αντικειμένου θα αναφέρεται πάντα στο ίδιο αντικείμενο. Αν μια κλάση δηλωθεί final τότε δεν μπορεί να κληρονομηθεί από άλλη κλάση. 59

60 Γνωρίσματα static και final O πιο αποτελεσματικός τρόπος για να υλοποιηθούν σταθερά γνωρίσματα μίας κλάσης είναι ως static final: public class Time { private static final int NumHours = 24; public static final int NumMinutes = 60; Μπορούν να είναι private αν πρόκειται να χρησιμοποιηθούν μόνο εσωτερικά Έχουν μόνο μία θέση αποθήκευσης όσα και αν είναι τα στιγμιότυπα μιας κλάσης και αυτή είναι αμετάβλητη. double totalminutes=280; double hours=totalminutes/time.numminutes; double minutes=totalminutes-hours*time.numminutes; 60

61 Μέθοδοι 61

62 Δομή μεθόδου πρόσβαση τύποςεπιστροφής όνομαμεθόδου (τυπος1 παράμετρος1, ) { public double adddouble (double num1, double num2) { return num1+num2; 62

63 Βασικές μέθοδοι Μέθοδοι πρόσβασης getattribute, setattribute για ανάγνωση, ενημέρωση αντίστοιχα Μέθοδος tostring Επιστρέφει μια String περιγραφή του αντικειμένου Μέθοδος αρχικοποίησης: Κατασκευαστής - Constructor class Human { private boolean alive; private int age; private String name; public void setalive(boolean aalive) { alive=aalive; public boolean getalive() { return alive; public String tostring(){ return name+" +age +" +alive; public Human(boolean aalive, int aage, String aname){ alive=aalive; age=aage; name=aname; 63

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

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

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

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 και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

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

3. Εκφράσεις και έλεγχος ροής

3. Εκφράσεις και έλεγχος ροής 3. Εκφράσεις και έλεγχος ροής Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να διακρίνετε ανάμεσα σε μεταβλητές μέλη και αυτόματες μεταβλητές Να περιγράφετε την αρχικοποίηση των μεταβλητών μελών Να αναγνωρίζετε

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

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

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

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

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

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

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

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

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

Δομές ελέγχου ροής προγράμματος

Δομές ελέγχου ροής προγράμματος Δομές ελέγχου ροής προγράμματος Υπάρχουν δύο είδη δομών ελέγχου ροής (control flow): Οι δομές επιλογής και Οι δομές επανάληψης Δομές ελέγχου ροής προγράμματος Είδος δομής Δομές επιλογής Δομή ελέγχου ροής

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008 Τμήμα θεωρίας: Κάθε Τρίτη, 11πμ-2μμ, ΑΜΦ22. Διδάσκων: Ντίνος Φερεντίνος email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό εργαστήριο (5-6 2ωρα εργαστήρια το εξάμηνο,

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Βρόγχοι Το if-then Statement Στην Java το if-then statement έχει το εξής συντακτικό Η παρένθεση είναι απαραίτητη if (condition) if-code block

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

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

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

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

Προγραμματισμός Διαδικτύου 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Προγραμματισμός Διαδικτύου Ενότητα 3 : Κατηγορίες και κληρονομικότητα Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Τμήμα Μηχανικών Πληροφορικής

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07 Συνέχεια για το for: ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07 Nested for-loops (for μέσα σε for): π.χ. int k; for (int i=0; i

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

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

Αντικειμενοστραφής Προγραμματισμός Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 3: Έλεγχος ροής και επαναλήψεις. Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

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

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

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

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

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

Δεδομένα, τελεστές, είσοδος/έξοδος

Δεδομένα, τελεστές, είσοδος/έξοδος 2 Δεδομένα, τελεστές, είσοδος/έξοδος Τι θα δούμε σε αυτό το μάθημα 1. βασικοί τύποι δεδομένων 2. ακέραιοι 3. κινητής υποδιαστολής 4. ο τύπος decimal 5. χαρακτήρες 6. bool 7. string 8. χρήση μεταβλητών

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

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

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors). Κατασκευαστές Μέθοδοι Κατασκευής (Constructors). Οι κατασκευαστές (constructors) είναι μέθοδοι που εκτελούνται όταν κατασκευάζεται ένα αντικείμενο. Μια τάξη μπορεί να έχει αρκετούς κατασκευαστές, οι οποίοι

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπερφόρτωση Αντικείμενα σαν ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπερφόρτωση Αντικείμενα σαν ορίσματα ΥΠΕΡΦΟΡΤΩΣΗ H κλάση Car Μια κλάση που κρατάει την θέση ενός αυτοκινήτου. Μέθοδος move(): μετακινεί το αυτοκίνητο κατά μία

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #7 Τιμές βασικών τύπων και αναφορές Δεδομένα βασικών τύπων αποθηκεύονται κατ αξία ενώ τα αντικείμενα αποθηκεύονται κατ αναφορά: Διάλεξη #7: Συμβολοσειρές age = ; father = new (); name = ; Εισαγωγή στον Αντικειμενοστρεφή

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Κων. Κόκκινος Αντικειμενοστραφής Προγραμματισμός Η ιδέα του αντικειμενοστραφούς προγραμματισμού Αυτόνομες οντότητες Στιγμιότυπα οντοτήτων Παράδειγμα

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

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

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

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

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

Βασικάχαρακτηριστικάτηςγλώσσας. Πίνακες, Έλεγχος Ροής και Βρόχοι

Βασικάχαρακτηριστικάτηςγλώσσας. Πίνακες, Έλεγχος Ροής και Βρόχοι Βασικάχαρακτηριστικάτηςγλώσσας Πίνακες, Έλεγχος Ροής και Βρόχοι Πίνακες Τρόπος αποθήκευσης πολλών στοιχείων που έχουν τον ίδιο πρωταρχικό τύπο δεδοµένων ή κλάση. Τα στοιχεία µπορεί να έχουν οποιοδήποτε

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

Δομές ελέγχου & επανάληψης

Δομές ελέγχου & επανάληψης 3 Δομές ελέγχου & επανάληψης Τι θα δούμε σε αυτό το μάθημα 1. δομές ελέγχου 1. η δομή if 2. η δομή switch 2. δομές επανάληψης 1. η δομή while 2. η δομή do...while 3. η δομή for 3. break και continue 4.

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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