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

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

Download "Εισαγωγή στον Προγ/μό Υπολογιστών"

Transcript

1 Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 10 Αντικειμενοστραφής Προγραμματισμός (object-oriented programming)

2 Περιεχόμενα 1. Αντικειμενοστραφής προγραμματισμός 2. Τάξεις και αντικείμενα 3. Ορισμός τάξεων 4. Πέρασμα μηνυμάτων (message passing) και εκφράσεις τελείας (dot) 5. Ιδιότητες τάξεων 6. Κληρονομικότητα 7. Πολλαπλή κληρονομικότητα 8. Γενικές συναρτήσεις 9. Παράδειγμα: ρολόϊ

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

4 Αντικειμενοστραφής προγραμματισμός Αντικείμενα (objects): Είναι αφηρημένα δεδομένα: η χρήση τους είναι ανεξάρτητη από τον τρόπο αναπαράστασής τους Έχουν εσωτερική κατάσταση η οποία αλλάζει κατά τη διάρκεια εκτέλεσης του προγράμματος, χωρίς να αλλάζει η ταυτότητά τους (mutable data) Ανταποκρίνονται σε καθορισμένα μηνύματα (message passing) Object-oriented programming: τρόπος προγραμματισμού όπου κεντρικό ρόλο παίζουν αντικείμενα Το πρόγραμμα οργανώνεται σε αντικείμενα όπου μέσω της αλληλεπίδρασης τους περνώντας μηνύματα μεταξύ τους, παράγονται χρήσιμοι υπολογισμοί Η Python, όπως και πολλές γλώσσες υψηλού επιπέδου, διαθέτει ειδικό συντακτικό που διευκολύνει τη χρήση αντικειμένων

5 Τάξεις και αντικείμενα

6 Τάξεις και αντικείμενα Κάθε αντικείμενο έχει ένα ορισμένο τύπο (τάξη) και αντικείμενα της ίδιας τάξης υποστηρίζουν το ίδιο συνόλο ιδιοτήτων και μεθόδων Τα αντικείμενα που έχουμε χρησιμοποιήσει μέχρι τώρα ανήκουν σε κάποια από τις ενσωματωμένες τάξεις της Python >>> type(12) <class 'int'> >>> type('hello') <class 'str'> >>> type(pow) <class 'builtin_function_or_method'>

7 Τάξεις και αντικείμενα Ο προγραμματιστής μπορεί να ορίσει τις δικές του τάξεις Λειτουργούν ως «καλούπι» κατασκευής αντικειμένων της τάξης αυτής Ο ορισμός περιγράφει τις ιδιότητες και μεθόδους που έχουν τα αντικείμενα τη τάξης Παράδειγμα: αντικείμενα που αναπαριστούν τραπεζικό λογαριασμό, θα πρέπει να: Επιστρέφουν τη (μεταλλασσόμενη) τιμή του τρέχοντος υπολοίπου (balance) Επιστρέφουν το όνομα του κατόχου (holder) Υποστηρίζουν μέθοδο ανάληψης (withdraw) Υποστηρίζουν μέθοδο κατάθεσης (deposit)

8 Τάξεις και αντικείμενα Παράδειγμα: μια (μη ενσωματωμένη τάξη) Account για τραπεζικούς λογαριασμούς θα μπορούσε να λειτουργεί ως εξής: Κατασκευή αντικειμένου που αναπαριστά λογαριασμό που ανήκει στον κάτοχο με όνομα 'Luke': >>> a = Account('Luke') Η κλήση σε συνάρτηση με ακριβώς ίδιο όνομα με μια τάξη, κατασκευάζει και επιστρέφει ένα αντικείμενο της τάξης αυτής Τέτοιες συναρτήσεις λέγονται κατασκευαστές ο αντικείμενο που κατασκευάστηκε λέγεται στιγμιότυπο της τάξης Account

9 Τάξεις και αντικείμενα Κάθε αντικείμενο έχει ιδιότητες (attributes): ονόματα που δένονται σε τιμές που αφορούν το αντικείμενο Οι τιμές των ιδιοτήτων μπορούν να επιστραφούν με εκφράσεις με τελείες (dot expressions) >>> a.holder 'Luke' >>> a.balance 0

10 Τάξεις και αντικείμενα Όλα τα αντικείμενα μιας τάξης έχουν τις ίδιες ιδιότητες >>> b = Account('Yoda') >>> b.holder 'Yoda' >>> b.balance 0 Ιδιότητες στιγμιοτύπου (instance attributes): ιδιότητες όπου μπορούν να λάβουν διαφορετικές τιμές σε διαφορετικά αντικείμενα (της ίδιας τάξης), πχ. holder, balance Ιδιότητες τάξης (class attributes): ιδιότητες που έχουν την ίδια τιμή σε όλα τα αντικείμενα της ίδιας τάξης

11 Τάξεις και αντικείμενα Μέθοδοι: ιδιότητες που είναι συναρτήσεις και εκτελούν υπολογισμούς που αφορούν το αντικείμενο στο οποίο εφαρμόζονται ή μεταλλάσσουν την κατάστασή του >>> a.deposit(15) 15 >>> a.withdraw(10) 5 >>> a.withdraw(10) 'Insufficient funds' Τα αντικείμενα Account είναι μεταλλασσόμενο δεδομένο αφού η ίδια κλήση επέφερε διαφορετικό αποτέλεσμα

12 Ορισμός τάξεων

13 Ορισμός τάξεων Μη ενσωματωμένες τάξεις ορίζονται με την εντολή class Γενική μορφή: class <όνοµα>: <µπλόκ εντολών> Στο μπλοκ περιέχονται εντολές που ορίζουν τις ιδιότητες των αντικειμένων της τάξης και πως αυτές αλλάζουν στη λήψη μηνυμάτων (κλήση μεθόδων) Εκτελούνται κατά την εκτέλεση της εντολής class Οι ιδιότητες ορίζονται με εντολές που δένουν ονόματα σε τιμές, όπως def και ανάθεση (=)

14 Ορισμός τάξεων Ο ορισμός των instance attributes γίνεται (από σύμβαση) στον ορισμό συνάρτησης με το ειδικό όνομα init (στην Python) και ονομάζεται κατασκευαστής της τάξης >>> class Account: def init (self, account_holder): self.holder = account_holder self.balance = 0 Στην κλήση Account('Luke') γίνονται τα εξής: 1. Δημιουργείται νέο αντικείμενο της τάξης Account 2. Καλείται η συνάρτηση init, όπου Η πρώτη τυπική παράμετρος (self) δένεται στο νέο αντικείμενο που μόλις δημιουργήθηκε Οι υπόλοιπες παράμετροι δένονται με τα ορίσματα στην κλήση του κατασκευαστή

15 Ορισμός τάξεων Ο ορισμός των instance attributes γίνεται (από σύμβαση) στον ορισμό συνάρτησης με το ειδικό όνομα init (στην Python) και ονομάζεται κατασκευαστής της τάξης >>> class Account: def init (self, account_holder): self.holder = account_holder self.balance = 0 Στην κλήση Account('Luke') γίνονται τα εξής: 3. Ορισμός instance attributes: oι αναθέσεις δένουν τα ονόματα holder, balance σε τιμές 4. Επιστρέφεται το αντικείμενο που δημιουργήθηκε Η πρώτη τυπική παράμετρος (self) δένεται στο νέο δημιουργήθηκε

16 Ορισμός τάξεων Διαφορετικές κλήσεις του κατασκευαστή φτιάχνουν διαφορετικά αντικείμενα To κάθε ένα έχει το δικό του όνομα κατόχου και τιμή υπολοίπου >>> a = Account('Luke') >>> b = Account('Yoda') >>> a is b False >>> a.deposit(20) 20 >>> b.balance 0

17 Ορισμός τάξεων Η τιμή ενός αντικειμένου δεν εξαρτάται από το όνομα το οποίο έχει δεθεί σε αυτό >>> a = Account('Luke') >>> a.deposit(20) 20 >>> c = a >>> c is a True >>> c.withdraw(15) 5 >>> a.withdraw(10) 'Insufficient funds'

18 Ορισμός τάξεων Οι μέθοδοι ορίζονται ως συναρτήσεις στον ορισμό της τάξης >>> class Account: def init (self, account_holder): self.holder = account_holder self.balance = 0 def deposit(self, amount): self.balance = self.balance + amount return self.balance def withdraw(self, amount): if amount > self.balance: return 'Insufficient funds' self.balance = self.balance amount return self.balance

19 Ορισμός τάξεων Ο ορισμός μιας μεθόδου δένει το όνομα της στη συνάρτηση, ως ιδιότητα της τάξης (class attribute)... def deposit(self, amount):... self.balance = self.balance + amount return self.balance Στην κλήση a.deposit(10) γίνονται τα εξής: 1. Καλείται η μέθοδος deposit της τάξης στην οποία ανήκει η τιμή του a (Account) Η πρώτη τυπική παράμετρος (self) δένεται στην τιμή του a Οι υπόλοιπες παράμετροι δένονται με τα ορίσματα στην κλήση της μεθόδου

20 Ορισμός τάξεων μετάβαση στο Pythontutor

21 Εκφράσεις με τελείες και πέρασμα μηνυμάτων

22 Εκφράσεις με τελείες Εκφράσεις με τελείες (dot expressions): Γενική μορφή: <έκφραση>.<όνοµα> Τιμή = η τιμή της ιδιότητας <όνοµα> του αντικειμένου που είναι η τιμή της <έκφρασης> Οι τιμές των dot expressions μπορούν ισοδύναμα να υπολογιστούν με τη συνάρτηση getattr: >>> a = Account('Luke') >>> getattr(a, 'name') 'Luke' >>> getattr(a, 'deposit')(25) 25 >>> hasattr(a, 'withdraw') True

23 Πέρασμα μηνυμάτων Η συνάρτηση getattr λειτουργεί ως συνάρτηση διαχείρισης μηνυμάτων (dispatch function) που δίνονται στα ορίσματα Η κλήση getattr(a, 'attr') περνάει το μήνυμα (ως string) 'attr' στο αντικείμενο a (παραλήπτης) Η ερμηνεία των dot expressions είναι η ίδια: Η έκφραση a.attr περνάει το μήνυμα attr στο παραλήπτη a Τα αντικείμενα αλληλεπιδρούν στέλνοντας μηνύματα: στο σώμα των μεθόδων στέλνονται μηνύματα (μέσω dot expressions) σε άλλα αντικείμενα, των οποίων οι καλούμενες μέθοδοι στέλνουν άλλα μηνύματα κτλ.

24 Συναρτήσεις και μέθοδοι Οι μέθοδοι μπορούν να κληθούν με δύο ταυτόσημους τρόπους: >>> a = Account('Luke') >>> a.deposit(15) 15 >>> type(a.deposit) <class 'method'> >>> a = Account('Luke') >>> Account.deposit(a, 15) 15 >>> type(account.deposit) <class 'function'>

25 Συναρτήσεις και μέθοδοι Η έκφραση Account.deposit έχει ως τιμή την ιδιότητα (τάξης) deposit της τάξης Account, η οποία είναι συνάρτηση με δύο ορίσματα Η έκφραση a.deposit εχει ως τιμή τη συνάρτηση deposit της τάξης Account, οπου το πρώτο της όρισμα είναι εκ των προτέρων δεμένο στο αντικείμενο a H a.deposit είναι ισοδύναμη της a_deposit: >>> a = Account('Luke') >>> a_deposit = lambda x: Account.deposit(a, x) >>> a_deposit(15) 15 >>> a.deposit(15) 30

26 Συμβάσεις ονομάτων στην Python Στα ονόματα τάξεων χρησιμοποιείται κεφαλαίο πρώτο γράμμα σε κάθε λέξη που απαρτίζει το όνομα. Ανάμεσα σε δύο λέξει δεν τοποθετείται _ Πχ, Account, CheckingAccount Με _ αρχίζουν ιδιότητες που δεν θα πρέπει να χρησιμοποιούνται από τμήματα κώδικα εκτός τάξης. (Ιδιωτικές ιδιότητες)

27 Ιδιότητες τάξεων

28 Ιδιότητες τάξεων Οι τιμές ιδιοτήτων τάξεων είναι κοινές για όλα τα αντικείμενα μιας τάξης Ορίζονται με εντολή ανάθεσης, def ή import που δεν βρίσκεται μέσα σε ορισμό μεθόδου και συνεπώς εκτελείται όταν ορίζεται η τάξη Παράδειγμα: τραπεζικός λογαριασμός με επιτόκιο καταθέσεων (interest) κοινό για όλους τους λογαριασμούς >>> class Account: interest = 0.02 def init (self, account_holder): self.balance = 0 self.holder = account_holder # Akolou8oun me8odoi tis Account

29 Ιδιότητες τάξεων >>> a = Account('Luke') >>> b = Account('Yoda') >>> a.interest 0.02 >>> b.interest 0.02 Η τιμή μιας ιδιότητας τάξης αλλάζει ταυτόχρονα για όλα τα αντικείμενα της ίδιας τάξης >>> Account.interest = 0.04 >>> a.interest 0.04 >>> b.interest 0.04

30 Ιδιότητες τάξεων μετάβαση στο Pythontutor

31 Ιδιότητες τάξεων Αποτίμηση ιδιοτήτων: <έκφραση>.<όνοµα> 1. Η αποτίμηση της έκφρασης αριστερά της. δίνει το αντικείμενο που αφορά η ιδιότητα 2. Επιστρέφεται η τιμή της ιδιότητας στιγμιοτύπου <όνοµα> εάν υπάρχει για το αντικείμενο 3. Εάν δεν υπάρχει τέτοια ιδιότητα στιγμιοτύπου, επιστρέφεται η ιδιότητα τάξης <όνοµα> εάν υπάρχει 4. Εάν η ιδιότητα είναι συνάρτηση, επιστρέφεται η συνάρτηση αυτή αφού δεθεί στο αντικείμενο της έκφρασης (δηλ., ως μέθοδος) Εάν η ιδιότητα βρίσκεται στο αριστερό μέλος μιας ανάθεσης, ορίζεται η ιδιότητα στιγμιοτύπου <όνοµα> μόνο στο αντικείμενο της έκφρασης

32 Ιδιότητες τάξεων μετάβαση στο Pythontutor

33 Ιδιότητες τάξεων μετάβαση στο Pythontutor

34 Ιδιότητες τάξεων ιδιότητα στιγμιότυπου μετάβαση στο Pythontutor

35 Ιδιότητες τάξεων ιδιότητα τάξης μετάβαση στο Pythontutor

36 Ιδιότητες τάξεων δεν υπάρχει τέτοια ιδιότητα στιγμιότυπου μετάβαση στο Pythontutor

37 Ιδιότητες τάξεων ιδιότητα τάξης μετάβαση στο Pythontutor

38 Ιδιότητες τάξεων ιδιότητα τάξης μετάβαση στο Pythontutor

39 Ιδιότητες τάξεων δεν υπάρχει τέτοια ιδιότητα στιγμιότυπου μετάβαση στο Pythontutor

40 Ιδιότητες τάξεων Υπάρχει ιδιότητα τάξης με το ίδιο όνομα: η τιμή του a.deposit είναι lambda amount: Account.deposit(a, amount) μετάβαση στο Pythontutor

41 Κληρονομικότητα

42 Κληρονομικότητα Διαφορετικές τάξεις μπορεί να σχετίζονται Μια συνήθεις σχέση είναι η μια τάξη να είναι εξειδίκευση μιας άλλης: Η πιο εξειδικευμένη τάξη: 1. έχει τις ίδιες ιδιότητες με τη λιγότερο εξειδικευμένη τάξη, 2. αλλάζει (εξειδικεύει) τη συμπεριφορά ορισμένων μεθόδων 3. διαθέτει επιπλέον ιδιότητες Παράδειγμα: λογαριασμός όψεως CheckingAccount όπου χρεώνεται 1 σε κάθε ανάληψη και έχει χαμηλότερο επιτόκιο: >>> ch = CheckingAccount('Han') >>> ch.interest 0.01 >>> ch.deposit(20) 20 >>> ch.withdraw(10) 9

43 Κληρονομικότητα Η τάξη CheckingAccount εξειδικεύει την Account Η CheckingAccount ονομάζεται παραγόμενη τάξη (derived class) της Account Η Account ονομάζεται βασική τάξη (base class) της CheckingAccount >>> class CheckingAccount(Account): withdraw_charge = 1 interest = 0.01 def withdraw(self, amount): return Account.withdraw(self, amount + \ self.withdraw_charge)

