Κληρονομικότητα. Περίγραμμα. Σύνθεση. Επαναχρησιμοποίηση Κλάσεων. Περίγραμμα. Σύνθεση (παράδειγμα) Code re-use through composition and inheritance
|
|
- Φωτεινή Καλλιγάς
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Περίγραμμα Κληρονομικότητα Code re-use through compositio ad iheritace Iheritace ad hierarchy Οbject cass Exampe of iheritace Iheritace ad object costructio Code re-use through deegatio Iheritace ad access specifiers: protected Upcastig The keyword fia 1 2 Επαναχρησιμοποίηση Κλάσεων Σύνθεση (compositio): σε μια κλάση εντάσσουμε ως στοιχεία χειριστήρια άλλων κλάσεων. Maibox Message Queue Κληρονομικότητα (iheritace): επεκτείνουμε υπάρχουσες κλάσεις, είτε προσθέτοντάς τους καινούρια στοιχεία, είτε αλλάζοντας την λειτουργικότητα μεθόδων τους. Σύνθεση cass WaterSource { private Strig s; WaterSource() { System.out.prit("WaterSource()"); s = ew Strig("Costructed"); pubic Strig tostrig() { retur s; 3 Η χρήση του tostrig(): όταν θέλουμε να μπορεί να γίνει μετατροπή ενός αντικειμένου μιας κλάσης σε συμβολοσειρά, δεν έχουμε παρά να ορίσουμε στην κλάση μια μέθοδο με όνομα tostrig(). 4 Σύνθεση (παράδειγμα) pubic cass SprikerSystem { private Strig vave1, vave2; WaterSource source; foat f; void prit() { System.out.prit("vave1 =" + vave1); System.out.prit("vave2 =" + vave2); System.out.prit("f = " +f); System.out.prit("source =" + source); pubic static void mai (Strig[] args) { SprikerSystem x = ew SprikerSystem(); x.prit(); Περίγραμμα 5 Code re-use through compositio ad iheritace Iheritace ad hierarchy Οbject cass Exampe of iheritace Iheritace ad object costructio Code re-use through deegatio Iheritace ad access specifiers: protected Upcastig The keyword fia 6
2 Itroductio to Iheritace Itroductio to Iheritace Iheritace is oe of the mai techiques of object-orieted programmig (OOP) Usig this techique, a very geera form of a cass is first defied ad compied, ad the more speciaized versios of the cass are defied by addig istace variabes ad methods The speciaized casses are said to iherit the methods ad istace variabes of the geera cass Iheritace is the process by which a ew cass is created from aother cass The ew cass is caed a derived cass The origia cass is caed the base cass A derived cass automaticay has a the istace variabes ad methods that the base cass has, ad it ca have additioa methods ad/or istace variabes as we Iheritace is especiay advatageous because it aows code to be reused, without havig to copy it ito the defiitios of the derived casses 7 Copyright 2017 Pearso Ltd. A rights reserved. 8 Derived Casses Derived Casses Whe desigig certai casses, there is ofte a atura hierarchy for groupig them I a record-keepig program for the empoyees of a compay, there are houry empoyees ad saaried empoyees Houry empoyees ca be divided ito fu time ad part time workers Saaried empoyees ca be divided ito those o techica staff, ad those o the executive staff A empoyees share certai characteristics i commo A empoyees have a ame ad a hire date The methods for settig ad chagig ames ad hire dates woud be the same for a empoyees Some empoyees have speciaized characteristics Houry empoyees are paid a houry wage, whie saaried empoyees are paid a fixed wage The methods for cacuatig wages for these two differet groups woud be differet Copyright 2017 Pearso Ltd. A rights reserved. 9 Copyright 2017 Pearso Ltd. A rights reserved. 10 Derived Casses Withi Java, a cass caed Empoyee ca be defied that icudes a empoyees This cass ca the be used to defie casses for houry empoyees ad saaried empoyees I tur, the HouryEmpoyee cass ca be used to defie a PartTimeHouryEmpoyee cass, ad so forth A Cass Hierarchy Copyright 2017 Pearso Ltd. A rights reserved. 11 Copyright 2017 Pearso Ltd. A rights reserved. 12
3 Derived Casses Sice a houry empoyee is a empoyee, it is defied as a derived cass of the cass Empoyee A derived cass is defied by addig istace variabes ad methods to a existig cass (κλάση κληρονόμος) The existig cass that the derived cass is buit upo is caed the base cass (κλάση βάσης ή κλάση κληροδότης) The phrase exteds BaseCass must be added to the derived cass defiitio: pubic cass HouryEmpoyee exteds Empoyee Derived Casses Whe a derived cass is defied, it is said to iherit (κληρονομεί) the istace variabes ad methods of the base cass that it exteds Cass Empoyee defies the istace variabes ame ad hiredate i its cass defiitio Cass HouryEmpoyee aso has these istace variabes, but they are ot specified i its cass defiitio Cass HouryEmpoyee has additioa istace variabes wagerate ad hours that are specified i its cass defiitio Copyright 2017 Pearso Ltd. A rights reserved. 13 Copyright 2017 Pearso Ltd. A rights reserved. 14 Derived Casses Derived Cass (Subcass) Just as it iherits the istace variabes of the cass Empoyee, the cass HouryEmpoyee iherits a of its methods as we The cass HouryEmpoyee iherits the methods getname, gethiredate, setname, ad sethiredate from the cass Empoyee Ay object of the cass HouryEmpoyee ca ivoke oe of these methods, just ike ay other method A derived cass, aso caed a subcass (υποκλάση), is defied by startig with aother aready defied cass, caed a base cass (κλάση βάσης) or supercass (υπερκλάση), ad addig (ad/or chagig) methods, istace variabes, ad static variabes The derived cass iherits: a the pubic methods a the pubic ad private istace variabes, ad a the pubic ad private static variabes from the base cass The derived cass ca add more istace variabes, static variabes, ad/or methods Copyright 2017 Pearso Ltd. A rights reserved. 15 Copyright 2017 Pearso Ltd. A rights reserved. 16 Iherited Members A derived cass automaticay has a the istace variabes, a the static variabes, ad a the pubic methods of the base cass Members from the base cass are said to be iherited Defiitios for the iherited variabes ad methods do ot appear i the derived cass The code is reused without havig to expicity copy it, uess the creator of the derived cass redefies oe or more of the base cass methods Paret ad Chid Casses A base cass is ofte caed the paret cass A derived cass is the caed a chid cass These reatioships are ofte exteded such that a cass that is a paret of a paret... of aother cass is caed a acestor cass If cass A is a acestor of cass B, the cass B ca be caed a descedet of cass A Copyright 2017 Pearso Ltd. A rights reserved. 17 Copyright 2017 Pearso Ltd. A rights reserved. 18
4 Περίγραμμα Code re-use through compositio ad iheritace Iheritace ad hierarchy Οbject cass Empoyee getname sethiredate ame hiredate setname getname setname Exampe of iheritace Iheritace ad object costructio gethiredate gethiredate Code re-use through deegatio Iheritace ad access specifiers: protected Upcastig The keyword fia getname sethiredate ame hiredate setname HouryEmpoyee gethiredate sethiredate 19 Μ. Δικαιάκος, EΠΛ Κληρονομικότητα (iheritace) - σύνοψη Κληρονομικότητα (iheritace) - σύνοψη Ορολογία: Base cass: βάση, κληροδότης, ή supercass, υπερκλάση, κλάσηγονέας / πρόγονος. Derived cass: Κλάση-κληρονόμος ή subcass, υποκλάση, κλάσηπαιδί, απόγονος. Απεικόνιση: Όλες οι κλάσεις της Java κληρονομούν από μια γενική κλάση-κληροδότη, την Object. Υπάρχει επίσης η δυνατότητα να ορίζουμε κλάσεις ως κληρονόμους άλλων κλάσεων, πιο εξειδικευμένων από την Object. Η κληρονομικότητα μιας κλάσης από κάποια κλάσηκληροδότη καθορίζεται με χρήση της λέξης-κλειδί exteds. Π.χ.: pubic cass Deterget exteds Ceaser Στην περίπτωση αυτή η νέα κλάση (Deterget) αυτομάτως «κληρονομεί» όλα τα δημόσια και τα φιλικά στοιχεία (πεδία δεδομένων και μέθοδοι ) της βάσης της (Ceaser) Περίγραμμα Code re-use through compositio ad iheritace Iheritace ad hierarchy Οbject cass Exampe of iheritace Iheritace ad object costructio Code re-use through deegatio Iheritace ad access specifiers: protected Upcastig The keyword fia 23 Παράδειγμα Κληρονομικότητας cass Ceaser { private Strig s = "Ceaser"; pubic void apped(strig a) { s += a; pubic void diute() { apped("diute()"); pubic void appy() { apped(" appy()"); pubic void scrub() { apped(" scrub()"); pubic void prit() { System.out.prit(s); pubic static void mai (Strig[] args) { Ceaser x = ew Ceaser(); x.diute(); x.appy(); x.scrub(); x.prit(); 24
5 Παράδειγμα Κληρονομικότητας (συνέχεια) pubic cass Deterget exteds Ceaser{ pubic void scrub() { apped(" Deterget.scrub()"); super.scrub();//ca base-cass // Add methods to the iterface: pubic void foam() { apped(" foam()"); pubic static void mai(strig[] args) { Deterget x = ew Deterget(); x.diute(); x.appy(); x.scrub(); x.foam(); x.prit(); Ceaser.mai(args); 25 Παράδειγμα Κληρονομικότητας (συνέχεια) Η κλάση Ceaser έχει ορισμένες μεθόδους στην διαπροσωπεία της (iterface): apped(), diute(), appy(), scrub(), prit(). Η Deterget, επειδή προκύπτει από την Ceaser (μέσω κληρονομικότητας), υιοθετεί αυτόματα όλες αυτές τις μεθόδους στην διαπροσωπεία της : η κληρονομικότητα συνεπάγεται την επαναχρησιμοποίηση της διαπροσωπείας. Η κλάση-κληρονόμος μπορεί να τροποποιήσει την λειτουργικότητα μιας μεθόδου της κλάσης-κληροδότη, καλώντας ταυτόχρονα την αναλλοίωτη μέθοδο της κλάσης κληροδότη (με χρήση της λέξης-κλειδί super, η οποία παραπέμπει στην υπερκλάση-κληροδότη). Επιπλέον, η κλάση-κληρονόμος μπορεί να επεκτείνει την διαπροσωπεία της κλάσης-κληροδότη με πρόσθεση νέων μεθόδων. 26 Περίγραμμα Αρχικοποιήσεις και Κληρονομικότητα Code re-use through compositio ad iheritace Iheritace ad hierarchy Οbject cass Exampe of iheritace Iheritace ad object costructio Code re-use through deegatio Iheritace ad access specifiers: protected Upcastig The keyword fia Η κλάση-κληρονόμου έχει την ίδια διαπροσωπεία (iterface) με την υπερκλάση της, επεκτεινόμενη ίσως με κάποιες καινούριες μεθόδους και πιθανώς με τροποποιημένες κάποιες από τις κληρονομημένες μεθόδους. Τι περιέχει το αντικείμενο που δημιουργείται σύμφωνα με μια κλάση-κληρονόμο; Ένα υποαντικείμενο (subobject) της κλάσης-κληροδότη. Το υποαντικείμενο αυτό είναι το ίδιο σαν να είχε δημιουργηθεί ανεξάρτητα από την κλάση-κληροδότη και όχι εμμέσως από την κλάση-κληρονόμο. Ωστόσο το υποαντικείμενο αυτό είναι περιτυλιγμένο (wrapped) στο αντικείμενο της κλάσης-κληρονόμου. Χρειάζεται προσοχή στην αρχικοποίηση του υποαντικειμένου Αρχικοποιήσεις και Κληρονομικότητα Η κατάλληλη αρχικοποίηση του υποαντικειμένου, που αντιστοιχεί στην κλάση-κληροδότη, εξασφαλίζεται με την κατάλληλη κλήση του κατασκευαστή (costructor) της κλάσης-κληροδότη. Η κλήση προς τον κατασκευαστή γίνεται υπόρρητα από την Java, η οποία εισάγει αυτομάτως στο σώμα του κατασκευαστή τής κλάσηςκληρονόμου μια κλήση προς τον κατασκευαστή εκείνο τού κληροδότη, ο οποίος δεν επιδέχεται παραμέτρων. Η κλήση των κατασκευαστών σε μια σειρά κληρονομικότητας ξεκινάει από τον πιο απόμακρο κληροδότη, προχωρώντας προς τον τελευταίο κληρονόμο αφού: Tο αντικείμενο μιας κλάσης-κληροδότη πρέπει να έχει αρχικοποιηθεί πριν να μπορέσουν οι κατασκευαστές των κλάσεων-κληρονόμων να το χρησιμοποιήσουν. 29 Παράδειγμα cass Art { Art() { System.out.prit( à Art"); cass Drawig exteds Art { Drawig() { System.out.prit( à Draw"); pubic cass Cartoo exteds Drawig { Cartoo() { System.out.prit( à Cartoo"); pubic static void mai(strig[] args) { Cartoo x = ew Cartoo(); 30
6 cass Art { Art() { System.out.prit( à Art"); cass Drawig exteds Art { Drawig() { super(); System.out.prit( à Draw"); pubic cass Cartoo exteds Drawig{ Cartoo() { super(); System.out.prit( à Cartoo"); pubic static void mai(strig[] args) { Cartoo x = ew Cartoo(); Μ. Δικαιάκος, EΠΛ Κληρονομικότητα και Κατασκευαστές Στο προηγούμενο παράδειγμα και για όλες τις κλάσεις στην σειρά κληρονομικότητας που εξετάσαμε, έχουμε προκαθορισμένους (defaut) κατασκευαστές χωρίς παραμέτρους. Επομένως, η προκαθορισμένη συμπεριφορά της JAVA να εισαγάγει υπόρρητα κλήσεις προς τους κατασκευαστές των κληροδοτών, χωρίς πέρασμα παραμέτρων, δεν δημιουργεί πρόβλημα. Σε διαφορετική περίπτωση (υπερφόρτωση κατασκευαστών, απουσία προκαθορισμένου κατασκευαστή), ο προγραμματιστής πρέπει να καθορίσει ρητά την κλήση προς τον κατασκευαστή της κλάσης-κληροδότη, περνώντας και τις κατάλληλες παραμέτρους. Η κλήση ενός κατασκευαστή της υπερκλάσης γίνεται με χρήση της μεθόδου super(). 32 cass Game { Game(it i) { System.out.prit("Game costr"); cass BoardGame exteds Game { BoardGame(it i) { super(i); System.out.prit("BoardGame cost"); pubic cass Chess exteds BoardGame { Chess() { if ot used, compier super(11); ooks for super() System.out.prit("Chess costr"); pubic static void mai(strig[] args) { Chess x = ew Chess(); Μ. Δικαιάκος, EΠΛ Σύνθεση και Κληρονομικότητα pubic cass PaceSettig exteds Custom { Spoo sp; Fork frk; Kife k; DierPate p; PaceSettig(it i) { super(i + 1); sp = ew Spoo(i + 2); frk = ew Fork(i + 3); k = ew Kife(i + 4); p=ew DierPate(i + 5); pubic static void mai (Strig[] args) { PaceSettig x=ew PaceSettig(9); Ο μεταφραστής μας εξαναγκάζει να αρχικοποιήσουμε τους κληροδότες, αλλά εμείς πρέπει να φροντίσουμε για την αρχικοποίηση των αντικειμένων-στοιχείων. 34 Quiz cass Istrumet { Istrumet() { Άλλη εντολή πριν την Istrumet(it i) { this() δεν επιτρέπεται pubic cass Wid exteds Istrumet { Wid() { Wid(it i) { Μέσω της this(), καλείται // super(); o κατασκευαστής Wid(), ο οποίος με τη σειρά του καλεί τον Istrumet() this(); pubic static void mai(strig args[]) { Wid fute = ew Wid(8); Ποιός κατασκευαστής της Istrumet θα κληθεί ; Πόσες φορές ; 35 Απόκρυψη Ονομάτων cass Homer { char doh(char c) { System.out.prit("doh(char)"); retur 'd'; foat doh(foat f) { System.out.prit("doh(foat)"); retur 1.0f; pubic cass Hide { pubic static void mai(strig[] args){ Bart b = ew Bart(); b.doh(1); // doh(foat) used b.doh('x'); b.doh(1.0f); b.doh(ew Mihouse()); Η υπερφόρτωση λειτουργεί ανεξαρτήτως κληρονοµικότητας. cass Mihouse { cass Bart exteds Homer { void doh(mihouse m) { 36
7 Περίγραμμα Σύνθεση και Κληρονομικότητα Code re-use through compositio ad iheritace Iheritace ad hierarchy Οbject cass Exampe of iheritace Iheritace ad object costructio Code re-use through deegatio Iheritace ad access specifiers: protected Upcastig The keyword fia Σύνθεση : Η σύνθεση χρησιμοποιείται γενικότερα όταν χρειαζόμαστε τα χαρακτηριστικά μιας υπάρχουσας κλάσης και όχι την διαπροσωπεία της. Αντιστοιχεί σε has-a σχέσεις ανάμεσα στις κλάσεις. Κληρονομικότητα : Χρησιμοποιείται όταν θέλουμε να φτιάξουμε μιαν ειδική περίπτωση κάποιας κλάσης. Αν μια κλάση Β κληρονομεί από μια κλάση Α, η σχέση τους συνοψίζεται ως εξής : Η νέα κλάση Β είναι ένας τύπος της υπάρχουσας κλάσης Α. Αντιστοιχεί σε is-a σχέσεις ανάμεσα στις κλάσεις Αντιπροσώπευση - deegatio Αντιπροσώπευση - deegatio pubic cass SpaceShipCotros { void up(it veocity) { void dow(it veocity) { void eft(it veocity) { void right(it veocity) { void forward(it veocity) { void back(it veocity) { void turboboost() { Θέλουμε να δημιουργήσουμε μια κλάση SpaceShip, η οποία να εμπεριέχει τις λειτουργικότητες της SpaceShipCotros Ενδιάμεση λύση μεταξύ της σύνθεσης και της κληρονομικότητας: Τοποθέτηση αντικειμένου της αρχικής κλάσης (SpaceShipCotros) ως μέλους (πεδίου δεδομένων) στην κλάση που κατασκευάζουμε (SpaceShip). Έκθεση όλων των μεθόδων που μας ενδιαφέρουν από την αρχική κλάση μέσω των αντικειμένων της νέας κλάσης. Έτσι: Εμπεριέχεται αντικείμενο SpaceShipCotros στα μέλη του SpaceShip Αντικείμενα SpaceShip δίνουν άμεση πρόσβαση στις μεθόδους του SpaceShipCotros που χρειάζoνται Αντιπροσώπευση - deegatio pubic cass SpaceShipCotros { void up(it veocity) { void dow(it veocity) { void eft(it veocity) { void right(it veocity) { void forward(it veocity) { void back(it veocity) { void turboboost() { pubic cass SpaceShipDeegatio{ private Strig ame; private SpaceShipCotros cotros = ew SpaceShipCotros(); pubic SpaceShipDeegatio(Strig ame) { this.ame = ame; pubic void back(it veocity) { cotros.back(veocity); pubic cass SpaceShip exteds SpaceShipCotros { private Strig ame; 41 Μ. Δικαιάκος, EΠΛ233 42
8 Περίγραμμα Προσδιοριστής πρόσβασης: protected Code re-use through compositio ad iheritace Iheritace ad hierarchy Οbject cass Exampe of iheritace Iheritace ad object costructio Code re-use through deegatio Iheritace ad access specifiers: protected Upcastig The keyword fia import java.uti.*; cass Viai { private it i; pubic Viai(it ii) { i = ii; protected it read() { retur i; protected void set(it ii) { i = ii; pubic it vaue(it m) { retur m*i; pubic cass Orc exteds Viai { private it j; pubic Orc(it jj) { super(jj); j = jj; pubic void chage(it x) { set(x); Η χρήση του protected σημαίνει ότι το αντίστοιχο στοιχείο μπορεί να χρησιμοποιηθεί μέσα στην βιβλιοθήκη στην οποία ανήκει, στις κλάσεις που κληρονομούν από την κλάση του στοιχείου, όχι όμως σε άλλες άσχετες κλάσεις Σύνοψη προσδιοριστών πρόσβασης Περίγραμμα Ορατότητα pubic protected defaut private Μέσα στην ίδια κλάση ναι ναι ναι ναι Κλάση στο ίδιο package ναι ναι ναι όχι Υποκλάση στο ίδιο package ναι ναι ναι όχι Υποκλάση εκτός package ναι ναι όχι όχι Οποιαδήποτε κλάση (όχι υποκλάση) εκτός package ναι όχι όχι όχι Code re-use through compositio ad iheritace Iheritace ad hierarchy Οbject cass Exampe of iheritace Iheritace ad object costructio Code re-use through deegatio Iheritace ad access specifiers: protected Upcastig The keyword fia Αναβάθμιση κ. κληρονομικότητα Αναβάθμιση και κληρονομικότητα import java.uti.*; cass Istrumet { pubic void pay() { static void tue(istrumet i) { //... i.pay(); cass Wid exteds Istrumet { pubic static void mai(strig[] args){ Wid fute = ew Wid(); Istrumet.tue(fute); Υπάρχει λάθος; Upcastig Η κληρονομικότητα συνεπάγεται ότι οποιοδήποτε «μήνυμα» στέλνεται σε μια κλάση-κληροδότη, αυτό μπορεί να σταλεί και στις κλάσεις-κληρονόμους της. Αυτό σημαίνει ότι όλες οι προσβάσιμες (δημόσιες ή φιλικές) μέθοδοι που ανήκουν σε μια κλάσηκληροδότη, ενυπάρχουν και στις κλάσειςκληρονόμους της. Δεν συμβαίνει απαραίτητα και το αντίστροφο Επομένως, οι μέθοδοι pay και tue του παραδείγματός μας «υπάρχουν» και στα αντικείμενα τύπου Wid
9 getname setname gethiredate sethiredate Αναβάθμιση - upcastig Παρατηρείστε ότι η tue καλείται από την Wid.mai με παράμετρο τύπου Wid χωρίς να παραπονεθεί ο μεταφραστής της Java. cass Wid exteds Istrumet { Wid fute = ew Wid(); Istrumet.tue(fute); Τι είναι το upcastig; Η αναβάθμιση ενός χειριστήριου τύπου Wid σε χειριστήριο τύπου Istrumet. Η μετατροπή γίνεται αυτόματα. Μ. Δικαιάκος, EΠΛ Αναβάθμιση Quiz Λόγω της κληρονομικότητας, ένα αντικείμενο τύπου Wid είναι επίσης αντικείμενο τύπου Istrumet. Στη διαπροσωπεία (iterface) του Wid υπάρχουν όλες οι μέθοδοι της διαπροσωπείας του Istrumet. package ep233; import java.uti.*; cass Istrumet { private static it k = 8; void pay() { System.out.prit( pay istrumet ); static void tue(istrumet i) { System.out.prit( Private k: + k); i.pay(); cass Wid exteds Istrumet { pubic static void mai(strig[] args) { Wid fute = ew Wid(); fute.k = 9; fute.tue(fute); Mήνυμα σφάλματος αφού δεν έχουμε πρόσβαση στην k Περίγραμμα Η χρήση του fia Code re-use through compositio ad iheritace Iheritace ad hierarchy Οbject cass Η λέξη fia έχει διάφορες χρήσεις στην Java, αναλόγως των συμφραζομένων και αφορά σε: Δεδομένα. Μεθόδους Κλάσεις Exampe of iheritace Iheritace ad object costructio Code re-use through deegatio Iheritace ad access specifiers: protected Upcastig The keyword fia Γενικά σηματοδοτεί κάτι το οποίο δεν μπορεί ν αλλάξει. Δεδομένα fia: Με την fia μπορούμε να ορίζουμε σταθερές στην μεταφράση (compie-time costats), οι οποίες ανήκουν σε αρχέγονους τύπους. Μπορούμε επίσης να ορίζουμε σταθερές στην εκτέλεση (ru-time costats), οι οποίες αρχικοποιούνται κάποια στιγμή στον χρόνο εκτέλεσης και δεν αλλάζουν έκτοτε. Στην περίπτωση χειριστηρίων που καθορίζονται ως fia, τα ίδια τα χειριστήρια γίνονται «σταθερές», όχι όμως και τα περιεχόμενα των αντικειμένων στα οποία παραπέμπουν. Πεδία που ορίζονται σαν fia και static αντιστοιχούν σε μια μοναδική θέση μνήμης, τα περιεχόμενα της οποία δεν μπορούν να αλλαχθούν
10 Παράδειγμα cass Vaue { it i = 1; pubic cass FiaData { fia it i1 = 9; static fia it VAL_TWO = 99; pubic static fia it VAL_THREE=39; fia it i4 =(it)(math.radom()*20); static fia it i5 = (it)(math.radom()*20); Vaue v1 = ew Vaue(); fia Vaue v2 = ew Vaue(); static fia Vaue v3 = ew Vaue(); // Arrays: fia it[] a = { 1, 2, 3, 4, 5, 6 ; Compie-time costats Typica pubic costat Ru-time costats Τελικές Παράμετροι cass Gizmo { pubic void spi() { pubic cass FiaArgumets { void with(fia Gizmo g) { g = ew Gizmo(); Προκύπτει σφάλμα: παράμετροι οι g.spi(); οποίες είναι fia δεν μπορούν να αλλαχθούν. void without(gizmo g) { g = ew Gizmo(); g.spi(); void f(fia it i) { i++; it g(fia it i) { retur i + 1; pubic static void mai(strig[] args) { FiaArgumets bf = ew FiaArgumets(); bf.without(u); bf.with(u); Κενές Τελικές (Bak fias) Τελικές Μέθοδοι H Java επιτρέπει τον ορισμό πεδίων σαν fia, χωρίς να γίνεται αρχικοποίηση τους στο σημείο του ορισμού. Στην περίπτωση αυτή τα πεδία-σταθερές πρέπει να αρχικοποιηθούν μέσα στον κατασκευαστή της αντίστοιχης κλάσης διαφορετικά ο μεταφραστής διαμαρτύρεται. Έτσι, μας δίνεται η δυνατότητα να έχουμε διαφορετικές σταθερές μέσα σε διαφορετικά αντικείμενα της ίδιας κλάσης. Υπάρχουν δύο λόγοι για τους οποίους δηλώνουμε μια μέθοδο σαν fia: Για να αποτρέψουμε την αναίρεση (overwrittig) της μεθόδου μέσα από κάποια κλάση που την κληρονομεί, και να διατηρήσουμε έτσι το νόημά της. Για λόγους απόδοσης: ο κώδικας μεθόδων fia μπορεί να «ενσωματώνεται» (iie) από τον μεταφραστή στο κάθε σημείο κλήσης της μεθόδου. Κάθε ιδιωτική μέθοδος σε μια κλάση είναι υπορρήτως τελική αφού δεν επιτρέπεται πρόσβαση προς αυτήν από κάποιον κληρονόμο Ιδιωτικές και Τελικές Μέθοδοι Τελικές Κλάσεις pubic cass Test { fia void foo(it i) { pubic cass Test1 exteds Test { void foo(it j) { void foo(char c) { Προκύπτει σφάλμα στην μετάφραση (πού και γιατί); pubic cass Test { private void foo(it i) { pubic cass Test1 exteds Test { void foo(it j) { void foo(char c) { Δεν προκύπτει σφάλμα στην μετάφραση. Η δήλωση μιας κλάσης Foo ως fia, υποδηλώνει ότι η κλάση αυτή δεν μπορεί να κληροδοτηθεί σε άλλες κλάσεις. Κατ αυτόν τον τρόπο, δηλαδή, αποτρέπουμε την κληρονομικότητα από την Foo
11 Αρχικοποίηση και Κληρονομικότητα cass Isect { it i = 9; it j; Isect() { prt("i = " + i + ", j = " + j); j=39; static it x1 = prt("static Isect.x1 iitiaized"); static it prt(strig s) { System.out.prit(s); retur 47; pubic cass Beete exteds Isect { it k = prt("beete.k iitiaized"); Beete() { prt("k = " + k); prt("j = " + j); static it x2 =prt("static Beete.x2 iitiaized"); pubic static void mai(strig[] args){ prt("beete costructor"); Beete b = ew Beete(); 61 Έξοδος Παραδείγματος static Isect.x iitiaized Static Beete.x2 iitiaized Beete costructor i = 9, j = 0 Beete.k iitiaized k = 47 i = 39 Βήματα στην εκτέλεση του jaba Beete: Φόρτωση της κλάσης Beete Αναζήτηση και Φόρτωση της ιεραρχίας των κληροδοτών της Beete (δηλαδή της Isect). Στατική αρχικοποίηση της Isect και μετά της Beete. Δημιουργία αντικειμένων και αρχικοποίηση πεδίων τους (σε u). Κλήση κατασκευαστών Αρχικοποίηση istace variabes Εκτέλεση εντολών κατασκευαστή 62 Πολλαπλή δήλωση της mai H μέθοδος mai μπορεί να οριστεί σε καθεμιά από τις κλάσεις μας. Αν σε ένα αρχείο Foo.java υπάρχουν πολλές κλάσεις και καθεμιά τους έχει ορισμένη μια διαφορετική mai, η κλήση java Foo θα προκαλέσει την εκτέλεση της mai που ορίζεται στην δημόσια κλάση του αρχείου (την Foo). Αν μέσα στο Foo.java ορίζεται η κλάση Goo, η οποία έχει μια δημόσια μέθοδο mai, τότε η κλήση java Goo θα εκτελέσει την μέθοδο Goo.mai(), έστω κι αν η Goo δεν είναι δημόσια. Ο ορισμός μεθόδων mai σε κάθε κλάση διευκολύνει ενίοτε τον έλεγχο της ορθότητας των κλάσεων. 63
ΕΠΛ233 Επαναχρησιμοποίηση Κλάσεων
Επαναχρησιμοποίηση Κλάσεων 2 Επαναχρησιμοποίηση Κλάσεων Σύνθεση (composition): σε μια κλάση εντάσσουμε ως στοιχεία χειριστήρια άλλων κλάσεων. Κληρονοµικότητα (inheritance): επεκτείνουμε υπάρχουσες κλάσεις,
Κληρονομικότητα. Επαναχρησιμοποίηση Κλάσεων. Σύνθεση (παράδειγμα) Σύνθεση. χειριστήρια άλλων κλάσεων.
Επαναχρησιμοποίηση Κλάσεων! Σύνθεση (composition): σε μια κλάση εντάσσουμε ως στοιχεία χειριστήρια άλλων κλάσεων. Κληρονομικότητα Mailbox Message Queue! Κληρονομικότητα (inheritance): επεκτείνουμε υπάρχουσες
ΠΟΛΥΜΟΡΦΙΣΜΟΣ. Chapter 8, Savitch. Περίγραμμα. Introduction to Polymorphism. Introduction to Polymorphism. Βασικό Ερώτημα
Περίγραμμα ΠΟΛΥΜΟΡΦΙΣΜΟΣ Chapter 8, Savitch Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access
ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA
Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)
Τι σημαίνει; n Για την αποδοτική δέσμευση δομών δεδομένων μη. n Για την αποφυγή «διαρροών μνήμης» (memory leaks).
Δέσμευση Μνήμης (memory allocatio) Τι σημαίνει; Διαχείριση Μνήµης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες δέσμευσης μνήμης:
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Κληρονομικότητα (Inheritance) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κληρονομικότητα και Επαναχρησιμοποίηση - Υποκλάσεις/Υπερκλάσεις - Απόκρυψη ονομάτων - Το super, protected
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο προηγούμενο παράδειγμα οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο είχαν κάποιο
Αντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο προηγούμενο παράδειγμα οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο είχαν κάποιο
ΔΙΑΠΡΟΣΩΠΕΙΕΣ. Αφαιρετικές Μέθοδοι. Αφαιρετικές Μέθοδοι. Αφαιρετικές Κλάσεις
Αφαιρετικές Μέθοδοι Istrumet Strig what() ΔΙΑΠΡΟΣΩΠΕΙΕΣ Wid Strig what() Percussio Strig what() Striged Strig what() WoodWid Strig what() Brass Strig what() Στα προηγούμενα παραδείγματα, οι μέθοδοι της
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο παράδειγμα με το τμήμα πανεπιστημίου οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο
Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:
Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 3 Java Classes Java Objects
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?
Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου
Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής
Κλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12
Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);
Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας
Διαγράμματα Κλάσεων στη Σχεδίαση
Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν
(Διαφάνειες Νίκου Βιδάκη)
(Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό
Παράδειγμα Σύνθεσης: Class Name
Παράδειγμα Σύνθεσης: Class Name class Name{ private String first; private String middle; private String last; // Object represent names of people //e.g., "William" //e.g., "Jefferson" //e.g., "Clinton"
EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)
EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 5: Component Adaptation Environment (COPE) Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class
Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι
Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση
class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video
ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη
Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#
Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2
Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Ειδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 2: Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ
ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ
ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:
Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))
Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6
Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:
Το πρόγραμμα 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 υποστηρίζει
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός
Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1
Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί
ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης
ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός
Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )
ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση
ΕΞΑΙΡΕΣΕΙΣ στη JAVA. Σφάλματα προγραμμάτων. Μειονεκτήματα. Προσέγγιση της JAVA
ΕΞΑΙΡΕΣΕΙΣ στη JAVA Σφάλματα προγραμμάτων Τα σφάλματα ενός προγράμματος προκαλούνται από διάφορες καταστάσεις, όπως: Εξάντληση διαθέσιμης ιδεατής μνήμης, προσπάθεια ανάγνωσης εκτός των ορίων ενός πίνακα,
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Κληρονομικότητα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ
ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Εμβέλεια Μεταβλητών Εμβέλεια = το τμήμα του προγράμματος στο οποίο έχει ισχύ ή είναι ορατή η μεταβλητή.
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial
ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια
1. For each of the following power series, find the interval of convergence and the radius of convergence:
Math 6 Practice Problems Solutios Power Series ad Taylor Series 1. For each of the followig power series, fid the iterval of covergece ad the radius of covergece: (a ( 1 x Notice that = ( 1 +1 ( x +1.
Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD
(Object Oriented Programming) Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος Πακέτα (Packages) Φωλιασμένες
ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός
Αντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η
Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος
Εισαγωγή στον Προγ/μό Η/Υ
Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για
Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 6: C++ ΚΛΑΣΕΙΣ, ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ, ΠΟΛΥΜΟΡΦΙΣΜΟΣ Κληρονομικότητα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Oracle SQL Developer An Oracle Database stores and organizes information. Oracle SQL Developer is a tool for accessing and maintaining the data
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων
Μέθοδοι Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Οιµέθοδοικαθορίζουντηνσυµπεριφοράενόςαντικειµένου. Τα βασικά µέρη από τα οποία αποτελείται µία µέθοδος είναι τα εξής: Το όνοµα της µεθόδου
Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and
ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ
ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ Χριστοδούλου Αντρέας Λεμεσός 2014 2 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding
2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008
Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει
ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ
ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ Μάριος Σταυρίδης Λεμεσός, Ιούνιος 2017 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Αντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java
Αρχικοποίηση Αντικειµένων & Κλάσεων στη Java Object Instantiation & Class Initialisation Κώστας Σαΐδης saiko@di.uoa.gr http://daemon.di.uoa.gr/daemon/issue4 Μάρτιος 2004 Η Αρχή είναι το ήµισυ του Παντός
On Generating Relations of Some Triple. Hypergeometric Functions
It. Joural of Math. Aalysis, Vol. 5,, o., 5 - O Geeratig Relatios of Some Triple Hypergeometric Fuctios Fadhle B. F. Mohse ad Gamal A. Qashash Departmet of Mathematics, Faculty of Educatio Zigibar Ade
Αντικειµενοστραφής Προγραµµατισµός
Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα
Προγράμματα με δομή Κληρονομικότητας
Προγράμματα με δομή Κληρονομικότητας Η μέθοδος print της εφαρμογής DoME Η μέθοδος print στην κλάση Item τυπώνει: title: A Swingin Affair (64 mins) my favorite Sinatra album title: O Brother, Where Art
Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook
Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook Βήμα 1: Step 1: Βρείτε το βιβλίο που θα θέλατε να αγοράσετε και πατήστε Add to Cart, για να το προσθέσετε στο καλάθι σας. Αυτόματα θα
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
Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη
9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή
L.K.Gupta (Mathematic Classes) www.pioeermathematics.com MOBILE: 985577, 4677 + {JEE Mai 04} Sept 0 Name: Batch (Day) Phoe No. IT IS NOT ENOUGH TO HAVE A GOOD MIND, THE MAIN THING IS TO USE IT WELL Marks:
Ανάλυση άσκησης. Employee. SalariedEmployee CommissionEmployee HourlyEmployee. BasePlusCommissionEmployee
Μία εταιρεία πληρώνει τους εργαζόμενους της σε εβδομαδιαία βάση. Οι αποδοχές των εργαζόμενων υπολογίζονται με τέσσερις διαφορετικούς τρόπους : Α) Μισθωτοί (SalariedEmployee), πληρώνονται με σταθερό ποσό
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Η ΜΕΤΑΒΛΗΤΗ THIS Η μεταβλητή this Η μεταβλητή (παράμετρος) this Μια κρυφή παράμετρος η οποία περνάει σε κάθε μέθοδο και κρατάει μια αναφορά
Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 9η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.
DESIGN OF MACHINERY SOLUTION MANUAL -7-1! PROBLEM -7 Statement: Design a double-dwell cam to move a follower from to 25 6, dwell for 12, fall 25 and dwell for the remader The total cycle must take 4 sec
Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13
Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις
derivation of the Laplacian from rectangular to spherical coordinates
derivation of the Laplacian from rectangular to spherical coordinates swapnizzle 03-03- :5:43 We begin by recognizing the familiar conversion from rectangular to spherical coordinates (note that φ is used
MATH 38061/MATH48061/MATH68061: MULTIVARIATE STATISTICS Solutions to Problems on Matrix Algebra
MATH 38061/MATH48061/MATH68061: MULTIVARIATE STATISTICS Solutios to Poblems o Matix Algeba 1 Let A be a squae diagoal matix takig the fom a 11 0 0 0 a 22 0 A 0 0 a pp The ad So, log det A t log A t log
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία
Ειδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 6: Threads Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους Σύνοψη των βασικών λειτουργιών
Αντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 16/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Τύποι της Java Primitives vs References Οι πρωταρχικοί
Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
ΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA
Βασικά στοιχεία προγραµµατισµού στη JAVA Διαχείριση Μνήµης 3 Δέσμευση Μνήμης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1
Αντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1
Assalamu `alaikum wr. wb.
LUMP SUM Assalamu `alaikum wr. wb. LUMP SUM Wassalamu alaikum wr. wb. Assalamu `alaikum wr. wb. LUMP SUM Wassalamu alaikum wr. wb. LUMP SUM Lump sum lump sum lump sum. lump sum fixed price lump sum lump
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 8/4/2008. Πίνακες (Arrays)
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 8/4/2008 Πίνακες (Arrays) 1-D 0 1 2 2-D 3-D 0 0 1 1 2 2 3 3 array[3][2] array[0][1] Γενική δήλωση πίνακα: τύπος_στοιχείων [ ] όνομα = new τύπος_στοιχείων [μήκος]; // 1-D και φυσικά
Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα
Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής
Προγραμματισμός Ι (HY120)
Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 9: Κληρονομικότητα (Inheritance)
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 9: Κληρονομικότητα (Inheritance) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 9 Κληρονομικότητα (Inheritance) Υπάρχουν κλάσεις που
Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;
Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 8 : ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ & ΠΟΛΥΜΟΡΦΙΣΜΟΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 8 : ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ & ΠΟΛΥΜΟΡΦΙΣΜΟΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (1/3) Στην αρχή της κληρονομικότητας βασίζεται ο σχεδιασμός και η υλοποίηση συστημάτων Η κληρονομικότητα χρησιμοποιείται
ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΕΝΙΣΧΥΣΗ ΤΩΝ ΚΟΜΒΩΝ ΟΠΛΙΣΜΕΝΟΥ ΣΚΥΡΟΔΕΜΑΤΟΣ ΜΕ ΒΑΣΗ ΤΟΥΣ ΕΥΡΩΚΩΔΙΚΕΣ
Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΕΝΙΣΧΥΣΗ ΤΩΝ ΚΟΜΒΩΝ ΟΠΛΙΣΜΕΝΟΥ ΣΚΥΡΟΔΕΜΑΤΟΣ ΜΕ ΒΑΣΗ ΤΟΥΣ ΕΥΡΩΚΩΔΙΚΕΣ Σωτήρης Παύλου Λεμεσός, Μάιος 2018 i ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι
Παύλος Εφραιµίδης. Java. Κληρονοµικότητα
κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά
Γενικά (για τις γραπτές εξετάσεις)
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε