ΠΟΛΥΜΟΡΦΙΣΜΟΣ. Chapter 8, Savitch. Περίγραμμα. Introduction to Polymorphism. Introduction to Polymorphism. Βασικό Ερώτημα
|
|
- Νικολίτα Γούσιος
- 6 χρόνια πριν
- Προβολές:
Transcript
1 Περίγραμμα ΠΟΛΥΜΟΡΦΙΣΜΟΣ Chapter 8, Savitch Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad istace variables Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method 1 2 Itroductio to Polymorphism There are three mai programmig mechaisms that costitute object-orieted programmig (OOP) Ecapsulatio (Ενθυλάκωση) Iheritace (Κληρονομικότητα) Polymorphism (Πολυμορφισμός) Polymorphism is the ability to associate may meaigs to oe method It does this through a special mechaism kow as late bidig or dyamic bidig import java.util.*; class Istrumet { public void play() { static void tue(istrumet i) { i.play(); class Wid exteds Istrumet { public static void mai(strig[] args) { Wid flute = ew Wid(); Istrumet.tue(flute); // Upcastig Copyright 2017 Pearso Ltd. All rights reserved. 3 Μ. Δικαιάκος, EΠΛ233 4 Βασικό Ερώτημα Itroductio to Polymorphism static void tue(istrumet i) { i.play(note.middle_c); Όπως είπαμε, στην tue μπορούμε να "περάσουμε" χειριστήρια αντικειμένων που κληρονομούν από την κλάση Istrumet. Εφόσον μια κλάση-κληρονόμος (π.χ. Wid) καθορίζει τη "δική" της μέθοδο play, η κλήση της play μέσα από την tue θα γίνει σύμφωνα με αυτή την μέθοδο της κλάσηςκληρονόμου, όταν στην tue περάσουμε χειριστήριο της κληρονόμου. Iheritace allows a base class to be defied, ad other classes derived from it Code for the base class ca the be used for its ow objects, as well as objects of ay derived classes Polymorphism allows chages to be made to method defiitios i the derived classes, ad have those chages apply to the so3ware wri6e for the base class 5 Copyright 2017 Pearso Ltd. All rights reserved. 6
2 Ερώτημα Περίγραμμα static void tue(istrumet i) { i.play(note.middle_c); Πώς μπορεί να γνωρίζει ο μεταγλωττιστής ότι η παράμετρος που περνάει σε κάποιο σημείο προς την tue είναι κλάσης Wid και όχι Brass ή Striged, ώστε να καλέσει την κατάλληλη tue; Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method 7 8 Πρόσδεση μεθόδου - bidig Early vs Late Bidig static void tue(istrumet i) { i.play(note.middle_c); public void play(note ) { mypr("brass.play()"); H διασύνδεση μιας κλήσης μεθόδου με το «σώμα» της μεθόδου (δηλαδή τον κώδικα που θα εκτελεστεί). The process of associatig a method defiitio with a method ivocatio is called bidig If the method defiitio is associated with its ivocatio whe the code is compiled, that is called early bidig -πρώιμη/στατική πρόσδεση (early bidig): Γίνεται πριν την εκτέλεση του προγράμματος, από τον μεταγλωττιστή (compiler) και τoν συνδετήρα (liker). If the method defiitio is associated with its ivocatio whe the method is ivoked (at ru time), that is called late bidig or dyamic bidig Λόγω κληρονομικότητας ο μεταφραστής δεν μπορεί να γνωρίζει στο χρόνο-μετάφρασης ποιές παράμετροι θα περαστούν στην tue και πότε... Η λύση που υιοθετείται από τις Α/Σ ΓΠ λέγεται όψιμη πρόσδεση (late bidig) ή δυναμική πρόσδεση ή πρόσδεση στον χρόνο εκτέλεσης (ru-time bidig) Όψιμη (Καθυστερημένη) Πρόσδεση Πολυμορφική συμπεριφορά Η όψιμη πρόσδεση στηρίζεται σε έναν μηχανισμό, ο οποίος μπορεί να καθορίσει τον τύπο ενός αντικειμένου την στιγμή της εκτέλεσης, και να καλέσει την κατάλληλη μέθοδο. Χάρη στην όψιμη πρόσδεση, μια μέθοδος μπορεί να γραφτεί σε μια κλάση βάσης για την εκτέλεση μιας λειτουργίας, ακόμα και αν αποσπάσματα αυτής της λειτουργίας δεν έχουν ακόμα καθοριστεί. Δεδομένου ότι η Java υποστηρίζει όψιμη πρόσδεση μεθόδων, μπορείτε να: αναπτύσετε τον κώδικά σας για να συνεργάζεται με μια κλάση βάσης(base class) γνωρίζοντας ότι ο κώδικάς σας θα μπορεί να συνεργαστεί σωστά και με όλoυς τους κληρονόμους της κλάσης βάσης. Με άλλα λόγια, μπορείτε να στέλνετε ένα μήνυμα σε ένα αντικείμενο, και αφήνετε το αντικείμενο ν' αποφασίσει πώς θα «εκτελέσει» το μήνυμα
3 Πολυμορφικές κλήσεις Χειριστήριο Circle Cast "up" Circle Shape s = ew Circle(); // upcastig Shape Square Lie s.; // polymorphic call results to callig Circle.draw Η κλήση της μεθόδου s.πάνω σε χειριστήριο της κλάσης-κληροδότη, προκαλεί την κλήση της Circle. του κληρονόμου, λόγω όψιμης πρόσδεσης. Πολυμορφικές κλήσεις public class Shapes { public static Shape radshape() { switch((it)(math.radom() * 3)) { default: case 0: retur ew Circle(); // upcastig case 1: retur ew Square(); // upcastig case 2: retur ew Triagle(); // upcastig public static void mai(strig[] args) { Shape[] s = ew Shape[9]; for (it i = 0; i < s.legth; i++) s[i] = radshape(); for (it i = 0; i < s.legth; i++) s[i].; // polymorphic calls Περίγραμμα Πολυμορφισμός κ. επεκτασιμότητα Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method Η κληρονομικότητα και ο πολυμορφισμός απλοποιούν την πρόσθεση νέων κλάσεων, που κληρονομούν από την κοινή κλάση-κληροδότη. Οι μέθοδοι που διατίθενται στην διαπροσωπεία της κλάσηςκληροδότη δεν χρειάζεται ν' αλλάξουν για την εξυπηρέτηση των νέων κλάσεων Πολυμορφισμός κ. επεκτασιμότητα Πολυμορφισμός κ. επεκτασιμότητα Wid void play() Strig what() void adjust() Istrumet void play() Strig what() void adjust() Percussio void play() Strig what() void adjust() Striged void play() Strig what() void adjust() Π.χ. οι κλάσεις Brass και WoodWid μπορούν να χρησιμοποιήσουν την tue, η οποία έχει οριστεί πριν καν την δημιουργία τους. Ακόμη κι αν η tue() βρίσκεται σε διαφορετικό αρχείο και προσθέσουμε νέες μεθόδους στην διαπροσωπεία τής Istrumet, η tue() θα δουλέψει σωστά χωρίς επαναμετάφραση. WoodWid void play() Strig what() void adjust() Brass void play() Strig what() void adjust() 17 18
4 Επεκτασιµότητα (παράδειγµα) import java.util.*; class Istrumet { public void play() { public Strig what() { public void adjust() { class Wid exteds Istrumet { public void play() { public Strig what() { public void adjust() { class Percussio exteds Istrumet { public void play() { public Strig what() { public void adjust() { Επεκτασιµότητα (παράδειγµα) class Striged exteds Istrumet { public void play() { public Strig what() { public void adjust() { class Brass exteds Wid { public void play() { public void adjust() { class Woodwid exteds Wid { public void play() { public Strig what() { Επεκτασιµότητα (παράδειγµα) Καθαρή κληρονομικότητα vs. Επέκταση public class Music3 { static void tue(istrumet i) { //... i.play(); Does't care about type, so ew types added to the system still work right static void tueall(istrumet[] e) { for(it i = 0; i < e.legth; i++) tue(e[i]); public static void mai(strig[] args){ Istrumet[] orchestra = ew Istrumet[5]; it i = 0; orchestra[i++] = ew Wid(); orchestra[i++] = ew Percussio(); orchestra[i++] = ew Striged(); orchestra[i++] = ew Brass(); orchestra[i++] = ew Woodwid(); tueall(orchestra); Upcastig durig additio to the array 21 Οι κληρονόμοι δεν επεκτείνουν την διαπροσωπεία του κληροδότη (υπερσκέλιση). l l Οι κληρονόμοι επεκτείνουν την διαπροσωπεία του κληροδότη. Αδύνατη η χρήση των νέων μεθόδων, μέσω Upcastig 22 Πολυμορφικές κλήσεις Περίγραμμα Χειριστήριο Circle Cast "up" Circle hello() Shape s = ew Circle(); // upcastig Shape Square Lie Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method s.hello(); Προκαλεί σφάλμα μετάφρασης 23 24
5 Polymorphism example The Sale ad DiscoutSale Classes For a example, the relatioship betwee a base class called Sale ad its derived class DiscoutSale will be examied Sale DiscoutSale The Sale class cotais two istace variables ame: the ame of a item (Strig) price: the price of a item (double) It cotais three costructors A o-argumet costructor that sets ame to "No ame yet", ad price to 0.0 A two-parameter costructor that takes i a Strig (for ame) ad a double (for price) A copy costructor that takes i a Sale object as a parameter Copyright 2017 Pearso Ltd. All rights reserved. 25 Copyright 2017 Pearso Ltd. All rights reserved. 26 The Sale ad DiscoutSale Classes The Sale class also has a set of accessors - μέθοδοι προσπέλασης (getname, getprice), mutators - μέθοδοι μεταλλαγής (setname, setprice), overridde (αναιρεμένες) equals ad tostrig methods, ad a static aoucemet method The Sale class has a method bill, that determies the bill for a sale, which simply returs the price of the item It has two methods, equaldeals ad lesstha, each of which compares two sale objects by comparig their bills ad returs a boolea value The Sale ad DiscoutSale Classes The DiscoutSale class iherits the istace variables ad methods from the Sale class I additio, it has its ow istace variable, discout (a percet of the price), ad its ow suitable costructor methods, accessor method (getdiscout), mutator method (setdiscout), override tostrig method, ad static aoucemet method The DiscoutSale class has its ow bill method which computes the bill as a fuctio of the discout ad the price Copyright 2017 Pearso Ltd. All rights reserved. 27 Copyright 2017 Pearso Ltd. All rights reserved. 28 The Sale ad DiscoutSale Classes The Sale ad DiscoutSale Classes The Sale class lesstha method The Sale class bill() method: Note the bill() method ivocatios: public double bill( ) { public boolea lesstha (Sale othersale){ if (othersale == ull) { System.out.pritl("Error: ull object"); System.exit(0); retur (bill( ) < othersale.bill( )); retur price; The DiscoutSale class bill() method: public double bill( ) { double fractio = discout/100; retur (1 - fractio) * getprice( ); Copyright 2017 Pearso Ltd. All rights reserved. 29 Copyright 2017 Pearso Ltd. All rights reserved. 30
6 The Sale ad DiscoutSale Classes Give the followig i a program:... Sale simple = ew sale("floor mat", 10.00); DiscoutSale discout = ew DiscoutSale("floor mat", 11.00, 10);... if (discout.lesstha(simple)) System.out.pritl("$" + discout.bill() + " < " + "$" + simple.bill() + " because late-bidig works!");... Output would be: $9.90 < $10 because late-bidig works! The Sale ad DiscoutSale Classes I the previous example, the boolea expressio i the if statemet returs true As the output idicates, whe the lesstha method i the Sale class is executed, it kows which bill() method to ivoke The DiscoutSale class bill() method for discout, ad the Sale class bill() method for simple Note that whe the Sale class was created ad compiled, the DiscoutSale class ad its bill() method did ot yet exist These results are made possible by late-bidig Copyright 2017 Pearso Ltd. All rights reserved. 31 Copyright 2017 Pearso Ltd. All rights reserved. 32 Περίγραμμα Pitfall: No Late Bidig for Static Methods Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method Whe the decisio of which defiitio of a method to use is made at compile time, that is called sta8c bidig This decisio is made based o the type of the variable amig the object Java uses static (early) bidig with private, fial, ad static methods I the case of private ad fial methods, late bidig would serve o purpose, as such methods are ot iherited However, i the case of a static method ivoked usig a callig object, it does make a differece 33 Copyright 2017 Pearso Ltd. All rights reserved. 34 Pitfall: No Late Bidig for Static Methods The Sale class aoucemet() method: public static void aoucemet( ){ System.out.pritl("Sale class"); The DiscoutSale class aoucemet() method: public static void aoucemet( ){ System.out.pritl("DiscoutSale class"); Copyright 2017 Pearso Ltd. All rights reserved. Pitfall: No Late Bidig for Static Methods Sale simple = ew sale("floor mat", 10.00); DiscoutSale discout = ew DiscoutSale("floor mat", 11.00, 10); I the previous example, the simple (Sale class) ad discout (DiscoutClass) objects were created Give the followig assigmet: simple = discout; Now the two variables poit to the same object I particular, a Sale class variable ames a DiscoutClass object 35 Copyright 2017 Pearso Ltd. All rights reserved. 36
7 Pitfall: No Late Bidig for Static Methods Give the ivocatio: simple.aoucemet(); The output is: Sale class Note that here, aoucemet is a static method ivoked by a callig object (istead of its class ame) Therefore the type of simple is determied by its variable ame, ot the object that it refereces Pitfall: No Late Bidig for Static Methods There are other cases where a static method has a callig object i a more icospicuous way For example, a static method ca be ivoked withi the defiitio of a ostatic method, but without ay explicit class ame or callig object I this case, the callig object is the implicit this Copyright 2017 Pearso Ltd. All rights reserved. Copyright 2017 Pearso Ltd. All rights reserved Aν προστεθεί ο ακόλoυθος κώδικας στη Sale: Ποιά θα είναι η έξοδος του ακόλoυθου προγράμματος; Sale s = ew Sale ( fm,10); s.showadvertisemet(); DiscoutSale dis = ew DiscoutSale( fm, 11, 10); dis.showadvertisemet(); Sale class fm Price ad total cost=$10.0 Discout class fm Price = $11 Discout=10.0% Total cost=$9.9 public void showadvertisemet() { aoucemet(); System.out.pritl(toStrig()); Sale class fm Price ad total cost=$10.0 Sale class fm Price = $11 Discout=10.0% Total cost=$9.9 Επισκίαση (hidig) vs. Υπερσκέλιση (overridig) Αν μια υποκλάση ορίζει μια στατική μέθοδο με την ίδια υπογραφή με μια επίσης στατική μέθοδο τής υπερκλάσης της, η στατική μέθοδος της υποκλάσης επισκιάζει (hides) την ομώνυμη μέθοδο της υπερκλάσης. Η διαφοροποίηση ανάμεσα στην επισκίαση (hidig) και την υπερσκέλιση (overridig) είναι λεπτή και έχει σημαντικές προεκτάσεις. See: override.html EΠΛ133 Compile error Ru-time error Επισκίαση vs. Υπερσκέλιση (παράδειγμα) public class Aimal { public static void hide() { System.out.pritl( hide() i Aimal"); public void override() { System.out.pritl("override() i Aimal"); 41 Επισκίαση vs. Υπερσκέλιση (παράδειγμα) public class Cat exteds Aimal { public static void hide() { System.out.pritl("hide() i Cat."); public void override() { System.out.format( override() i Cat."); public static void mai(strig[] args) { Aimal myaimal = ew Cat(); myaimal.hide(); // BAD STYLE Aimal.hide(); // Better! myaimal.override(); 42
8 Επισκίαση vs. Υπερσκέλιση Στην περίπτωση κλήσης μιας στατικής μεθόδου πάνω σε χειριστήριο x κάποιας κλάσης Α, το σύστημα εκτέλεσης θα καλέσει τη στατική μέθοδο που δηλώνεται ως μέλος της κλασης Α, ασχέτως του τύπου του αντικειµένου στο οποίο παραπέµπει το χειριστήριο. Στην περίπτωση κλήσης μιας μη-στατικής μεθόδου πάνω σε χειριστήριο x κάποιας κλάσης Α, το σύστημα εκτέλεσης θα καλέσει τη μέθοδο που ανήκει στην κλάση του αντικειμένου στο οποίο παραπέμπει το x. Μια μη στατική μέθοδος δεν επιτρέπεται να υπερσκελίσει (override) μια στατική μέθοδο. Μια στατική μέθοδος δεν επιτρέπεται να επισκιάσει (hide) μια μη στατική μέθοδο. Defiig a Method with the Same Sigature as a Superclass's Method Istace Method Static Method Superclass Istace Method Overrides (retur type must be a subtype of the retur type of the superclass's method) - υπερσκελίζει Geerates a compiletime error Superclass Static Method Compile-time error Hides - Επισκιάζει The fial Modifier A method marked fial idicates that it caot be overridde with a ew defiitio i a derived class If fial, the compiler ca use early bidig with the method public fial void somemethod() {... A class marked fial idicates that it caot be used as a base class from which to derive ay other classes Late Bidig with tostrig If a appropriate tostrig method is defied for a class, the a object of that class ca be output usig System.out.pritl Sale asale = ew Sale("tire gauge", 9.95); System.out.pritl(aSale); Output produced: tire gauge Price ad total cost = $9.95 This works because of late bidig Copyright 2017 Pearso Ltd. All rights reserved. 45 Copyright 2017 Pearso Ltd. All rights reserved. 46 Late Bidig with tostrig Oe defiitio of the method pritl takes a sigle argumet of type Object: public void pritl(object theobject) { System.out.pritl(theObject.toStrig()); I tur, It ivokes the versio of pritl that takes a Strig argumet Note that the pritl method was defied before the Sale class existed Yet, because of late bidig, the tostrig method from the Sale class is used, ot the tostrig from the Object class A Object kows the Defiitios of its Methods The type of a class variable determies which method ames ca be used with the variable However, the object amed by the variable determies which defiitio with the same method ame is used A special case of this rule is as follows: The type of a class parameter determies which method ames ca be used with the parameter The argumet determies which defiitio of the method ame is used Copyright 2017 Pearso Ltd. All rights reserved. 47 Copyright 2017 Pearso Ltd. All rights reserved. 48
9 Περίγραμμα Ιδιωτικές μέθοδοι και κληρονομικότητα Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad istace variables Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method public class PrivateOverride { private void f() {prit( private f() ); public static void mai(strig[] args) { PrivateOverride po = ew Derived(); po.f(); class Derived exteds PrivateOverride { public void f() {prit( public f() ); Κληρονομικότητα και προσδιοριστές πρόσβασης Η κλάση-κληρονόμος μπορεί να υπερσκελίσει (override) την λειτουργικότητα μιας μεθόδου της υπερκλάσης της δηλώνοντας μια μέθοδο με την ίδια υπογραφή και τον ίδιο τύπο επιστροφής με αυτόν της μεθόδου της υπερκλάσης. Η δυνατότητα της υπερσκέλισης μας επιτρέπει να κληρονομούμε συμπεριφορές από τις υπερκλάσεις μας και να τροποποιούμε αυτές τις συμπεριφορές μόνο όταν το κρίνουμε αναγκαίο. Ο προσδιοριστής πρόσβασης της υπερσκελίζουσας μεθόδου μιας υποκλάσης, μπορεί να δίνει τα ίδια ή περισσότερα δικαιώματα πρόσβασης με αυτά της μεθόδου της υπερκλάσης, όχι όμως λιγότερα. Π.χ: μια friedly μέθοδος της υπερκλάσης μπορεί να γίνει public αλλά όχι private Κληρονομικότητα και προσδιοριστές πρόσβασης Circle private Shape public Square public public Lie public private Αν επιχειρήσουμε να αλλάξουμε (περιορίσουµε) τις δικαιοδοσίες πρόσβασης σε μεθόδους της Shape: θα πάρουμε μύνημα σφάλματος: δεν μπορούμε να περιορίσουμε την ορατότητα των μελών της διαπροσωπείας της Shape! Παρατηρήσεις για κληρονομικότητα Περίγραμμα Μια υποκλάση κληρονομεί όλα τα μέλη (πεδία δεδομένων και μεθόδους) της υπερκλάσης της. Ωστόσο, η υποκλάση δεν έχει πρόσβαση στα ιδιωτικά (private) μέλη που κληρονομούνται από την υπερκλάση. Σημείωση: οι κατασκευαστές δεν θεωρούνται μέλη των κλάσεων και γι αυτό δεν κληρονομούνται. Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad istace variables Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method 53 54
10 Πολυμορφισμός και Πεδία Δεδομένων class Super { public it field = 0; public it getfield() { retur field; class Sub exteds Super { public it field = 1; public it getfield() { retur field; public it getsuperfield() { retur super.field; public class Field Access { public static void mai(strig[] args) { Super sup = ew Sub(); // upcastig System.out.pritl(sup.field + + sup.getfield()); Sub sub = ew Sub(); System.out.pritl(sub.field + + sub.getfield() + + sub.getsuperfield()); Μ. Δικαιάκος, EΠΛ EΠΛ133 Ποιά είναι η έξοδος του προηγούμενου παραδείγματος; sup.field =0, sup.getfield() = 1 sub.field = 1, sub.getfield()=1, sub.getsuperfield=0 sup.field =1, sup.getfield() = 1 sub.field = 1, sub.getfield()=1, sub.getsuperfield=0 sup.field =0, sup.getfield() = 1 sub.field = 1, sub.getfield()=1, sub.getsuperfield=1 Σφάλμα εκτέλεσης 56 Πολυμορφισμός και Πεδία Δεδομένων Περίγραμμα Στο παράδειγμα, όπου ένα αντικείμενο Sub αναβαθμίζεται (upcast) σε χειριστήριο Super, όλες οι προσβάσεις σε πεδία δεδομένων «επιλύονται» από τον μεταγλωττιστή και δεν είναι πολυμορφικές. Η απευθείας πρόσβαση σε ένα πεδίο δεδομένων επιλύεται στον χρόνο μεταγλώττισης και συνεπώς δεν είναι πολυμορφική. Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad istace variables Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method Κατασκευαστές και Πολυμορφισμός Παράδειγμα Ο κατασκευαστής ενός κληροδότη καλείται πάντοτε μέσα από τον κατασκευαστή του κληρονόμου του.έτσι, δημιουργείται μια αλυσίδα κλήσεων προς τα ανώτερα στρώματα της ιεραρχίας κληρονομικότητας. Η αλυσίδα αυτή των κλήσεων διασφαλίζεται από τον μεταγλωττιστή, ώστε να εξασφαλιστεί η σωστή κατασκευή αντικειμένων κλάσεων-κληρονόμων. Η σειρά των κλήσεων στην περίπτωση κατασκευής ενός αντικειμένου κάποιας κλάσης κληρονόμου Α, είναι η ακόλουθη: Κλήση του κατασκευαστή της υπερκλάσης της Α. Επανάληψη της κλήσης ώστε τελικά να κατασκευαστεί πρώτα το υποαντικείμενο της ρίζας της ιεραρχίας, ακολουθούμενο από το υποαντικείμενο του επόμενου κληρονόμου, κοκ. Εκτέλεση των αρχικοποιητών (iitializers) της Α, με βάση την σειρά δήλωσης των αντίστοιχων πεδίων της κλάσης. Κλήση του «σώματος» του κατασκευαστή Α(). class Meal { Meal() { System.out.pritl("Meal()"); class Bread { Bread() { System.out.pritl("Bread()"); class Cheese { Cheese() { System.out.pritl("Cheese()"); class Lettuce {Lettuce() { System.out.pritl("Lettuce()"); class Luch exteds Meal { Luch() { System.out.pritl("Luch()"); class PortableLuch exteds Luch { PortableLuch() {System.out.pritl("PortableLuch()"); class Sadwich exteds PortableLuch { Bread b = ew Bread(); Cheese c = ew Cheese(); Lettuce l = ew Lettuce(); Sadwich() { System.out.pritl("Sadwich()"); public static void mai(strig[] args) { ew Sadwich(); 59 60
11 Παράδειγμα (έξοδος) Meal() Luch() ProtableLuch() Bread() Cheese() Lettuce() Sadwitch() Παράδειγμα ΙΙ class Test exteds Object { /** Creates ew Test */ public Test() { System.out.pritl("Test()"); void foo() { System.out.pritl("foo i Test"); public class Test1 exteds Test { public Test1() { System.out.pritl("Test1"); public Test1(Test tt) { System.out.pritl("Test1.2"); tt.foo(); void foo() { System.out.pritl("foo i Test1"); public static void mai(strig args[]) { System.out.pritl("mai"); Test tt = ew Test(); Test tt1 = ew Test1(); Test tt2 = ew Test1(tt); Test tt3 = ew Test1(tt1); Ποια η έξοδος αυτού του κώδικα; Μ. Δικαιάκος, EΠΛ mai Test() Test() Test1 Test() Test1.2 foo i Test Test() Test1.2 foo i Test1 Μ. Δικαιάκος, EΠΛ Πολυμορφικές κλήσεις μέσα σε κατασκευαστές Πολυμορφικές κλήσεις μέσα σε κατασκευαστές class X { class X { void foo() { goo(); Πότε θα πραγματοποιηθεί η κλήση αυτή της goo()? Πώς θα γίνει η πρόσδεση της goo() και σε ποιό αντικείμενο; Η πρόσδεση θα γίνει δυναμικά (στο χρόνο εκτέλεσης) γιατί δεν μπορεί το αντικείμενο στο οποίο καλείται η foo() (και συνεπώς η goo()) να γνωρίζει εκ των προτέρων την κλάση του 65 X() { goo(); Πότε θα πραγματοποιηθεί η κλήση αυτή της goo()? Πώς θα γίνει η πρόσδεση της goo() και σε ποιό αντικείμενο; Aκόμα και αν η κλήση της goo() γίνει μέσα στον κατασκευαστή, θα χρησιμοποιηθεί δυναμική πρόσδεση σε ενδεχομένως υπερσκελισμένη έκδοση της goo(), ακόμα κι αν το αντικείμενο στο οποίο γίνεται η κλήση δεν έχει αρχικοποιηθεί πλήρως! 66
12 Πολυμορφικές κλήσεις μέσα σε κατασκευαστές class Glyph { void { System.out.pritl( Glyph. ); Glyph() { System.out.pritl("Glyph() before "); ; System.out.pritl("Glyph() after "); class RoudGlyph exteds Glyph { it radius = 1; RoudGlyph(it r) { radius = r; System.out.pritl("RoudGlyph.RoudGlyph(), radius = " + radius); void { System.out.pritl("RoudGlyph., radius = " + radius); public class PolyCostructors { public static void mai(strig[] args) { ew RoudGlyph(5); Ποια η έξοδος αυτού του κώδικα; 67 Μ. Δικαιάκος, EΠΛ Glyph() before RoudGlyph., radius = 0 Glyph() after RoudGlyph.RoudGlyph(), radius = 5 l l Πολυμορφικές κλήσεις μέσα σε κατασκευαστές Η κλήση μιας δυναμικά προσδενόμενης (αφαιρετικής) μεθόδου μέσα στον κατασκευαστή ενός αντικειμένου, χρησιμοποιεί την υπερσκελισμένη έκδοση της μεθόδου. Η διαδικασία αρχικοποίησης αντικειμένου έχει ως εξής: 1. Δέσμευση χώρου για το αντικείμενο και αρχικοποίηση των πεδίων του σε μηδέν. 2. Κλήση κατασκευαστών κληροδοτών. Κλήση υπερσκελισμένων μεθόδων (π.χ. tης ). 3. Αρχικοποίηση πεδίων δεδομένων, με τη σειρά της δήλωσής τους. 4. Κλήση του σώματος του κατασκευαστή του κληρονόμου. Μ. Δικαιάκος, EΠΛ Πολυμορφικές κλήσεις μέσα σε κατασκευαστές Για να αποφεύγουμε αυτές τις «δυσάρεστες» συνέπειες, καλό είναι να ακολουθούμε τον ακόλουθο κανόνα για τους κατασκευαστές των αντικειμένων: Κάνε όσο λιγότερα μπορείς για να φέρεις ένα αντικείμενο σε καλή κατάσταση, κι αν είναι δυνατόν μην καλείς καμιά μέθοδο στο σώμα του κατασκευαστή. Οι μόνες ασφαλείς μέθοδοι για να κληθούν μέσα σε ένα κατασκευαστή, είναι οι τελικές μέθοδοι της κλάσης κληροδότη του. l Συμμεταβλητοί τύποι επιστροφής Covariat retur types: Μια υπερσκελισμένη μέθοδος σε κάποια κλάσηκληρονόμο μπορεί να επιστρέφει τιμή τύπου, ο οποίος τύπος να είναι κληρονόμος του τύπου που επιστρέφει η μέθοδος της κλάσης κληροδότη: class Grai { public Strig tostrig() { retur "Grai"; class Wheat exteds Grai { public Strig tostrig() { retur "Wheat"; class Mill { Grai process() { retur ew Grai(); class WheatMill exteds Mill { Wheat process() { retur ew Wheat(); public class CovariatRetur { public static void mai(strig[] args) { Mill m = ew Mill(); Grai g = m.process(); System.out.pritl(g); m = ew WheatMill(); g = m.process(); System.out.pritl(g); 71 72
13 Περίγραμμα Σχεδιασμός με κληρονομικότητα Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad istace variables Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method Κληρονομικότητα και πολυμορφισμός δεν είναι ο μοναδικός τρόπος για την επαναχρησιμοποίηση μιας υπάρχουσας κλάσης. Σε αρκετές περιπτώσεις είναι προτιμότερη η χρήση της σύνθεσης, καθώς τότε είναι δυνατή η δυναµική επιλογή τύπου (άρα και συμπεριφοράς). Π.χ. State desig patter: class Actor { public void act() { class HappyActor exteds Actor { public void act() { prit( HappyActor"); class SadActor exteds Actor { public void act() { prit("sadactor"); class Stage { private Actor actor = ew HappyActor(); public void chage() { actor = ew SadActor(); public void performplay() { actor.act(); public class Trasmogrify { public static void mai(strig[] args) { Stage stage = ew Stage(); stage.performplay(); stage.chage(); stage.performplay(); Περίγραμμα Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad istace variables Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method Μ. Δικαιάκος, EΠΛ Upcastig ad Dowcastig Υποβάθμιση (dowcastig) Upcas8g is whe a object of a derived class is assiged to a variable of a base class (or ay acestor class) Sale salevariable; //Base class DiscoutSale discoutvariable = ew DiscoutSale("pait", 15,10); //Derived class salevariable = discoutvariable; //Upcastig System.out.pritl(saleVariable.toStrig()); Because of late bidig, tostrig above uses the defiitio give i the DiscoutSale class Copyright 2017 Pearso Ltd. All rights reserved. 77 Μ. Δικαιάκος, EΠΛ233 Όταν χρησιμοποιούμε upcastig (αναβάθμιση), ανεβαίνουμε την κλίμακα της κληρονομικότητας και χάνουμε την πληροφορία σχετικά με τον τύπο του αντικειμένου που γίνεται upcast. Η αναβάθμιση είναι ασφαλής, αφού ο κληροδότης δεν μπορεί να έχει ευρύτερη διαπροσωπεία από τους κληρονόμους του. Σε περιπτώσεις που έχουμε χρησιμοποιήσει αναβάθμιση, είναι χρήσιμο να μπορούμε να κατεβούμε την κλίμακα της κληρονομικότητας και να βρούμε τον τύπο του αντικειμένου που αναβαθμίστηκε. Η διαδικασία αυτή λέγεται dowcastig-υποβάθμιση και εμπεριέχει τον κίνδυνο να υποβαθμίσουμε ένα χειριστήριο στο λάθος τύπο, στέλνοντας στο αντίστοιχο αντικείμενο ένα μήνυμα που δεν μπορεί να γίνει δεκτό. Χρειάζεται λοιπόν κάποιος τρόπος ελέγχου αν η υποβάθμιση είναι έγκυρη. Ο έλεγχος αυτός γίνεται από την JAVA 78
14 Upcastig ad Dowcastig Υποβάθμιση (dowcastig) Dowcas8g is whe a type cast is performed from a base class to a derived class (or from ay acestor class to ay descedet class) Dowcastig has to be doe very carefully I may cases it does't make sese, or is illegal: discoutvariable = //will produce (DiscoutSale)saleVariable;//ru-time error discoutvariable = salevariable //will produce //compiler error There are times, however, whe dowcastig is ecessary, e.g., iside the equals method for a class: Sale othersale = (Sale)otherObject;//dowcastig Copyright 2017 Pearso Ltd. All rights reserved. 79 Μ. Δικαιάκος, EΠΛ Dowcastig import java.util.*; class Useful { public void f() { public void g() { class MoreUseful exteds Useful { public void f() { public void g() { public void u() { public void v() { public void w() { Dowcastig public class RTTI { public static void mai(strig[] args) { Useful[] x = { ew Useful(), ew MoreUseful() ; x[0].f(); x[1].g(); x[1].u(); // Compile-time: method ot foud i Useful ((MoreUseful)x[1]).u(); // Dowcast/RTTI ((MoreUseful)x[0]).u(); // Exceptio throw Μ. Δικαιάκος, EΠΛ Μ. Δικαιάκος, EΠΛ Pitfall: Dowcastig Tip: Checkig to See if Dowcastig is Legitimate It is the resposibility of the programmer to use dowcastig oly i situatios where it makes sese The compiler does ot check to see if dowcastig is a reasoable thig to do Usig dowcastig i a situatio that does ot make sese usually results i a ru-time error Dowcastig to a specific type is oly sesible if the object beig cast is a istace of that type This is exactly what the istaceof operator tests for: object istaceof ClassName It will retur true if object is of type ClassName I particular, it will retur true if object is a istace of ay descedet class of ClassName 83 84
15 Περίγραμμα A First Look at the cloe Method Itroductio to polymorphism Bidig Polymorphism ad Extesibility Example of Polymorphism: Sale ad DiscoutSale Polymorphism ad static methods Iheritace ad access specifiers Polymorphism ad istace variables Polymorphism ad costructors Polymorphism vs State Desig Patter Upcastig ad Dowcastig: Pitfalls The use of the cloe method Every object iherits a method amed cloe from the class Object The method cloe has o parameters It is supposed to retur a deep copy of the callig object However, the iherited versio of the method was ot desiged to be used as is Istead, each class is expected to override it with a more appropriate versio 85 Copyright 2017 Pearso Ltd. All rights reserved. 86 A First Look at the cloe Method A First Look at the cloe Method The headig for the cloe method defied i the Object class is as follows: protected Object cloe() The headig for a cloe method that overrides the cloe method i the Object class ca differ somewhat from the headig above A chage to a more permissive access, such as from protected to public, is always allowed whe overridig a method defiitio Chagig the retur type from Object to the type of the class beig cloed is allowed because every class is a descedet class of the class Object This is a example of a covariat retur type If a class has a copy costructor, the cloe method for that class ca use the copy costructor to create the copy retured by the cloe method public Sale cloe() { retur ew Sale(this); ad aother example: public DiscoutSale cloe() { retur ew DiscoutSale(this); Copyright 2017 Pearso Ltd. All rights reserved. 87 Copyright 2017 Pearso Ltd. All rights reserved. 88 Pitfall: Sometime the cloe Method Retur Type is Object Prior to versio 5.0, Java did ot allow covariat retur types There were o chages whatsoever allowed i the retur type of a overridde method Therefore, the cloe method for all classes had Object as its retur type Sice the retur type of the cloe method of the Object class was Object, the retur type of the overridig cloe method of ay other class was Object also Pitfall: Sometime the cloe Method Retur Type is Object Prior to Java versio 5.0, the cloe method for the Sale class would have looked like this: public Object cloe() { retur ew Sale(this); Therefore, the result must always be type cast whe usig a cloe method writte for a older versio of Java Sale copy = (Sale)origial.cloe(); Copyright 2017 Pearso Ltd. All rights reserved. 89 Copyright 2017 Pearso Ltd. All rights reserved. 90
16 Pitfall: Sometime the cloe Method Retur Type is Object It is still perfectly legal to use Object as the retur type for a cloe method, eve with classes defied after Java versio 5.0 Whe i doubt, it causes o harm to iclude the type cast For example, the followig is legal for the cloe method of the Sale class: Sale copy = origial.cloe(); However, addig the followig type cast produces o problems: Sale copy = (Sale)origial.cloe(); Pitfall: Limitatios of Copy Costructors Although the copy costructor ad cloe method for a class appear to do the same thig, there are cases where oly a cloe will work For example, give a method badcopy i the class Sale that copies a array of sales If this array of sales cotais objects from a derived class of Sale(i.e., DiscoutSale), the the copy will be a plai sale, ot a true copy b[i] = ew Sale(a[i]); //plai Sale object Copyright 2017 Pearso Ltd. All rights reserved. 91 Copyright 2017 Pearso Ltd. All rights reserved. 92 Pitfall: Limitatios of Copy Costructors However, if the cloe method is used istead of the copy costructor, the (because of late bidig) a true copy is made, eve from objects of a derived class (e.g., DiscoutSale): b[i] = (a[i].cloe());//discoutsale object The reaso this works is because the method cloe has the same ame i all classes, ad polymorphism works with method ames The copy costructors amed Sale ad DiscoutSale have differet ames, ad polymorphism does't work with methods of differet ames 93
ΕΠΛ233 ΠΟΛΥΜΟΡΦΙΣΜΟΣ
ΠΟΛΥΜΟΡΦΙΣΜΟΣ 2 ΠΟΛΥΜΟΡΦΙΣΜΟΣ Από τις βασικότερες έννοιες των αντικειμενοστρεφών γλωσσών προγραμματισμού, μετά την αφαιρετικότητα των δεδομένων (data abstraction) και την κληρονομικότητα (inheritance).
Διαβάστε περισσότεραΔιάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))
Διαβάστε περισσότεραΔΙΑΠΡΟΣΩΠΕΙΕΣ. Αφαιρετικές Μέθοδοι. Αφαιρετικές Μέθοδοι. Αφαιρετικές Κλάσεις
Αφαιρετικές Μέθοδοι Istrumet Strig what() ΔΙΑΠΡΟΣΩΠΕΙΕΣ Wid Strig what() Percussio Strig what() Striged Strig what() WoodWid Strig what() Brass Strig what() Στα προηγούμενα παραδείγματα, οι μέθοδοι της
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 5η: 29/03/2006 & 30/03/2006
Διαβάστε περισσότεραΑρχές Τεχνολογίας Λογισμικού Εργαστήριο
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?
Διαβάστε περισσότερα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.
Διαβάστε περισσότεραΤι σημαίνει; n Για την αποδοτική δέσμευση δομών δεδομένων μη. n Για την αποφυγή «διαρροών μνήμης» (memory leaks).
Δέσμευση Μνήμης (memory allocatio) Τι σημαίνει; Διαχείριση Μνήµης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες δέσμευσης μνήμης:
Διαβάστε περισσότεραSUPERPOSITION, MEASUREMENT, NORMALIZATION, EXPECTATION VALUES. Reading: QM course packet Ch 5 up to 5.6
SUPERPOSITION, MEASUREMENT, NORMALIZATION, EXPECTATION VALUES Readig: QM course packet Ch 5 up to 5. 1 ϕ (x) = E = π m( a) =1,,3,4,5 for xa (x) = πx si L L * = πx L si L.5 ϕ' -.5 z 1 (x) = L si
Διαβάστε περισσότεραΚληρονομικότητα. Περίγραμμα. Σύνθεση. Επαναχρησιμοποίηση Κλάσεων. Περίγραμμα. Σύνθεση (παράδειγμα) Code re-use through composition and inheritance
Περίγραμμα Κληρονομικότητα 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
Διαβάστε περισσότεραΑΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής
Αντικειμενοστρεφής Προγραμματισμός adamidis@it.teithe.gr Abstract classes, δομητές και πολυμορφισμός, finalize, downcasting Αφηρημένες (abstract) κλάσεις Είναι πάντα βασικές κλάσεις μιας ιεραρχίας κλάσεων.
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Διαβάστε περισσότεραThe Simply Typed Lambda Calculus
Type Inference Instead of writing type annotations, can we use an algorithm to infer what the type annotations should be? That depends on the type system. For simple type systems the answer is yes, and
Διαβάστε περισσότεραΕργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:
Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 3 Java Classes Java Objects
Διαβάστε περισσότεραΠερίγραμμα. n Αν θέλουμε να χρησιμοποιείται μόνο μια θέση αποθήκευσης για. n Δηλ., αν θέλουμε να καλούμε μια μέθοδο χωρίς να έχουμε
Περίγραμμα ΕΠΛ133 - Διάλεξη 6η Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος
Διαβάστε περισσότερα(Διαφάνειες Νίκου Βιδάκη)
(Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό
Διαβάστε περισσότεραLast Lecture. Biostatistics Statistical Inference Lecture 19 Likelihood Ratio Test. Example of Hypothesis Testing.
Last Lecture Biostatistics 602 - Statistical Iferece Lecture 19 Likelihood Ratio Test Hyu Mi Kag March 26th, 2013 Describe the followig cocepts i your ow words Hypothesis Null Hypothesis Alterative Hypothesis
Διαβάστε περισσότεραΕΞΑΙΡΕΣΕΙΣ στη JAVA. Σφάλματα προγραμμάτων. Μειονεκτήματα. Προσέγγιση της JAVA
ΕΞΑΙΡΕΣΕΙΣ στη JAVA Σφάλματα προγραμμάτων Τα σφάλματα ενός προγράμματος προκαλούνται από διάφορες καταστάσεις, όπως: Εξάντληση διαθέσιμης ιδεατής μνήμης, προσπάθεια ανάγνωσης εκτός των ορίων ενός πίνακα,
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Πολυµορφισµός και Αφηρηµένες κλάσεις. Εισαγωγή στον Πολυµορφισµό
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 5η: 29/03/2006 & 30/03/2006
Διαβάστε περισσότεραIIT JEE (2013) (Trigonomtery 1) Solutions
L.K. Gupta (Mathematic Classes) www.pioeermathematics.com MOBILE: 985577, 677 (+) PAPER B IIT JEE (0) (Trigoomtery ) Solutios TOWARDS IIT JEE IS NOT A JOURNEY, IT S A BATTLE, ONLY THE TOUGHEST WILL SURVIVE
Διαβάστε περισσότεραHomework for 1/27 Due 2/5
Name: ID: Homework for /7 Due /5. [ 8-3] I Example D of Sectio 8.4, the pdf of the populatio distributio is + αx x f(x α) =, α, otherwise ad the method of momets estimate was foud to be ˆα = 3X (where
Διαβάστε περισσότερα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:
Διαβάστε περισσότερα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
Διαβάστε περισσότεραΕΠΛ133 - Διάλεξη 6η. Kεφ. 5, Savitch. Περίγραμμα. A Person Class Constructor. Designing a Person Class: Constructor
Περίγραμμα Aναλλοίωτοι Περιορισμοί ΕΠΛ133 - Διάλεξη 6η Παραβίαση ιδιωτικότητας, Κατασκευαστές αντιγραφείς (copy costructors). Μεταλλάξιμες και μη μεταλλάξιμες κλάσεις Βιβλιοθήκες Java και Javadoc Kεφ.
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial
ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια
Διαβάστε περισσότεραpublic void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);
Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12
Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Διαβάστε περισσότερα4.6 Autoregressive Moving Average Model ARMA(1,1)
84 CHAPTER 4. STATIONARY TS MODELS 4.6 Autoregressive Moving Average Model ARMA(,) This section is an introduction to a wide class of models ARMA(p,q) which we will consider in more detail later in this
Διαβάστε περισσότεραCHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS
CHAPTER 5 SOLVING EQUATIONS BY ITERATIVE METHODS EXERCISE 104 Page 8 1. Find the positive root of the equation x + 3x 5 = 0, correct to 3 significant figures, using the method of bisection. Let f(x) =
Διαβάστε περισσότεραOther Test Constructions: Likelihood Ratio & Bayes Tests
Other Test Constructions: Likelihood Ratio & Bayes Tests Side-Note: So far we have seen a few approaches for creating tests such as Neyman-Pearson Lemma ( most powerful tests of H 0 : θ = θ 0 vs H 1 :
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Κληρονομικότητα (Inheritance) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κληρονομικότητα και Επαναχρησιμοποίηση - Υποκλάσεις/Υπερκλάσεις - Απόκρυψη ονομάτων - Το super, protected
Διαβάστε περισσότεραn r f ( n-r ) () x g () r () x (1.1) = Σ g() x = Σ n f < -n+ r> g () r -n + r dx r dx n + ( -n,m) dx -n n+1 1 -n -1 + ( -n,n+1)
8 Higher Derivative of the Product of Two Fuctios 8. Leibiz Rule about the Higher Order Differetiatio Theorem 8.. (Leibiz) Whe fuctios f ad g f g are times differetiable, the followig epressio holds. r
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2
Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Διαβάστε περισσότεραΣυστήματα Διαχείρισης Βάσεων Δεδομένων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Φροντιστήριο 9: Transactions - part 1 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Tutorial on Undo, Redo and Undo/Redo
Διαβάστε περισσότερα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 Σχεδίαση-Ανάπτυξη
Διαβάστε περισσότεραdepartment listing department name αχχουντσ ϕανε βαλικτ δδσϕηασδδη σδηφγ ασκϕηλκ τεχηνιχαλ αλαν ϕουν διξ τεχηνιχαλ ϕοην µαριανι
She selects the option. Jenny starts with the al listing. This has employees listed within She drills down through the employee. The inferred ER sttricture relates this to the redcords in the databasee
Διαβάστε περισσότεραSection 8.3 Trigonometric Equations
99 Section 8. Trigonometric Equations Objective 1: Solve Equations Involving One Trigonometric Function. In this section and the next, we will exple how to solving equations involving trigonometric functions.
Διαβάστε περισσότεραΕισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6
Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding
Διαβάστε περισσότερα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
Διαβάστε περισσότερα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
Διαβάστε περισσότεραΕισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#
Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct
Διαβάστε περισσότερα2 Composition. Invertible Mappings
Arkansas Tech University MATH 4033: Elementary Modern Algebra Dr. Marcel B. Finan Composition. Invertible Mappings In this section we discuss two procedures for creating new mappings from old ones, namely,
Διαβάστε περισσότεραΥπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods
(Object Oriented Programming) Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος
Διαβάστε περισσότερα3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β
3.4 SUM AND DIFFERENCE FORMULAS Page Theorem cos(αβ cos α cos β -sin α cos(α-β cos α cos β sin α NOTE: cos(αβ cos α cos β cos(α-β cos α -cos β Proof of cos(α-β cos α cos β sin α Let s use a unit circle
Διαβάστε περισσότεραPhys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)
Phys460.nb 81 ψ n (t) is still the (same) eigenstate of H But for tdependent H. The answer is NO. 5.5.5. Solution for the tdependent Schrodinger s equation If we assume that at time t 0, the electron starts
Διαβάστε περισσότεραInstruction Execution Times
1 C Execution Times InThisAppendix... Introduction DL330 Execution Times DL330P Execution Times DL340 Execution Times C-2 Execution Times Introduction Data Registers This appendix contains several tables
Διαβάστε περισσότεραΠερίγραμμα. Υπερφόρτωση. 1 Μ. Δικαιάκος, EΠΛ133. n Κάθε δεδομένο είναι. n Πεδία Δεδομένων ή Μεταβλητές Στιγμιοτύπου (fields or. n Mεθόδους (methods)
Περίγραμμα Σχεδιασμός Κλάσεων (κεφ. 4) 1 2 Αντικείμενο Επανάληψη: Αντικείμενα και Κλάσεις Η βασική αφαιρετική αναπαράσταση δεδομένων (data abstractio) του Α/Σ Προγραμματισμού. Κάθε δεδομένο είναι αντικείμενο
Διαβάστε περισσότεραΨηφιακή Επεξεργασία Εικόνας
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ψηφιακή Επεξεργασία Εικόνας Φιλτράρισμα στο πεδίο των συχνοτήτων Διδάσκων : Αναπληρωτής Καθηγητής Νίκου Χριστόφορος Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες
Διαβάστε περισσότεραIntroduction of Numerical Analysis #03 TAGAMI, Daisuke (IMI, Kyushu University)
Itroductio of Numerical Aalysis #03 TAGAMI, Daisuke (IMI, Kyushu Uiversity) web page of the lecture: http://www2.imi.kyushu-u.ac.jp/~tagami/lec/ Strategy of Numerical Simulatios Pheomea Error modelize
Διαβάστε περισσότεραΠρογραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and
Διαβάστε περισσότεραΕργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι
Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση
Διαβάστε περισσότερα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
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 16/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Τύποι της Java Primitives vs References Οι πρωταρχικοί
Διαβάστε περισσότερα2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο προηγούμενο παράδειγμα οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο είχαν κάποιο
Διαβάστε περισσότεραConcrete Mathematics Exercises from 30 September 2016
Concrete Mathematics Exercises from 30 September 2016 Silvio Capobianco Exercise 1.7 Let H(n) = J(n + 1) J(n). Equation (1.8) tells us that H(2n) = 2, and H(2n+1) = J(2n+2) J(2n+1) = (2J(n+1) 1) (2J(n)+1)
Διαβάστε περισσότεραΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 8 : ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ & ΠΟΛΥΜΟΡΦΙΣΜΟΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 8 : ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ & ΠΟΛΥΜΟΡΦΙΣΜΟΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (1/3) Στην αρχή της κληρονομικότητας βασίζεται ο σχεδιασμός και η υλοποίηση συστημάτων Η κληρονομικότητα χρησιμοποιείται
Διαβάστε περισσότεραStatistical Inference I Locally most powerful tests
Statistical Inference I Locally most powerful tests Shirsendu Mukherjee Department of Statistics, Asutosh College, Kolkata, India. shirsendu st@yahoo.co.in So far we have treated the testing of one-sided
Διαβάστε περισσότερα6.1. Dirac Equation. Hamiltonian. Dirac Eq.
6.1. Dirac Equation Ref: M.Kaku, Quantum Field Theory, Oxford Univ Press (1993) η μν = η μν = diag(1, -1, -1, -1) p 0 = p 0 p = p i = -p i p μ p μ = p 0 p 0 + p i p i = E c 2 - p 2 = (m c) 2 H = c p 2
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα Downcasting Πολυμορφισμός Late Binding
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Downcasting Πολυμορφισμός Late Binding tostring και equals Είπαμε ότι η Java για κάθε αντικείμενο «περιμένει» να δει τις μεθόδους tostring και
Διαβάστε περισσότεραHomework 4.1 Solutions Math 5110/6830
Homework 4. Solutios Math 5/683. a) For p + = αp γ α)p γ α)p + γ b) Let Equilibria poits satisfy: p = p = OR = γ α)p ) γ α)p + γ = α γ α)p ) γ α)p + γ α = p ) p + = p ) = The, we have equilibria poits
Διαβάστε περισσότερα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
Διαβάστε περισσότεραΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA
Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)
Διαβάστε περισσότεραΚλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13
Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης
ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός
Διαβάστε περισσότεραΗ ΨΥΧΙΑΤΡΙΚΗ - ΨΥΧΟΛΟΓΙΚΗ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗ ΣΤΗΝ ΠΟΙΝΙΚΗ ΔΙΚΗ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΝΟΜΙΚΗ ΣΧΟΛΗ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΟΜΕΑΣ ΙΣΤΟΡΙΑΣ ΦΙΛΟΣΟΦΙΑΣ ΚΑΙ ΚΟΙΝΩΝΙΟΛΟΓΙΑΣ ΤΟΥ ΔΙΚΑΙΟΥ Διπλωματική εργασία στο μάθημα «ΚΟΙΝΩΝΙΟΛΟΓΙΑ ΤΟΥ ΔΙΚΑΙΟΥ»
Διαβάστε περισσότεραΥπερφόρτωση Μεθόδων και Πέρασμα Ορισμάτων
6 Υπερφόρτωση Μεθόδων και Πέρασμα Ορισμάτων Τι θα δούμε σε αυτό το μάθημα 1. Μεταβίβαση ορισμάτων σε μέθοδο 1. μεταβίβαση τύπου τιμής 2. μεταβίβαση αναφοράς τιμής-ref και out 3. μεταβίβαση αναφοράς αντικειμένου
Διαβάστε περισσότερα8. Μέθοδοι (Methods)
8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΑΦΗΡΗΜΕΝΕΣ ΚΛΑΣΕΙΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΑΦΗΡΗΜΕΝΕΣ ΚΛΑΣΕΙΣ INTERFACES ΕΣΩΤΕΡΙΚΕΣ ΚΛΑΣΕΙΣ (INNER CLASSES) Αφηρημένες Κλάσεις (Abstract Classes) (1/6) Οι αφηρημένες κλάσεις χρησιμοποιούνται για την
Διαβάστε περισσότεραHOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:
HOMEWORK 4 Problem a For the fast loading case, we want to derive the relationship between P zz and λ z. We know that the nominal stress is expressed as: P zz = ψ λ z where λ z = λ λ z. Therefore, applying
Διαβάστε περισσότεραΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή
Διαβάστε περισσότεραΑντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου
Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής
Διαβάστε περισσότερα2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008
Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει
Διαβάστε περισσότεραC.S. 430 Assignment 6, Sample Solutions
C.S. 430 Assignment 6, Sample Solutions Paul Liu November 15, 2007 Note that these are sample solutions only; in many cases there were many acceptable answers. 1 Reynolds Problem 10.1 1.1 Normal-order
Διαβάστε περισσότεραFractional Colorings and Zykov Products of graphs
Fractional Colorings and Zykov Products of graphs Who? Nichole Schimanski When? July 27, 2011 Graphs A graph, G, consists of a vertex set, V (G), and an edge set, E(G). V (G) is any finite set E(G) is
Διαβάστε περισσότεραSection 9.2 Polar Equations and Graphs
180 Section 9. Polar Equations and Graphs In this section, we will be graphing polar equations on a polar grid. In the first few examples, we will write the polar equation in rectangular form to help identify
Διαβάστε περισσότεραHomework 3 Solutions
Homework 3 Solutions Igor Yanovsky (Math 151A TA) Problem 1: Compute the absolute error and relative error in approximations of p by p. (Use calculator!) a) p π, p 22/7; b) p π, p 3.141. Solution: For
Διαβάστε περισσότεραΤο πρόγραμμα 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 υποστηρίζει
Διαβάστε περισσότεραPartial Trace and Partial Transpose
Partial Trace and Partial Transpose by José Luis Gómez-Muñoz http://homepage.cem.itesm.mx/lgomez/quantum/ jose.luis.gomez@itesm.mx This document is based on suggestions by Anirban Das Introduction This
Διαβάστε περισσότεραStrain gauge and rosettes
Strain gauge and rosettes Introduction A strain gauge is a device which is used to measure strain (deformation) on an object subjected to forces. Strain can be measured using various types of devices classified
Διαβάστε περισσότερα(C) 2010 Pearson Education, Inc. All rights reserved.
Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.
Διαβάστε περισσότεραΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ. Type Information. Μ. Δικαιάκος
ΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ Type Information 2 Δυναμική Πληροφορία Τύπου Runtime type information (RTTI): μας επιτρέπει να ανακαλύπτουμε και να χρησιμοποιούμε δυναμικά (at run time) πληροφορίες για τον τύπο
Διαβάστε περισσότεραST5224: Advanced Statistical Theory II
ST5224: Advanced Statistical Theory II 2014/2015: Semester II Tutorial 7 1. Let X be a sample from a population P and consider testing hypotheses H 0 : P = P 0 versus H 1 : P = P 1, where P j is a known
Διαβάστε περισσότεραFinite Field Problems: Solutions
Finite Field Problems: Solutions 1. Let f = x 2 +1 Z 11 [x] and let F = Z 11 [x]/(f), a field. Let Solution: F =11 2 = 121, so F = 121 1 = 120. The possible orders are the divisors of 120. Solution: The
Διαβάστε περισσότεραΓΗΠΛΧΜΑΣΗΚΖ ΔΡΓΑΗΑ ΑΡΥΗΣΔΚΣΟΝΗΚΖ ΣΧΝ ΓΔΦΤΡΧΝ ΑΠΟ ΑΠΟΦΖ ΜΟΡΦΟΛΟΓΗΑ ΚΑΗ ΑΗΘΖΣΗΚΖ
ΔΘΝΗΚΟ ΜΔΣΟΒΗΟ ΠΟΛΤΣΔΥΝΔΗΟ ΥΟΛΖ ΠΟΛΗΣΗΚΧΝ ΜΖΥΑΝΗΚΧΝ ΣΟΜΔΑ ΓΟΜΟΣΑΣΗΚΖ ΓΗΠΛΧΜΑΣΗΚΖ ΔΡΓΑΗΑ ΑΡΥΗΣΔΚΣΟΝΗΚΖ ΣΧΝ ΓΔΦΤΡΧΝ ΑΠΟ ΑΠΟΦΖ ΜΟΡΦΟΛΟΓΗΑ ΚΑΗ ΑΗΘΖΣΗΚΖ ΔΤΘΤΜΗΑ ΝΗΚ. ΚΟΤΚΗΟΤ 01104766 ΔΠΗΒΛΔΠΧΝ:ΑΝ.ΚΑΘΖΓΖΣΖ ΗΧΑΝΝΖ
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΤΟΥ ΠΤΥΧΙΑΚΗ. Λεμεσός
ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ ΤΟ ΚΑΠΝΙΣΜΑ ΚΑΤΑ ΤΗΝ ΕΓΚΥΜΟΣΥΝΗ ΚΑΙ Η ΒΛΑΠΤΙΚΗ ΕΠΙΔΡΑ ΑΣΗ ΤΟΥ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΤΟΥ ΝΕΟΓΝΟΥ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ονοματεπώνυμο Αγγελική Παπαπαύλου Αριθμός Φοιτητικής
Διαβάστε περισσότεραCHAPTER 103 EVEN AND ODD FUNCTIONS AND HALF-RANGE FOURIER SERIES
CHAPTER 3 EVEN AND ODD FUNCTIONS AND HALF-RANGE FOURIER SERIES EXERCISE 364 Page 76. Determie the Fourier series for the fuctio defied by: f(x), x, x, x which is periodic outside of this rage of period.
Διαβάστε περισσότεραΗ λέξη κλειδί this. Γαβαλάς Δαμιανός dgavalas@aegean.gr
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #6 η : Η λέξη κλειδί this, υπερφόρτωση μεθόδων, κληρονομικότητα, πολυμορφισμός, υπερκάλυψη, επίπεδα προσπέλασης Γαβαλάς Δαμιανός dgavalas@aegean.gr
Διαβάστε περισσότερα02 Αντικειμενοστρεφής Προγραμματισμός
02 Αντικειμενοστρεφής Προγραμματισμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αντικειμενοστρέφεια Στον προγραμματισμό object
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο παράδειγμα με το τμήμα πανεπιστημίου οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο
Διαβάστε περισσότεραΑναερόβια Φυσική Κατάσταση
Αναερόβια Φυσική Κατάσταση Γιάννης Κουτεντάκης, BSc, MA. PhD Αναπληρωτής Καθηγητής ΤΕΦΑΑ, Πανεπιστήµιο Θεσσαλίας Περιεχόµενο Μαθήµατος Ορισµός της αναερόβιας φυσικής κατάστασης Σχέσης µε µηχανισµούς παραγωγής
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για
Διαβάστε περισσότεραAbstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες
Διαβάστε περισσότεραCapacitors - Capacitance, Charge and Potential Difference
Capacitors - Capacitance, Charge and Potential Difference Capacitors store electric charge. This ability to store electric charge is known as capacitance. A simple capacitor consists of 2 parallel metal
Διαβάστε περισσότερα