44 Κληρονομικότητα >>> ch = CheckingAccount('Leia') >>> ch.deposit(20) 20 >>> ch.withdraw(10) 9 >>> ch.interest 0.01 Αποτίμηση ιδιοτήτων: 1. Μια ιδιότητα ενός αντικειμένου αναζητείται πρώτα στην τάξη του, (είτε ανάμεσα στις ιδιότητες στιγμιότυπου είτε στις ιδιότητες τάξης) 2. Αν δεν βρεθεί, η αναζήτηση συνεχίζεται στη βασική τάξη, αναδρομικά μέχρι τη βασική τάξη στην κορυφή της ιεραρχίας

45 Ιδιότητες τάξεων μετάβαση στο Pythontutor

46 Interfaces Δύο τάξεις μπορεί να σχετίζονται γιατί υποστηρίζουν το ίδιο interface interface: σύνολο ιδιοτήτων με κοινά ονόματα Παράδειγμα: τάξη Wallet >>> class Wallet: def init (self): self.amount = 0 def deposit(self, x): self.amount = self.amount + x >>> winners = [Account('Luke'), Wallet('R2D2'),\ CheckingAccount('Leia')] >>> for winner in winners: winner.deposit(5)

47 Interfaces Τα αντικείμενα των τάξεων Wallet και Account έχουν μέθοδο deposit και όλα ανταποκρίνονται στην κλήση winner.deposit(5) Ο κώδικας for winner in winners: winner.deposit(5) λειτουργεί για οποιοδήποτε αντικείμενο έχει μέθοδο deposit με αριθμητικό όρισμα Τέτοιος κώδικας λέγεται γενικός (generic) ή πολυμορφικός γιατί λειτουργεί με οποιοδήποτε δεδομένο διαθέτει το κατάλληλο interface

48 Interfaces Μη πολυμορφική υλοποίηση: >>> winners = [Account('Luke'), CheckingAccount('Leia')] >>> for winner in winners: Account.deposit(winner, 5) Δεν λειτουργεί για αντικείμενα της τάξης Wallet, παρόλο που υποστηρίζουν το interface της deposit

49 Πολλαπλή κληρονομικότητα

50 Πολλαπλή κληρονομικότητα Μια τάξη μπορεί να έχει πολλαπλές βασικές τάξεις >>> class SavingsAccount(Account): deposit_charge = 2 def deposit(self, amount): return Account.deposit(self, self.amount - \ self.deposit_charge) >>> class SmartWalletAccount(CheckingAccount, SavingAccount): def init (self, account_holder): self.holder = account_holder self.balance = 1

51 Πολλαπλή κληρονομικότητα >>> smart = SmartWalletAccount('Chewie') >>> smart.balance 1 >>> smart.deposit(20) # SavingsAccount.deposit 19 >>> smart.withdraw(10) # CheckingAccount.deposit 8 Account deposit, withdraw CheckingAccount withdraw SavingsAccount deposit Σειρά χρήσης ιδιοτήτων τάξης στην Python: από κάτω προς τα πάνω και αριστερά προς δεξιά SmartWalletAccount

52 Γενικές (generic) συναρτήσεις

53 Γενικές συναρτήσεις Γενικές (generic)/πολυμορφικές συναρτήσεις: μπορούν να δεχθούν ορίσματα πολλών διαφορετικών τύπων Παράδειγμα ενσωματωμένης συνάρτησης str: >>> str(5) '5' >>> from datetime import date >>> fri = date(2018, 12, 11) >>> str(fri) ' ' >>> str(max) '<built-in function max>'

54 Γενικές συναρτήσεις Πως γνωρίζει τι θα επιστρέψει η str για κάθε τύπο δεδομένου; για τύπους που θα δημιουργηθούν στο μέλλον; Λύση: interfaces και message passing Όλα τα αντικείμενα διαθέτουν τη μέθοδο str Όλες οι τάξεις κληρονομούν την τάξη object η οποία διαθέτει τη μέθοδο str >>> (5). str () '5' >>> fri. str () ' ' >>> max. str () '<built-in function max>' H συνάρτηση str καλεί τη μέθοδο (στέλνει μήνυμα) str στο αντικείμενο του ορίσματός της Η τιμή επιστροφής της str υπολογίζεται από το αντικείμενο του ορίσματος

55 Γενικές συναρτήσεις >>> a = Account('Luke') >>> str(a) '< main.account object at 0x10cab85c0>' Πως μπορούμε να εξειδικεύσουμε τον τρόπο εμφάνισης ενός λογαριασμού; >>> def Account2(Account): def str (self): >>> a = Account2('Luke') >>> a. str () return 'Holder: {0}, balance: {1}'.format(self.holder,\ self.balance) 'Holder: Luke, balance: 0' >>> str(a) 'Holder: Luke, balance: 0' >>> print(a) Holder: Luke, balance: 0

56 Γενικές συναρτήσεις Ειδικές μέθοδοι της Python: συναρτήσεις <όνοµα> οι οποίες καλούνται από τον διερμηνευτή της Python σε ειδικές περιπτώσεις Μέθοδος init >>> str(5) '5' >>> 5. str () '5' >>> len('hello world') 11 >>> 'hello world'. len () 11

57 Γενικές συναρτήσεις Ειδικές μέθοδοι που αντιστοιχούν σε τελεστές >>> 'hello world'[6] 'w' >>> 'hello world'. getitem (6) 'w' >>> >>> (5). add (2) 7 >>> 5 * 2 10 >>> (5). mul (2) 10 Υπάρχουν αντίστοιχες ειδικές μέθοδοι για όλους τους τελεστές της Python

58 Γενικές συναρτήσεις Χειρισμός iterators >>> iterator = iter('hello world') >>> next(iterator) 'h' >>> next(iterator) 'e' Ισοδύναμο με: >>> iterator = 'hello world'. iter () >>> iterator. next () 'h' >>> iterator. next () 'e' Iterable: οποιοδήποτε αντικείμενο διαθέτει μέθοδο iter

59 Γενικές συναρτήσεις Ορισμός τύπου δεδομένου Rational που αναπαριστά ρητούς >>> Rational(1, 2) + Rational(3, 4) 5/4 >>> Rational(1, 2) * Rational(3, 4) 3/8

60 Γενικές συναρτήσεις >>> def Rational: def init (self, n, d): from math import gcd g = gcd(n, d) self.n = n // g self.d = d // g def add (self, r): n = self.n * r.d + self.d * r.n d = self.n * r.d return Rational(n, d) def mul (self, r): return Rational(self.n * r.n, self.d * r.d) def str (self): return '{0}/{1}'.format(self.n, self.d) def repr (self): return self. str ()

61 Παράδειγμα: ρολόϊ

62 Παράδειγμα: ρολόϊ Αντικείμενα Counter, CyclicCounter, CascadeCounter στο myclock.py

63 Παράδειγμα: ρολόϊ Αντικείμενα Counter, CyclicCounter, CascadeCounter στο myclock.py

64 Παράδειγμα: ρολόϊ Αντικείμενα Counter, CyclicCounter, CascadeCounter στο myclock.py

65 Παράδειγμα: ρολόϊ Αντικείμενα Counter, CyclicCounter, CascadeCounter στο myclock.py

66 Παράδειγμα: ρολόϊ Αντικείμενα Counter, CyclicCounter, CascadeCounter στο myclock.py

67 Παράδειγμα: ρολόϊ Αντικείμενα Clock, RomanClock στο myclock.py

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

Εισαγωγή στον Προγ/μό Υπολογιστών Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 1 Εκφράσεις, κλητικές εκφράσεις, ονόματα Περιεχόμενα Εκφράσεις (expressions) Τελεστές (operators) της Python Κλητικές εκφράσεις (call expressions) Ονόματα (names)

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

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

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

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

Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19 Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19 Διαδικασιακός προγραμματισμός Ο Διαδικασιακός προγραμματισμός δίνει έμφαση στις ενέργειες/διεργασίες/εντολές

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

Γλωσσική Τεχνολογία. Object-Orientation in Python

Γλωσσική Τεχνολογία. Object-Orientation in Python Γλωσσική Τεχνολογία Object-Orientation in Python Everything Is an Object >>> a=[1,2,3] >>> b=a >>> b.append(4) Τι περιέχουν τα a και b? >>> def hello():... print "hello world!"... >>> def fcall(f):...

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

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

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

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

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

