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

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

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

Transcript

1 Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 27/3/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια

2 Κλάσεις και Αντικείμενα Εισαγωγή

3 Στατικότητα Κλάσης Δυναμικότητα Στιγμιοτύπων Κλάσης

4 Java's "Building Blocks" Στην Java η μονάδα προγραμματισμού είναι η κλάση (στη C η μονάδα προγραμματισμού είναι η συνάρτηση) από την οποία προκύπτουν στιγμιότυπα (δημιουργούνται) αντικειμένων Ένα πρόγραμμα αποτελείται από μία ή περισσότερες κλάσεις Μία κλάση περιέχει μία ή περισσότερες μεθόδους Μία μέθοδος περιλαμβάνει program statements (εντολές) Οι εντολές (statements) είναι: Δηλώσεις μεταβλητών: πρωταρχικοί τύποι δεδομένων και κλάσεις Λειτουργίες (Operations): αριθμητικές, λογικές Δομές ελέγχου: επιλογή, βρόχοι επαναλήψεων, κλπ. Μηνύματα αντικειμένων: π.χ. κλήσεις σε μεθόδους Μία εφαρμογή Java πάντοτε εκτελεί τη main method

5 Programs: Classes, Methods and Statements

6 Μελέτη του ορισμού μιας κλάσης Ο πηγαίος κώδικας των περισσότερων κλάσεων μπορεί να χωριστεί σε δύο τμήματα: στο εξωτερικό περιτύλιγμα της κλάσης, το οποίο απλά παρέχει ένα όνομα στην κλάση, και στο εσωτερικό τμήμα που υλοποιεί στην ουσία την κλάση, αφού σε αυτό ορίζονται τα πεδία, οι κατασκευαστές και οι μέθοδοι της κλάσης που καθορίζουν τα χαρακτηριστικά και την συμπεριφορά των αντικειμένων της κλάσης. Συγκεκριμένα: τα πεδία χρησιμοποιούνται για την αποθήκευση δεδομένων για κάθε αντικείμενο οι κατασκευαστές καθορίζουν την αρχική κατάσταση ενός αντικειμένου όταν αυτό δημιουργείται οι μέθοδοι υλοποιούν τη συμπεριφορά των αντικειμένων, αφού καθορίζουν τις λειτουργίες που μπορούν να εκτελέσουν. Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 6

7 Βασική δομή κλάσης public class TicketMachine Το εσωτερικό τμήμα της κλάσης παραλείπεται public class ClassName Πεδία (Fields) Κατασκευαστές (Constructors) Μέθοδοι (Methods) Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling Εξωτερικό περιτύλιγμα κλάσης: κύριος σκοπός είναι να παρέχει ένα όνομα για την κλάση Τα περιεχόμενα μιας κλάσης: - Πεδία: αποθηκεύουν δεδομένα που θα χρησιμοποιηθούν από τα αντικείμενα - Κατασκευαστές: επιτρέπουν τη σωστή διαμόρφωση κάθε αντικειμένου όταν δημιουργείται για πρώτη φορά - Μέθοδοι: υλοποιούν τη συμπεριφορά των αντικειμένων

8 Source code Πηγαίος κώδικας Κάθε κλάση έχει το δικό της πηγαίο κώδικα (Java code) που συσχετίζεται με αυτήν και καθορίζει τις λεπτομέρειές της (fields-πεδία and methods-μεθόδους). Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

9 Μέθοδοι και παράμετροι Τα αντικείμενα έχουν λειτουργίες που μπορούν να κληθούν (η Java τις ονομάζει methods-μέθοδοι). Οι μέθοδοι μπορεί να έχουν παραμέτρους για να περάσουν επιπλέον πληροφορία που χρειάζεται στην εκτέλεση. Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

10 Άλλες παρατηρήσεις Πολλά instances-στιγμιότυπα μπορούν να δημιουργηθούν από μία κλάση. Ένα αντικείμενο έχει attributes-ιδιότητες: τιμές που αποθηκεύονται σε fields-πεδία. Η κλάση ορίζει τι πεδία έχει ένα αντικείμενο, αλλά κάθε αντικείμενο αποθηκεύει το δικό του σύνολο τιμών (state-κατάσταση του αντικειμένου). Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

11 Δημιουργία αντικειμένων Έστω ότι έχουμε την κλάση Circle Θέλουμε να δημιουργήσουμε ένα στιγμιότυπο της κλάσης αντικείμενο με όνομα circle 1 Circle circle1; circle1 = new Circle(); Circle circle1 = new Circle(); Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 11

12 Κλάσεις, Αντικείμενα, Μέθοδοι και Στιγμιότυπα Μια κλάση παρέχει μία ή περισσότερες μεθόδους (methods) Η μέθοδος παριστάνει την εκτέλεση μιας εργασίας (task) σε ένα πρόγραμμα Περιγράφει τους μηχανισμούς με τους οποίους εκπληρώνει το έργο της Αποκρύπτει από το χρήστη τις πολύπλοκες εργασίες που εκτελεί Η κλήση μια μεθόδου της υποδεικνύει να εκτελέσει το έργο της 2005 Pearson Education, Inc. All rights reserved.

13 Προσδιορισμός Ιδιοτήτων και Μεθόδων Κλάσεων Όταν καλούμαστε να προσδιορίσουμε ιδιότητες σε κλάσεις, θα πρέπει να θυμόμαστε ότι: ιδιότητες είναι ότι περιγράφει την κατάσταση (state) κάθε αντικειμένου της κλάσης και θα πρέπει να μπορούν να παρασταθούν στο λογισμικό με μεταβλητές (variables) διαφόρων τύπων (ακέραιες, πραγματικές, λογικές (boolean) κλπ). ΔΕΝ συμπεριλαμβάνουμε στις ιδιότητες περιττές πληροφορίες, ούτε ιδιότητες που αποτελούν συνάρτηση άλλων. Για τον προσδιορισμό μεθόδων σε κλάσεις, θα πρέπει να θυμόμαστε ότι: οι μέθοδοι είναι ενέργειες που μπορεί να εκτελέσουν τα αντικείμενα της κλάσης ή μπορούν να εκτελεστούν επί αυτών και στο Λογισμικό παριστάνονται με τμήματα κώδικα που υλοποιούν τις λειτουργίες που απαιτούνται για να γίνουν αυτές οι ενέργειες.

14 Πεδία public class TicketMachine private int price; private int balance; private int total; // η τιμή των εισιτηρίων που εκδίδει η μηχανή /* το σύνολο των χρημάτων που έχει εισάγει ο χρήστης μέχρι στιγμής */ /* το σύνολο των χρημάτων που έχουν συγκεντρωθεί στη μηχανή */ η δεσμευμένη λέξη private δηλώνει ότι κάθε ένα από τα παραπάνω πεδία θα είναι προσπελάσιμο μόνο από την κλάση (τον κατασκευαστή και τις μεθόδους) στην οποία δηλώνεται και τα τρία πεδία είναι τύπου int που σημαίνει ότι μπορούν να πάρουν ακέραιες τιμές για την κατανόηση του ρόλου του κάθε πεδίου χρησιμοποιούνται σχόλια (comments). Τα σχόλια που καταλαμβάνουν μία μόνο γραμμή ξεκινάνε με τους χαρακτήρες //, ενώ τα σχόλια που καταλαμβάνουν περισσότερες γραμμές ξεκινάνε με τους χαρακτήρες /* και τελειώνουν με τους */. Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 14

15 Πεδία Τα πεδία αποθηκεύουν δεδομένα για ένα αντικείμενο Τα πεδία λέγονται και μεταβλητές στιγμιοτύπου, αφού μπορεί να αλλάζουν συνεχώς τιμή μέσω της εκτέλεσης των μεθόδων. Τα πεδία ορίζουν την κατάσταση ενός αντικειμένου public class TicketMachine private int price; private int balance; private int total; Τα υπόλοιπα παραλείπονται Visibility modifier Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling Type Variable name

16 Μέθοδοι Από τη στιγμή που θα ορίσουμε μια κλάση μπορούμε να δημιουργήσουμε όσα αντικείμενα στιγμιότυπα χρειαζόμαστε για την επίλυση ενός προβλήματος Τα αντικείμενα που θα δημιουργήσουμε προκειμένου να λύσουμε ένα πρόβλημα μπορούμε να τα χειριστούμε εκτελώντας συγκεκριμένες λειτουργίες που περιγράφονται στην κλάση που ανήκουν τα αντικείμενα Οι λειτουργίες αυτές ονομάζονται μέθοδοι (methods) και λέμε ότι μια μέθοδος καλείται ή ενεργοποιείται Όπως είναι φυσικό ένα αντικείμενο ανταποκρίνεται στην ενεργοποίηση μιας μεθόδου εκτελώντας τη λειτουργία που περιγράφει η μέθοδος. Μια μέθοδος μπορεί να χρησιμοποιηθεί προκειμένου να αλλάξουμε την κατάσταση ενός αντικειμένου ή να προσπελάσουμε κάποιες από τις πληροφορίες που περικλείει το αντικείμενο Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 16

17 Μέθοδοι Μια κλάση παρέχει μία ή περισσότερες μεθόδους (methods) Η μέθοδος Περιγράφει τους μηχανισμούς με τους οποίους εκπληρώνει το έργο της Αποκρύπτει από το χρήστη τις πολύπλοκες εργασίες που εκτελεί Η κλήση μιας μεθόδου της υποδεικνύει να εκτελέσει το έργο της 2005 Pearson Education, Inc. All rights reserved.

18 Μεταβίβαση δεδομένων μέσω παραμέτρων Διαχωρίζουμε τα ονόματα των παραμέτρων μέσα σε ένα κατασκευαστή ή μία μέθοδο από τις τιμές των παραμέτρων έξω από αυτές, αναφερόμενοι στα ονόματα ως τυπικές παράμετροι και στις τιμές ως πραγματικές παράμετροι Η ticketcost είναι μία τυπική παράμετρος, ενώ η τιμή που δίνει ο χρήστης, π.χ 50, είναι πραγματική παράμετρος Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

19 Κλήση μεθόδων Για να καλέσουμε μία μέθοδο: Γράφουμε το όνομα του αντικειμένου, στη συνέχεια τελεία, και στη συνέχεια το όνομα της μεθόδου Circle1.makeVisible(); Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 19

20 Μέθοδοι με παραμέτρους Κάποιες μέθοδοι απαιτούν την παροχή επιπλέον πληροφοριών για την εκτέλεση της λειτουργίας που αντιπροσωπεύουν Για την παροχή των επιπλέον πληροφοριών χρησιμοποιούμε παραμέτρους (parameters). Κάθε παράμετρος μιας μεθόδου έχει ένα συγκεκριμένο τύπο δεδομένων (data type) που καθορίζει τι είδους τιμές μπορεί να πάρει η παράμετρος και ένα όνομα (name) που φανερώνει τι αντιπροσωπεύει η πληροφορία/τιμή που έχει η συγκεκριμένη παράμετρος Οι παράμετροι μιας μεθόδου δηλώνονται στην επικεφαλίδα της, η οποία περιλαμβάνει όλες τις απαραίτητες πληροφορίες για την ενεργοποίησή της και ονομάζεται υπογραφή (signature) της μεθόδου Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 20

21 Τύποι δεδομένων Ο τύπος μιας παραμέτρου καθορίζει τα είδη των δεδομένων που μπορούν να μεταβιβαστούν σε μία παράμετρο int: ακέραιος αριθμός String: αναμένεται τμήμα κειμένου. Τα αλφαριθμητικά περικλείονται πάντα μέσα σε διπλά εισαγωγικά boolean: Truth value (true or false) double: Real number (3.14, 1.0, -2.1)

22 Μέθοδοι - Κατασκευαστές Ένα ιδιαίτερο είδος μεθόδου είναι η μέθοδος που χρησιμοποιούμε για τη δημιουργία ή αλλιώς την αρχικοποίηση (initialization) των αντικειμένων μιας κλάσης Η μέθοδος αυτή καθορίζει την αρχική κατάσταση του νέου αντικειμένου δίνοντας τις κατάλληλες αρχικές τιμές στα πεδία του. Μια τέτοια μέθοδος ονομάζεται κατασκευαστής (constructor) και είναι η μοναδική μέθοδος της κλάσης που έχει το ίδιο όνομα με αυτή. Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 22

23 Κατασκευαστές Οι κατασκευαστές (constructors) μιας κλάσης αρχικοποιούν ένα αντικείμενο όταν δημιουργείται, έτσι ώστε να είναι σε κατάσταση να χρησιμοποιηθεί. Η αρχικοποίηση (initialization) στην ουσία αναφέρεται στην εκχώρηση των κατάλληλων τιμών στα πεδία ενός αντικειμένου και μπορεί να γίνει είτε με την ανάθεση σταθερών τιμών είτε με το πέρασμα τιμών που δίνονται από τον χρήστη κατά την εκτέλεση του προγράμματος. O κατασκευαστής (constructor) είναι η μοναδική μέθοδος της κλάσης που έχει το ίδιο όνομα με αυτή. Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 23

24 Κατασκευαστές Όνομα κατασκευαστή == όνομα κλάσης Δεν έχει τύπο επιστροφής ΠΟΤΕ ΔΕΝ επιστρέφει τίποτα Συνήθως αρχικοποιεί πεδία Όλες οι κλάσεις χρειάζονται τουλάχιστον ένα κατασκευαστή Αν δεν ορίσουμε κάποιον, τότε default CLASSNAME ()

25 Κατασκευαστές public TicketMachine(int ticketcost) price = ticketcost; balance = 0; total = 0; στα πεδία balance και total εκχωρείται η σταθερή τιμή 0, στο πεδίο price δεν μπορεί να εκχωρηθεί μια σταθερή τιμή, αφού η τιμή του εισιτηρίου δίνεται από τον χρήστη όταν δημιουργείται η μηχανή έκδοσης των εισιτηρίων και δεν είναι εκ των προτέρων γνωστή. Γι αυτό το λόγο λοιπόν χρησιμοποιείται η παράμετρος ticketcost που περνάει την τιμή του εισιτηρίου που δίνει ο χρήστης στον κατασκευαστή Παρατηρείστε ότι ο κατασκευαστής έχει το ίδιο όνομα με την κλάση! Οι κατασκευαστές αποτελούν τη μοναδική περίπτωση μεθόδων που έχουν το ίδιο όνομα με την κλάση στην οποία ορίζονται. Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 25

26 Κατασκευαστές Σε μια κλάση είναι δυνατόν να υπάρχουν περισσότεροι του ενός κατασκευαστές. Για παράδειγμα, στην κλάση TicketMachine εκτός από τον κατασκευαστή που περιγράψαμε παραπάνω, στον οποίο η τιμή του εισιτηρίου δίνεται από τον χρήστη, μπορούμε να ορίσουμε και ένα δεύτερο κατασκευαστή που θα δημιουργεί μηχανές έκδοσης εισιτηρίων με προκαθορισμένη τιμή εισιτηρίου (που θα εκχωρείται στο σώμα του κατασκευαστή στο πεδίο price). Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 26

27 Κατασκευαστές Οι κατασκευαστές μιας κλάσης αρχικοποιούν ένα αντικείμενο Έχουν το ίδιο όνομα με την κλάση στην οποία ορίζονται Αποθηκεύουν αρχικές τιμές στα πεδία Συχνά δέχονται τιμές παραμέτρου εξωτερικά για την αποθήκευση τιμών στα πεδία -> price public class TicketMachine Τα πεδία παραλείπονται public TicketMachine(int ticketcost) price = ticketcost; balance = 0; total = 0; Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

28 Η κατάσταση ενός αντικειμένου Πεδία Το σύνολο των τιμών όλων των χαρακτηριστικών ενός αντικειμένου (όπως για παράδειγμα για τον κύκλο η διάμετρος, οι συντεταγμένες του κ.τ.λ.) καθορίζουν την κατάσταση (state) του αντικειμένου Για την αναπαράσταση της κατάστασης ενός αντικειμένου αποθηκεύονται οι τιμές των χαρακτηριστικών του σε μεταβλητές, οι οποίες ονομάζονται πεδία (fields) Η αλλαγή της κατάστασης ενός αντικειμένου (ή αλλιώς η αλλαγή των τιμών ενός ή περισσότερων πεδίων) ή η προσπέλαση κάποιων από τις πληροφορίες που περικλείει το αντικείμενο πραγματοποιείται ενεργοποιώντας τις κατάλληλες μεθόδους Παρατήρηση Όλα τα αντικείμενα/στιγμιότυπα μιας συγκεκριμένης κλάσης έχουν τον ίδιο αριθμό, τύπο και ονόματα πεδίων και φυσικά και τις ίδιες μεθόδους. Ωστόσο, οι τιμές των πεδίων και συνεπώς η κατάσταση των στιγμιοτύπων μιας κλάσης μπορεί να διαφέρει Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 28

29 Αντικείμενο Τα αντικείμενα της ίδιας κλάσης έχουν όλα τα ίδια πεδία Ο αριθμός, ο τύπος και τα ονόματα των πεδίων είναι ίδια, ενώ η πραγματική τιμή ενός συγκεκρικένου πεδίου σε κάθε αντικείμενο μπορεί να είναι διαφορετική Τα αντικείμενα διαφορετικής κλάσης μπορεί να έχουν διαφορετικά πεδία Ο αριθμός, ο τύπος και τα ονόματα των πεδίων ορίζονται στην κλάση και όχι σε ένα αντικείμενο! Κλάση Circle: ορίζει ότι κάθε αντικείμενο-κύκλος θα έχει πέντε πεδία με ονόματα diameter (τύπου int), xposition (τύπου int), yposition (τύπου int), color (τύπου string) και isvisible (τύπου boolean)

30 Αλληλεπίδραση αντικειμένων Σε ένα πρόγραμμα σε Java υπάρχουν πολλά αντικείμενα Είναι δυνατόν τα αντικείμενα αυτά να μην δημιουργούνται πάντα από το χρήστη με ξεχωριστές εντολές, δηλαδή, δημιουργείται το 1ο αντικείμενο (ή ένας αριθμός αντικειμένων) και όλα τα υπόλοιπα αντικείμενα δημιουργούνται άμεσα ή έμμεσα από το αντικείμενο αυτό Ένα αντικείμενο λοιπόν μπορεί να δημιουργεί άλλα αντικείμενα, με τα οποία επικοινωνεί καλώντας τις μεθόδους τους Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 30

31 Πηγαίος κώδικας Σε κάθε κλάση αντιστοιχεί και ο αντίστοιχος πηγαίος κώδικας. Ο πηγαίος κώδικας μιας κλάσης καθορίζει τη δομή και τη συμπεριφορά, δηλαδή τα πεδία και τις μεθόδους, των αντικειμένων της κλάσης. Η γενική μορφή μιας κλάσης είναι η εξής: public class <όνομα_κλάσης> πεδία (fields) κατασκευαστές (constructors) μέθοδοι (methods) Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 31

32 Εμφάνιση του πηγαίου κώδικα μιας κλάσης public class Circle private int diameter; private int xposition; private int yposition; private String color; private boolean isvisible; Τα πεδία της κλάσης Circle /** * Δημιουργία ενός νέου κύκλου στην προκαθορισμένη θέση και * με το προκαθορισμένο χρώμα. */ public Circle() diameter = 30; xposition = 20; yposition = 60; color = "blue"; isvisible = false; Κατασκευαστής για την αρχικοποίηση του νέου κύκλου Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 32

33 Εμφάνιση του πηγαίου κώδικα μιας κλάσης /** * Εμφάνιση του κύκλου, αν δεν είναι ήδη ορατός. */ public void makevisible() isvisible = true; draw(); Από την υπογραφή της μεθόδου makevisible() προκύπτει ότι η μέθοδος: 1) δεν έχει καμία παράμετρο 2) δεν επιστρέφει καμία τιμή... /** * Αλλαγή χρώματος. Τα αποδεκτά χρώματα είναι "red", "yellow", "blue", * "green", "magenta" και "black". */ public void changecolor(string newcolor) color = newcolor; draw(); Μέθοδος για την αλλαγή του χρώματος του κύκλου. Παράμετρος με όνομα newcolor, τύπου String για το «πέρασμα» του νέου χρώματος στη μέθοδο Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 33

34 Μέθοδοι που επιστρέφουν τιμές Μέθοδοι με παραμέτρους αντικείμενα Στα προηγούμενα παραδείγματα παρουσιάσαμε μεθόδους χωρίς παραμέτρους ή με παραμέτρους τύπου int και String, οι οποίες δεν επέστρεφαν καμία τιμή. Ωστόσο, υπάρχουν και μέθοδοι που έχουν ως παραμέτρους ένα ή περισσότερα αντικείμενα, καθώς επίσης και μέθοδοι που η εκτέλεσή τους έχει ως αποτέλεσμα την επιστροφή κάποιας τιμής ο τύπος της οποίας δηλώνεται στην επικεφαλίδα/υπογραφή της Όλες αυτές οι πληροφορίες παρέχονται από την υπογραφή της μεθόδου, όπως θα δούμε στη συνέχεια Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 34

35 Μέθοδοι που επιστρέφουν τιμές Μέθοδοι με παραμέτρους αντικείμενα public class Student private String name; private String id; private int credits; // το πλήρες όνομα του σπουδαστή // ο κωδικός του σπουδαστή // η βαθμολογία του σπουδαστή /** * Δημιουργία σπουδαστή με όνομα και κωδικό που δίνει ο χρήστης. */ public Student(String fullname, String studentid) /** name = fullname; id = studentid; credits = 0; * Επιστροφή του ονόματος του σπουδαστή. */ public String getname() Η μέθοδος επιστρέφει μια τιμή τύπου String, δηλαδή ένα αλφαριθμητικό. Αν μια μέθοδος δεν επιστρέφει καμία τιμή return name; χρησιμοποιείται το void. Η τιμή που επιστρέφεται από τη μέθοδο καθορίζεται με την εντολή return. Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 35

36 Μέθοδοι που επιστρέφουν τιμές Μέθοδοι με παραμέτρους αντικείμενα public class LabClass private String instructor; private String room; private String timeandday; private List students; private int capacity; /** * Προσθήκη φοιτητή στο εργαστήριο */ public void enrolstudent(student newstudent) if(students.size() == capacity) else System.out.println("The class is full, you cannot enrol."); students.add(newstudent); Η παράμετρος της μεθόδου είναι ένα αντικείμενο - σπουδαστής. Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 36

37 Άρα... Τα αντικείμενα έχουν μεθόδους που χρησιμοποιούμε για να επικοινωνήσουμε με αυτά Μπορούμε να χρησιμοποιήσουμε μία μέθοδο για να κάνουμε μία αλλαγή σε ένα αντικείμενο ή να πάρουμε πληροφορίες από αυτό Οι μέθοδοι μπορούν να έχουν παραμέτρους, και οι παράμετροι έχουν τύπους Οι μέθοδοι έχουν τύπους επιστροφής που καθορίζουν τον τύπο των δεδομένων που επιστρέφονται Αν ο τύπος είναι void τότε δεν επιστρέφουν τίποτα Τα αντικείμενα αποθηκεύουν τα δεδομένα σε πεδία (που έχουν τύπους) -> Κατάσταση αντικειμένου

38 ... Τα αντικείμενα δημιουργούνται από ορισμούς κλάσεων που έχουν γραφτεί σε συγκεκριμένη γλώσσα προγραμματισμού, π.χ Java Για να μάθουμε να αναπτύσσουμε προγράμματα σε Java, πρέπει να μάθουμε πώς να γράφουμε ορισμούς κλάσεων, συμπεριλαμβανομένων πεδίων και μεθόδων, και πώς να συνδυάζουμε αυτές τις κλάσεις σωστά

39 Εμβέλεια μεταβλητής Η εμβέλεια μιας μεταβλητής καθορίζει το τμήμα του πηγαίου κώδικα από όπου μπορεί να προσπελαστεί η μεταβλητή Μία τυπική παράμετρος είναι διαθέσιμη σε ένα αντικείμενο μόνο μέσα στο σώμα του κατασκευαστή ή της μεθόδου που τη δηλώνει Λέμε ότι η εμβέλεια μιας παραμέτρου περιορίζεται στο σώμα του κατασκευαστή ή της μεθόδου όπου δηλώνεται Αντίθετα, η εμβέλεια ενός πεδίου επεκτείνεται σε όλο τον ορισμό της κλάσης μπορεί να προσπελαστεί από οποιοδήποτε αντικείμενο μέσα στην ίδια κλάση Γενικότερα, η εμβέλεια (scope) μιας μεταβλητής καθορίζει το τμήμα του πηγαίου κώδικα από το οποίο η μεταβλητή είναι προσπελάσιμη.