Εισαγωγή στον Προγ/μό Υπολογιστών Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 7 Ακολουθίες (Sequences) Περιεχόμενα 1. Ακολουθίες 2. Λίστα (list) 3. Επαναληπτικοί υπολογισμοί ακολουθιών 4. Επεξεργασία ακολουθιών 5. Τελεστές ακολουθιών 6.

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

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ ΤΑΞΗ: 3 η ΤΑΞΗ ΕΠΑ.Λ. ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ / ΕΙΔΙΚΟΤΗΤΑΣ Ημερομηνία: Σάββατο 20 Απριλίου 2019 Διάρκεια Εξέτασης: 3 ώρες ΘΕΜΑ Α ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

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

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

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

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

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κλάσεις στην Python. Δημιουργία κλάσεων

Κλάσεις στην Python. Δημιουργία κλάσεων Κλάσεις στην Python Στον προγραμματισμό γενικά προσπαθούμε να αποφεύγουμε τις επαναληπτικές εργασίες. Προσπαθούμε να γράφουμε κώδικα μία φορά και να τον χρησιμοποιούμε ξανά. Η αποφυγή της επανάληψης κώδικα

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

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

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

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

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

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

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

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

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΜΟΡΥΕ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Διαδικασιακός ή Διαδικαστικός (Procedural)

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

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

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

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

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

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

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

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων Διαγράμματα UML στην Ανάλυση Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων περιεχόμενα παρουσίασης Διαγράμματα επικοινωνίας Διαγράμματα ακολουθίας Διαγράμματα

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

Κλάσεις στην Python. Δημιουργία κλάσεων

Κλάσεις στην Python. Δημιουργία κλάσεων Κλάσεις στην Python Στον προγραμματισμό γενικά προσπαθούμε να αποφεύγουμε τις επαναληπτικές εργασίες. Προσπαθούμε να γράφουμε κώδικα μία φορά και να τον χρησιμοποιούμε ξανά. Η αποφυγή της επανάληψης κώδικα

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

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Πέρασμα μεταβλητών, Templates, Συσχετίσεις μεταξύ κλάσεων ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Μ. Ρήγκου (rigou@ceid.upatras.gr) Τι θα συζητήσουμε σήμερα Πέρασμα με τιμή και με αναφορά Template functions και classes

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

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

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

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

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:

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

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

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

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

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

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

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

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

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

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 8: Θεματική Ενότητα: Συναρτήσεις ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα 8 Συναρτήσεις Πληροφορική

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης Κ.Π. Γιαλούρης Στόχοι του σημερινού μαθήματος Εξοικείωση με τα περιβάλλοντα της Python Κατανόηση βασικών εννοιών & τεχνικών Τύπος δεδομένων Μεταβλητή Εντολή ανάθεση τιμής / εντολή αντικατάστασης Εισαγωγή

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

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

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

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

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

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

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

Γραφικά υπολογιστών Εργαστήριο 9 Κλάσεις στην Python. Σκοπός της 9ης άσκησης είναι να μάθουμε αντικειμενοστρεφή προγραμματισμό στην Python.

Γραφικά υπολογιστών Εργαστήριο 9 Κλάσεις στην Python. Σκοπός της 9ης άσκησης είναι να μάθουμε αντικειμενοστρεφή προγραμματισμό στην Python. Γραφικά υπολογιστών Εργαστήριο 9 Κλάσεις στην Python Σκοπός της 9ης άσκησης είναι να μάθουμε αντικειμενοστρεφή προγραμματισμό στην Python. 1. Εισαγωγή Κάθε χαρακτήρας σε ένα παιχνίδι χρειάζεται κάποια

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα τοποθετούνται

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

Προγραμματιστικά Εργαλεία και Τεχνολογίες για Επιστήμη Δεδομένων

Προγραμματιστικά Εργαλεία και Τεχνολογίες για Επιστήμη Δεδομένων Προγραμματιστικά Εργαλεία και Τεχνολογίες για Επιστήμη Δεδομένων Παράδοση 1/1/2019, Νίκος Παπασπύρου. Εργαστηριακή εξέταση, πρόβλημα bigpair Δίνονται δύο ακολουθίες a(1),..., a(n) και b(1),..., b(m), αποτελούμενες

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης Συναρτήσεις (Functions) Στον προγραμματισμό,

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

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

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

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

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

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

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία

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

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εισαγωγή στην C++ Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η γλώσσα C++ Σχεδιάστηκε το 1979 από τον Bjarne Stroustrup στα Bell Laboratories Βασίζεται

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object

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

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

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

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

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα 4: Αντικειμενοστραφής προγραμματισμός στην Python Αβούρης Νικόλαος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Σκοπός αυτής

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 4: Θεματική Ενότητα: Είσοδος/έξοδος, μεταβλητές, αναθέσεις ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική

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

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

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

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

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

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

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

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

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

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

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

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας Διαγράμματα Αλληλεπίδρασης Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας 1 Διαγράμματα αλληλεπίδρασης Απεικονίζουν την αλληλεπίδραση των αντικειμένων μέσω μηνυμάτων Η ανάθεση αρμοδιοτήτων περιλαμβάνει

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 4: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Πίνακες Δεικτών, Παραδείγματα, Πολυδιάστατοι πίνακες Πέρασμα παραμέτρων σε προγράμματα C Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες:

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

είκτες και Πίνακες (2)

είκτες και Πίνακες (2) είκτες και Πίνακες (2) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πολυδιάστατοι πίνακες Πέρασµα παραµέτρων σε προγράµµατα C ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1-1 Πίνακες εικτών Πίνακας δεικτών είναι

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία

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

ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ HMEΡΗΣΙΩΝ Δ ΕΣΠΕΡΙΝΩΝ ΑΥΤΟΤΕΛΩΝ ΕΙΔΙΚΩΝ ΤΜΗΜΑΤΩΝ & ΤΜΗΜΑΤΩΝ ΣΥΝΔΙΔΑΣΚΑΛΙΑΣ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

Συναρτήσεις και διαδικασίες

Συναρτήσεις και διαδικασίες Συναρτήσεις και διαδικασίες Χρήση συναρτήσεων βιβλιοθήκης Εντολή κλήσης της συνάρτησης printf: printf( Hello, world\n ); Μια συνάρτηση είναι ένα σύνολο εντολών που έχουν ομαδοποιηθεί και τους έχει αποδοθεί

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

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Αντικειμενοστραφής Προγραμματισμός και JavaScript

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Αντικειμενοστραφής Προγραμματισμός και JavaScript Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Αντικειμενοστραφής Προγραμματισμός και JavaScript 1 Ορισμοί Κλάση: πρότυπο (template) π.χ. πολύγωνο Μέθοδος ή μήνυμα: Μια ορισμένη δυνατότητα της κλάσης π.χ. για τα πολύγωνα

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης Σύνοψη Μαθήματος Προηγούμενο μάθημα Αλγόριθμοι

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

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

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

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

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

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

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

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

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων 1 Είσοδος/Έξοδος Είσοδος/Έξοδος ανάλογα με τον τύπο του προγράμματος Πρόγραμμα

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

Γλώσσα προγραμματισμού python

Γλώσσα προγραμματισμού python Προηγούμενο Σημειώσεις Επόμενο Γλώσσα προγραμματισμού python Η γλώσσα αυτή γράφτηκε από τον Ολλανδό προγραμματιστή Guido van Rossum στα τέλη της δεκαετίας 1980-90. Η έκδοση 2.0 δημοσιεύτηκε στις 16 Οκτωβρίου

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018 ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΘΕΜΑ Α ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Α1. Να χαρακτηρίσετε

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

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης Προγραμματισμός Υπολογιστών & Κ.Π. Γιαλούρης Στόχοι του σημερινού μαθήματος Εξοικείωση με τα περιβάλλοντα της Python Κατανόηση βασικών εννοιών & τεχνικών Τύπος δεδομένων Μεταβλητή Εντολή ανάθεση τιμής

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

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

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

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

Aντικειμενοστραφής. Προγραμματισμός. Κληρονομικότητα

Aντικειμενοστραφής. Προγραμματισμός. Κληρονομικότητα Κληρονομικότητα Η κληρονομικότητα είναι ένα από τα πιο ισχυρά χαρακτηριστικά του αντικειμενοστραφούς προγραμματισμού. Είναι ο μηχανισμός που επιτρέπει σε μία κλάση να κληρονομεί όλη τη συμπεριφορά και

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

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

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

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

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

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

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

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Η εργασία έχει ως στόχο τον σχεδιασμό και την υλοποίηση ενός μεταγλωττιστή για την γλώσσα Ciscal, χρησιμοποιώντας

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

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

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

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

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