40 Πώς γράφουμε τη refundbalance? public int refundbalance() int amounttorefund; amounttorefund = balance; balance = 0; return amounttorefund; Τι είδους μεταβλητή είναι η amounttorefund? Πεδίο? ΟΧΙ τα πεδία ορίζονται έξω από τις μεθόδους Παράμετρος? ΟΧΙ οι παράμετροι ορίζονται στην επικεφαλίδα της μεθόδου

41 Πώς γράφουμε τη refundbalance? Η amounttorefund είναι τοπική μεταβλητή Μεταβλητές που δηλώνονται και χρησιμοποιούνται μέσα σε μία μέθοδο Δημιουργούνται όταν καλείται η μέθοδος και καταστρέφονται όταν η μέθοδος ολοκληρώνεται Η εμβέλεια και η διάρκεια ζωής τους περιορίζονται σε εκείνες της μεθόδου Συνηθισμένο η αρχικοποίηση να γίνεται κατά τη δήλωση int amounttorefund = balance; Οι δηλώσεις τοπικών μεταβλητών ποτέ δεν περιέχουν τη λέξη private ή public ΠΡΟΣΟΧΗ: Μία τοπική μεταβλητή που έχει το ίδιο όνομα με ένα πεδίο δεν επιτρέπει την προσπέλαση του πεδίου μέσα στη μέθοδο

42 Γιατί τοπική μεταβλητή? Tι θα γινόταν με τα παρακάτω? public int refundbalance() balance = 0; return balance; public int refundbalance() return balance; balance = 0; Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

43 Πεδία, παράμετροι και τοπικές μεταβλητές Και τα τρία είδη μεταβλητών αποθηκεύουν τιμές που ταιριάζουν στον τύπο ορισμού τους Τα πεδία ορίζονται έξω από τους κατασκευαστές και τις μεθόδους αποθηκεύουν δεδομένα που υφίστανται σε όλη τη διάρκεια ζωής αντικειμένου, διατηρούν την τρέχουσα κατάσταση του αντικειμένου και έχουν διάρκεια ζωής ίδια με του αντικειμένου τους έχουν εμβέλεια σε όλη την κλάση Οι τυπικές παράμετροι και οι τοπικές μεταβλητές υφίστανται μόνο για την περίοδο που εκτελείται ένας κατασκευαστής ή μία μέθοδος ενεργούν ως προσωρινές θέσεις αποθήκευσης

44 Πεδία, παράμετροι και τοπικές μεταβλητές Οι τυπικές παράμετροι ορίζονται στην επικεφαλίδα ενός κατασκευαστή ή μιας μεθόδου λαμβάνουν τις τιμές απέξω, παίρνοντας αρχικές τιμές από τις τιμές των πραγματικών παραμέτρων που αποτελούν τμήμα της κλήσης η εμβέλειά τους περιορίζεται στον κατασκευαστή ή τη μέθοδο που τους ορίζει Οι τοπικές μεταβλητές ορίζονται μέσα στο σώμα ενός κατασκευαστή ή μιας μεθόδου αρχικοποιούνται και χρησιμοποιούνται μόνο μέσα στο σώμα του κατασκευαστή ή της μεθόδου που ορίζονται πρέπει να αρχικοποιούνται πριν χρησιμοποιηθούν σε μία παράσταση δεν τους δίνεται προκαθορισμένη τιμή η εμβέλειά τους περιορίζεται στο μπλοκ ορισμού τους

45 Ανάθεση Η μικρής διάρκειας ζωής τιμή μιας παραμέτρου αποθηκεύεται σε ένα πεδίο με την εντολή ανάθεσης: variable = expression (παράσταση); price = ticketcost; Ο τύπος της παράστασης πρέπει να συμφωνεί με τον τύπο της μεταβλητής στην οποία ανατίθεται Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

46 Μέθοδοι Οι μέθοδοι υλοποιούν τις λειτουργίες που μπορούν να εκτελέσουν τα αντικείμενα μιας κλάσης, ή αλλιώς περιγράφουν τον τρόπο με τον οποίο ένα αντικείμενο εκτελεί μια λειτουργία. Οι μέθοδοι μπορούν να χωριστούν σε δύο κατηγορίες: Μεθόδους πρόσβασης (accessors): πρόκειται για μεθόδους που προσπελάζουν τα πεδία ενός αντικειμένου και επιστρέφουν ή εμφανίζουν πληροφορίες για την κατάστασή του Μεθόδους μετάλλαξης (mutators): πρόκειται για μεθόδους που αλλάζουν την κατάσταση ενός αντικειμένου, αλλάζουν δηλαδή τις τιμές ενός ή περισσότερων πεδίων. Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 46

47 Μέθοδοι public <τύπος-επιστρ/νης-τιμής ή void> <όνομα-μεθόδου> ( λίστα-παραμέτρων ) δηλώσεις Σε όποια κατηγορία και να ανήκει μία μέθοδος αποτελείται από δύο τμήματα: την επικεφαλίδα (header) ή αλλιώς την υπογραφή (signature) της μεθόδου στην οποία παρέχονται οι εξής πληροφορίες: εντολές το όνομα της μεθόδου, αν επιστρέφει ή όχι κάποια τιμή και ποιες είναι οι παράμετροί της (εφόσον υπάρχουν). public int getprice() είναι μέθοδος και όχι πεδίο γιατί ακολουθείται από ζεύγος παρενθέσεων. Στο τέλος της υπογραφής δεν υπάρχει ; H getprice Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 47

48 Μέθοδοι Αν η μέθοδος δεν επιστρέφει καμία τιμή αυτό δηλώνεται με τη λέξη void ενώ αν επιστρέφει δηλώνεται ο τύπος της (π.χ. int, boolean) πριν το όνομα της μεθόδου. Το όνομα και ο τύπος των παραμέτρων δηλώνεται μετά το όνομα της μεθόδου μέσα σε παρενθέσεις. Οι παρενθέσεις ( ) είναι απαραίτητες ακόμα και αν η μέθοδος δεν έχει καμία παράμετρο. το σώμα (body) της μεθόδου που περιλαμβάνει δηλώσεις και εντολές και καθορίζει τι συμβαίνει σε ένα αντικείμενο όταν καλείται η μέθοδος. Το σώμα της μεθόδου περικλείεται σε αγκύλες, και όπως και κάθε σύνολο δηλώσεων και εντολών που περικλείεται σε αγκύλες ονομάζεται αλλιώς και μπλοκ (block). Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 48

49 Μέθοδοι πρόσβασης (Accessors) Οι μέθοδοι αυτής της κατηγορίας επιστρέφουν κάποια τιμή αφού ολοκληρωθεί η εκτέλεσή τους - στο σημείο από όπου έγινε η κλήση τους. Αυτό επιτυγχάνεται συνήθως με την εντολή return. Βέβαια, αυτό δεν είναι κανόνας, αφού και μια μέθοδος που απλά τυπώνει πληροφορίες για την κατάσταση ενός αντικειμένου χαρακτηρίζεται ως μέθοδος πρόσβασης. Ξυνόγαλος Στέλιος, Αντικειμενοστραφής Σχεδίαση & Προγραμματισμός, Τμήμα Διοίκησης Τεχνολογίας 49

50 Μέθοδοι πρόσβασης Visibility modifier Method name Return type public int getprice() return price; Parameter list (empty) Return statement: επιστρέφει τιμή που συμφωνεί με τον επιστρεφόμενο τύπο στην υπογραφή της μεθόδου Start and end of method body (block) Όταν μία μέθοδος περιλαμβάνει εντολή επιστροφής τιμής, αυτή είναι πάντα η τελευταία εντολή αυτής της μεθόδου Ακόμα δηλαδή και στην περίπτωση που μετά από μια εντολή return υπάρχουν και άλλες εντολές, αυτές δεν πρόκειται ποτέ να εκτελεστούν. Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

51 Μέθοδοι πρόσβασης Υπάρχουν τουλάχιστον δύο σημαντικές διαφορές ανάμεσα στις υπογραφές του κατασκευαστή TicketMachine και της μεθόδου getprice: public TicketMachine(int ticketcost) public int getprice() Η μέθοδος έχει έναν επιστρεφόμενο τύπο (return type), ενώ ο κατασκευαστής δεν έχει επιστρεφόμενο τύπο. Ο επιστρεφόμενος τύπος γράφεται ακριβώς πριν το όνομα της μεθόδου Ο κατασκευαστής έχει μία τυπική παράμετρο, ticketcost, ενώ η μέθοδος καμία μόνο ένα ζεύγος κενών παρενθέσεων Ένας κατασκευαστής δεν μπορεί να έχει επιστρεφόμενο τύπο. Αντίθετα, τόσο οι κατασκευαστές όσο και οι μέθοδοι μπορούν να έχουν οποιοδήποτε αριθμό τυπικών παραμέτρων ή και καμία

52 Μέθοδοι μετάλλαξης Οι μέθοδοι μετάλλαξης αλλάζουν την κατάσταση ενός αντικειμένου! Έχουν παρόμοια δομή με επικεφαλίδα και σώμα Η αλλαγή της κατάστασης πετυχαίνεται με την αλλαγή της τιμής ενός ή περισσοτέρων πεδίων Τυπικά περιέχει εντολές ανάθεσης Τυπικά λαμβάνει παραμέτρους Μια άμεση συνέπεια αυτού του γεγονότος έγκειται στο γεγονός ότι ένα αντικείμενο μπορεί να παρουσιάσει διαφορετική συμπεριφορά πριν και μετά την εκτέλεση μιας μεθόδου. Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

53 Μέθοδοι μετάλλαξης Visibility modifier Method name Return type Parameter public void insertmoney(int amount) balance = balance + amount; Field being mutated Assignment statement: επιστρέφει τιμή που συμφωνεί με τον επιστρεφόμενο τύπο στην υπογραφή της μεθόδου Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

54 Ανακεφαλαιώνοντας... Κλάση Όνομα πεδία, κατασκευαστής, μέθοδοι Πεδία αποθηκεύουν δεδομένα για την κατάσταση του αντικειμένου Κατασκευαστές διαμορφώνουν μία αρχική κατάσταση όταν δημιουργείται το αντικείμενο, οπότε το αντικείμενο μπορεί να ανταποκρίνεται σωστά σε κλήσεις μεθόδων αμέσως μετά τη δημιουργία του Μέθοδοι υλοποιούν την καθορισμένη συμπεριφορά των αντικειμένων της κλάσης Μέθοδοι πρόσβασης παρέχουν πληροφορίες για την κατάσταση του αντικειμένου Μέθοδοι μετάλαξης αλλάζουν την κατάστασή του

55 Ανακεφαλαιώνοντας... Οι κατασκευαστές έχουν το ίδιο όνομα με την κλάση όπου ορίζονται ΔΕΝ έχουν επιστρεφόμενο τύπο Και οι κατασκευαστές και οι μέθοδοι μπορούν να παίρνουν παραμέτρους Οι μη κενοί επιστρεφόμενοι τύποι επιτρέπουν να μεταβιβάζουμε αποτέλεσμα έξω από μία μέθοδο

56 Βρείτε τα λάθη... public class CokeMachine private price; public CokeMachine() price = 300 public int getprice return Price; Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

57 Βρείτε τα λάθη... public class CokeMachine private int price; public CokeMachine() price = 300; public int getprice() return Price; Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

58 Βρείτε τα λάθη... public void getage() return age;

59 Βρείτε τα λάθη... public void int getage() return age;

60 Πηγές/Acknowledgements H. M. Deitel, P. J. Deitel, Java Προγραμματισμός, 6η έκδοση, Μ. Γκιούρδας, 2006 D. Barnes, M. Kolling, Αντικειμενοστρεφής Προγραμματισμός σε Java, Κλειδάριθμος, 2008 Βασίλης Χριστοφίδης, Αντικειμενοστρεφής Προγραμματισμός, Πανεπιστήμιο Κρήτης Κ. Τσαγκάρης, Εισαγωγή στις εφαρμογές της Java, Πανεπιστήμιο Πειραιώς Jones, Evan, Adam Marcus, and Eugene Wu Introduction to Programming in Java,January IAP (Massachusetts Institute of Technology: MIT OpenCourseWare), (Accessed 10 Mar, 2013). License: Creative Commons BY-NC-SA

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

Κλάσεις και Αντικείμενα Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 4/4/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Κλάσεις και Αντικείμενα Εισαγωγή 1 Στατικότητα

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 26/3/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Εισαγωγή στις Κλάσεις και Αντικείμενα Java's "Building

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας

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

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

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

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/5/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Συλλογή απορριμμάτων Συλλογή απορριμμάτων (Garbage

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 23/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Υπερφόρτωση μεθόδων Υπερφόρτωση μεθόδων Πολλαπλές

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

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κλάσεις και αντικείμενα #include <iostream.h<

Κλάσεις και αντικείμενα #include <iostream.h< Κλάσεις και αντικείμενα #include class Person private: char name[30]; int age; public: void readdata() cout > name; cout > age; void

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

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

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

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

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

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

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/5/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Χειρισμός Εξαιρέσεων Εξαίρεση (Exception) ένδειξη

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 9: Συναρτήσεις Εμβέλεια Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τι είναι κλάση Κλάση

Τι είναι κλάση Κλάση 35 Τι είναι κλάση Κλάση είναι μια συλλογή από μεταβλητές. Αλλιώς είναι ένα σύνολο από: δεδομένα που δηλώνουν τα χαρακτηριστικά της κλάσης (τι είναι) και συναρτήσεις που προδιαγράφουν την συμπεριφορά της

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

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

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 10: Constructors και Destructors Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 14/5/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr INTERFACES Μελέτη περίπτωσης: δημιουργία και χρήση

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

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

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

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

Εισαγωγή στα Αντικείμενα

Εισαγωγή στα Αντικείμενα 1 CSE-391: Artificial Intelligence University of Pennsylvania Matt Huenerfauth Εισαγωγή στα Αντικείμενα Δεκέμβριος 2016 2 Όλα είναι αντικείμενα Στην Python ότι χρησιμοποιούμε είναι αντικείμενο: hello.upper()

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/3/217 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια prentz@unipi.gr ΚΑΤΑΝΟΜΗ Σ ΓΙΑ ΒΑΣΙΚΟΥΣ ΤΥΠΟΥΣ ΔΕΔΟΜΕΝΩΝ (PRIMITIVE

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

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

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

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

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

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

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

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

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

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

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

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

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

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

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

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

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

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

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

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

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 10: Συναρτήσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

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

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

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

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

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

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

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ «ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ 1 4.1. Οριςμόσ φνθετων τφπων κλάςεων 2 Με εξαίρεςη τουσ βαςικούσ τύπουσ τησ Java (int, float, boolean, κλπ) τα

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

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

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

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

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

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15 Οι βασικές έννοιες που θα καλύψουμε Ομαδοποίηση αντικειμένων Εισαγωγή στις συλλογές Γενικές κλάσεις Iterators Συλλογές (ειδικά την ArrayList) Συνεχίζουμε την αναφορά στο θέμα της αφαίρεσης (abstraction)

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

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

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 2: Εντολές/προτάσεις ελέγχου και συναρτήσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

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

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

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

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

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

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

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

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

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

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

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

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

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