Περίγραμμα. n Αν θέλουμε να χρησιμοποιείται μόνο μια θέση αποθήκευσης για. n Δηλ., αν θέλουμε να καλούμε μια μέθοδο χωρίς να έχουμε

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

Download "Περίγραμμα. n Αν θέλουμε να χρησιμοποιείται μόνο μια θέση αποθήκευσης για. n Δηλ., αν θέλουμε να καλούμε μια μέθοδο χωρίς να έχουμε"

Transcript

1 Περίγραμμα ΕΠΛ133 - Διάλεξη 6η Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος Χρήση Αναφορών Πακέτα και Javadoc 1 2 Η χρήση του static Στατικές μεταβλητές και Μέθοδοι Για την πρόσβαση σε δεδομένα και μεθόδους προϋποτίθεται η δημιουργία σχετικού αντικειμένου. Υπάρχουν δύο περιπτώσεις όπου αυτό δεν είναι επιθυμητό: Αν θέλουμε να χρησιμοποιείται μόνο μια θέση αποθήκευσης για κάποιο συγκεκριμένο δεδομένο, ανεξάρτητα του πόσα αντικείμενα δημιουργούνται. Αν χρειαζόμαστε μεθόδους που δεν αντιστοιχούν σε κάποιο συγκεκριμένο αντικείμενο. Δηλ., αν θέλουμε να καλούμε μια μέθοδο χωρίς να έχουμε δημιουργήσει αντικείμενα. Οι δυνατότητες αυτές μπορούν να υλοποιηθούν με την χρήση της λέξης κλειδί static. Δεδομένα και μέθοδοι που ορίζονται σαν static αποκαλούνται και class-data, class-methods. 3 4 Static Methods A sta$c method is oe that ca be used without a callig object A static method still belogs to a class, ad its defiitio is give iside the class defiitio Whe a static method is defied, the keyword static is placed i the method header public static returedtype mymethod(parameters) {... Static methods are ivoked usig the class ame i place of a callig object returedvalue = MyClass.myMethod(argumets); Pitfall: Ivokig a Nostatic Method Withi a Static Method A static method caot refer to a istace variable of the class, ad it caot ivoke a ostatic method of the class (γιατί;) A static method has o this, so it caot use a istace variable or method that has a implicit or explicit this for a callig object A static method ca ivoke aother static method, however Copyright 2017 Pearso Ltd. All rights reserved. 5 Copyright 2017 Pearso Ltd. All rights reserved. 6

2 Static Variables (στατικές μεταβλητές) public class Foo { static void test(foo g) { g.f1(0.9); void f1(double x) { System.out.pritl("double f1 -->" + x); void f1() { test(this); public static void mai(strig[] args) { Foo ff = ew Foo(); ff.f1(); A sta$c variable is a variable that belogs to the class as a whole, ad ot just to oe object There is oly oe copy of a static variable per class, ulike istace variables where each object has its ow copy All objects of the class ca read ad chage a static variable Although a static method caot access a istace variable, a static method ca access a static variable A static variable is declared like a istace variable, with the additio of the modifier static private static it mystaticvariable; 7 Copyright 2017 Pearso Ltd. All rights reserved. 8 Static Variables Static variables ca be declared ad iitialized at the same time private static it mystaticvariable = 0; If ot explicitly iitialized, a static variable will be automatically iitialized to a default value boolea sta;c variables are ii;alized to false Other primitive types static variables are iitialized to the zero of their type Class type static variables are iitialized to ull It is always preferable to explicitly iitialize static variables rather tha rely o the default iitializatio Static Variables A static variable should always be defied private, uless it is also a defied costat The value of a static defied costat caot be altered, therefore it is safe to make it public I additio to static, the declaratio for a static defied costat must iclude the modifier fial, which idicates that its value caot be chaged public static fial it BIRTH_YEAR = 1954; Whe referrig to such a defied costat outside its class, use the ame of its class i place of a callig object it year = MyClass.BIRTH_YEAR; Copyright 2017 Pearso Ltd. All rights reserved. 9 Copyright 2017 Pearso Ltd. All rights reserved. 10 Static (παραδείγματα) class StaticTest { static it i = 47; StaticTest st1 = ew StaticTest(); StaticTest st2 = ew StaticTest(); st1.i και st2.i δείχνουν στην ίδια τιμή. Αναφορά σε στατικές μεταβλητές: είτε μέσω αντικειμένου είτε μέσω κλάσης: StaticTest.i ++; class StaticFu { static void icr() {StaticTest.i ++; StaticFu sf = ew StaticFu(); sf.icr(); StaticFu.icr(); 11 Η χρήση του static 12

3 The Math Class Some Methods i the Class Math (Part 1 of 5) The Math class provides a umber of stadard mathematical methods It is foud i the java.lag package, so it does ot require a import statemet All of its methods ad data are static, therefore they are ivoked with the class ame Math istead of a callig object The Math class has two predefied costats, E (e, the base of the atural logarithm system) ad PI (π, ) area = Math.PI * radius * radius; Copyright 2017 Pearso Ltd. All rights reserved. 13 Copyright 2017 Pearso Ltd. All rights reserved. 14 Some Methods i the Class Math (Part 2 of 5) Some Methods i the Class Math (Part 3 of 5) Copyright 2017 Pearso Ltd. All rights reserved. 15 Copyright 2017 Pearso Ltd. All rights reserved. 16 Some Methods i the Class Math (Part 4 of 5) Some Methods i the Class Math (Part 5 of 5) Copyright 2017 Pearso Ltd. All rights reserved. 17 Copyright 2017 Pearso Ltd. All rights reserved. 18

4 Radom Numbers Περίγραμμα The Math class also provides a facility to geerate pseudo-radom umbers public static double radom() A pseudo-radom umber appears radom but is really geerated by a determiistic fuctio There is also a more flexible class amed Radom Sample use: double um = Math.radom(); Returs a pseudo-radom umber greater tha or equal to 0.0 ad less tha 1.0 Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος Χρήση Αναφορών Πακέτα και Javadoc Copyright 2017 Pearso Ltd. All rights reserved Wrapper Classes (περιβάλλουσες κλάσεις) Wrapper Classes Wrapper classes provide a class type correspodig to each of the primitive types This makes it possible to have class types that behave somewhat like primitive types The wrapper classes for the primitive types byte, short, log, float, double, ad char are (i order) Byte, Short, Log, Float, Double, ad Character Wrapper classes also cotai a umber of useful predefied costats ad static methods Boxig (συσκευασία): the process of goig from a value of a primitive type to a object of its wrapper class To covert a primitive value to a "equivalet" class type value, create a object of the correspodig wrapper class usig the primitive value as a argumet The ew object will cotai a istace variable that stores a copy of the primitive value Ulike most other classes, a wrapper class does ot have a oargumet costructor Iteger itegerobject = ew Iteger(42); Wrapper Classes Uboxig (αποσυσκευασία): the process of goig from a object of a wrapper class to the correspodig value of a primitive type Automatic Boxig ad Uboxig Startig with versio 5.0, Java ca automatically do boxig ad uboxig The methods for covertig a object from the wrapper classes Byte, Short, Iteger, Log, Float, Double, ad Character to their correspodig primitive type are (i order) bytevalue, shortvalue, itvalue, logvalue, floatvalue, doublevalue, ad charvalue Noe of these methods take a argumet it i = itegerobject.itvalue(); Istead of creatig a wrapper class object usig the ew operatio (as show before), it ca be doe as a automatic type cast: Iteger itegerobject = 42; Istead of havig to ivoke the appropriate method (such as itvalue, doublevalue, charvalue, etc.) i order to covert from a object of a wrapper class to a value of its associated primitive type, the primitive value ca be recovered automatically it i = itegerobject; 23 24

5 Costats ad Static Methods i Wrapper Classes Wrapper classes iclude useful costats that provide the largest ad smallest values for ay of the primitive umber types For example, Iteger.MAX_VALUE, Iteger.MIN_VALUE, Double.MAX_VALUE, Double.MIN_VALUE, etc. The Boolea class has ames for two costats of type Boolea Boolea.TRUE ad Boolea.FALSE are the Boolea objects that correspod to the values true ad false of the primitive type boolea Costats ad Static Methods i Wrapper Classes Wrapper classes have static methods that covert a correctly formed strig represetatio of a umber to the umber of a give type The methods Iteger.parseIt, Log.parseLog, Float.parseFloat, ad Double.parseDouble do this for the primitive types (i order) it, log, float, ad double Wrapper classes also have static methods that covert from a umeric value to a strig represetatio of the value For example, the expressio Double.toStrig(123.99); returs the strig value "123.99" 25 The Character class cotais a umber of static methods that are useful for strig processig 26 Some Methods i the Class Character (Part 1 of 3) Some Methods i the Class Character (Part 2 of 3) Copyright 2017 Pearso Ltd. All rights reserved. 27 Copyright 2017 Pearso Ltd. All rights reserved. 28 Some Methods i the Class Character (Part 3 of 3) Περίγραμμα Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος Χρήση Αναφορών Πακέτα και Javadoc Copyright 2017 Pearso Ltd. All rights reserved

6 Σειρά Αρχικοποιήσεων Μέσα σε µια κλάση, η σειρά των αρχικοποιήσεων καθορίζεται από τη σειρά δήλωσης των πεδίων δεδομένων της κλάσης. Ανασκόπηση Αρχικοποιήσεων Ακόμη κι αν οι αρχικοποιήσεις είναι διεσπαρμένες ανάμεσα σε δηλώσεις μεθόδων, τα πεδία θα αρχικοποιηθούν πριν την κλήση οποιασδήποτε μεθόδου, ακόµη και του costructor. Πότε γίνεται η αρχικοποίηση στατικών µεταβλητών; Μόνο όταν αυτό καταστεί αναγκαίο, είτε λόγω δημιουργίας του πρώτου σχετικού αντικειμένου, είτε λόγω κλήσης κάποιας στατικής μεθόδου της αντίστοιχης κλάσης l l l l l Ανασκόπηση Δημιουργίας Αντικειμένων Έστω ότι έχουμε ορίσει μια κλάση Dog. Την πρώτη φορά που δημιουργείται ένα αντικείμενο Dog, ή την πρώτη φορά που καλείται μια στατική μέθοδος της Dog ή γίνεται πρόσβαση σε ένα στατικό πεδίο της κλάσης Dog, ο διερμηνέας της Java πρέπει να βρεί την κλάση Dog.class, την οποία αναζητεί με την βοήθεια του classpath. Καθώς η Dog.class φορτώνεται (οπότε και δημιουργείται ένα αντικείμενο Class), εκτελούνται όλοι οι στατικοί αρχικοποιητές (static iitializers). Επομένως η στατική αρχικοποίηση συμβαίνει μόνο μια φορά, όταν το Class Object φορτώνεται για πρώτη φορά. Όταν δημιουργηθεί αντικείμενο Dog με την ew Dog(), η διεργασία δημιουργίας κρατάει πρώτα αρκετό χώρο στον σωρό. Ο χώρος που κρατήθηκε αρχικοποιείται με μηδενικά. Ανασκόπηση Δημιουργίας Αντικειμένων Οποιεσδήποτε αρχικοποιήσεις έχουν δηλωθεί εκτελούνται. Εκτελούνται οι costructors τού αντικειμένου. Στο σημείο αυτό μπορούμε να έχουμε αρκετή δραστηριότητα, ιδιαίτερα όταν η κλάση μας κληρονομεί χαρακτηριστικά άλλων κλάσεων Ρητή στατική αρχικοποίηση Aρχικοποίηση στιγμιοτύπου Μπορούμε να συγκεντρώσουμε τις στατικές αρχικοποιήσεις (static iitializatios) μέσα σε ένα ειδικό στατικό πλαίσιο (static block), στο εσωτερικό μιας κλάσης. Οι ρητές στατικές αρχικοποιήσεις εκτελούνται μαζί με τους στατικούς αρχικοποιητές. public class Spoo { static it i; static { i = 47; class Cups { static Cup cup1; static Cup cup2; static { cup1 = ew Cup(1); cup2 = ew Cup(2); No-static istace iitializatio: παρόμοια σύνταξη με τους ρητούς στατικούς αρχικοποιητές: Π.χ.: public class Mugs { Mug mug1; Mug mug2; { mug1 = ew Mug(1); mug2 = ew Mug(2); System.out.pritl( Istace Iitializatio ); 35 36

7 Περίγραμμα Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος Χρήση Αναφορών Πακέτα και Javadoc Αποκοµιδή Σκυβάλων Garbage Collectio Αποκομιδή Σκυβάλων Γενικές Αρχές για την Αποκομιδή Σκυβάλων Πως δημιουργούνται τα «σκουπίδια» στην JAVA και που είναι αποθηκευμένα; Ποιός είναι ο ρόλος του αποκομιστή σκυβάλων (σκουπιδιάρη); Να απελευθερώνει μνήμη, η οποία έχει δεσμευθεί με τη ew και να την επιστρέφει στο σωρό. Είναι αυτό αρκετό για την «εκκαθάριση» αχρείαστων αντικειμένων; Αρκετές φορές, η «εκκαθάριση» των αντικειμένων στη Java δεν είναι πολύ απλή υπόθεση, που μπορεί να αφεθεί στον σκουπιδιάρη. Υπάρχει η πιθανότητα, με τη δημιουργία του αντικειμένου αυτού να έχουν κληθεί βιβλιοθήκες οι οποίες δημιουργούν άλλα αντικείμενα, γραφικά, δεσμεύουν μνήμη χωρίς κλήση της ew (με επίκληση ιθαγενών-ative μεθόδων) κοκ. Τα αντικείμενά σας μπορεί να μην συλλεχθούν ποτέ από τον αποκομιστή, ακόμη κι αν καταστούν σκουπίδια. Η αποκομιδή σκυβάλων δεν ισοδυναμεί με καταστροφή των αντικειμένων-σκουπιδιών. Η αποκομιδή σκυβάλων αφορά μόνο στην απελευθέρωση μνήμης Αποτελείωμα και Αποκομιδή Σκυβάλων Fialize Ο αποκομιστής σκυβάλων δεν επιλύει το πρόβλημα της εκκαθάρισης αντικειμένων στη Java, διότι: «Απορρίµατα» της Java µπορεί να µη συλλεχθούν από τον αποκοµιστή σκυβάλων. Ο λόγος είναι ότι συχνά τα προγράμματα δεν ξεμένουν από μνήμη, οπότε δεν καλείται ο GC στo χρόνο ζωής τους. Ο αποκομιστής σκυβάλων γνωρίζει πως να αποδεσμεύσει μνήμη που έχει κρατηθεί με την ew, όχι όμως και τι θα κάνει με ιδιάζουσες περιπτώσεις μνήμης που έχουν κρατηθεί από κάποιο αντικείμενο. Στη Java, η αποκομιδή σκυβάλων δεν ισοδυναµεί µε καταστροφή των αντικειµένων (όπως στην C++). Αν υπάρχει κάποια δραστηριότητα που πρέπει να εκτελεσθεί πριν την ολοκλήρωση της χρήσης ενός αντικειμένου, τη δραστηριότητα αυτή πρέπει να την καθορίσει σαφώς ο προγραμματιστής. Για κάθε κλάση της Java μπορούμε να ορίσουμε μια μέθοδο fialize(), με την οποία μπορούμε να κάνουμε αναγκαίες «εκκαθαρίσεις» που προηγούνται της αποδέσμευσης των αντικειμένων της κλάσης. Στην περίπτωση που έχει οριστεί η fialize, όταν κληθεί ο αποκομιστής σκυβάλων (GC) και επιχειρήσει να απελευθερώσει τη μνήμη αντικειμένου της αντίστοιχης κλάσης ο GC: θα καλέσει πρώτα την fialize στο επόμενο πέρασμά του θα απελευθερώσει τη μνήμη του αντικειμένου Ο GC στοχεύει στην απελευθέρωση µνήµης. Αυτή θα πρέπει να είναι και η δραστηριότητα της fialize, όποτε χρησιμοποιείται. Η χρησιμότητα της fialize περιορίζεται κυρίως σε ειδικές περιπτώσεις («ιθαγενείς» μέθοδοι ative methods)

8 Ρητή Εκκαθάριση Αντικειμένων Στη Java τα αντικείμενα δημιουργούνται μόνο με χρήση της ew. Δεν δημιουργούνται «τοπικά» αντικείμενα (στη στοίβα ) και δεν υπάρχει μέθοδος delete για καταστροφή αντικειμένων. Αν ωστόσο θέλουμε να «εξαναγκάσουμε» την απαλοιφή μη χρησιμοποιούμενων αντικειμένων, μπορούμε να καλέσουμε από το πρόγραμμά μας τον Αποκομιστή Σκυβάλων (GC), ακολουθούμενο από την μέθοδο rufializatio: System.gc(); System.ruFializatio(); Πως λειτουργεί η System.ruFializatio(); Παράδειγμα // Demostratio of the garbage // collector ad fializatio class Chair { static boolea gcru = false; static boolea f = false; static it created = 0; static it fialized = 0; it i; Chair() { i = ++created; if (created == 47) System.out.pritl("Created 47"); Παράδειγμα (συνέχεια) public void fialize() { if (!gcru) { // The first time fialize() is called: gcru = true; System.out.pritl("Begiig to fialize after " + created +" Chairs have bee created"); if (i == 47) { System.out.pritl("Fializig Chair #47, " + "Settig flag to stop Chair creatio"); f = true; fialized++; if (fialized >= created) System.out.pritl( All " + fialized + fialized"); Παράδειγμα (συνέχεια) public class Garbage { public static void mai(strig[] args){ while (!Chair.f) { ew Chair(); ew Strig("To take up space"); System.gc(); // forces executio of GC System.ruFializatio(); // fializes all ufialized objects Τεχνικές Αποκομιδής Σκυβάλων Περίγραμμα Ο σωρός στην JAVA και το JVM μπορεί να λειτουργήσει σαν ιμάντας (coveyor belt) αντίθετα με την C++ όπου υπάρχει η δυνατότητα καταστροφής αντικειμένων. Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Τεχνικές αποκομιδής σκυβάλων: Referece coutig (μέτρηση αναφορών) τι γίνεται με αυτοαναφερόμενες κυκλικές δομές σκυβάλων; Tracig live objects back to refereces livig o the stack or static memory: ιχνηλασία σε ζώντα χειριστήρια. Προσέγγιση τού JVM: προσαρμοζόμενος ΑΣ (adaptive) Stop-ad-copy: μεταφορά των ζώντων αντικειμένων από έναν σωρό σε κάποιον άλλο, αφού πρώτα σταματήσει η εκτέλεση του προγράμματος. Mark-ad-sweep: εντοπισμός και υποσημείωση των ζώντων αντικειμένων, ξεκινώντας από την στοίβα και την στατική μνήμη. Μετά το πέρας της υποσημείωσης, σάρωση του σωρού και εκκαθάριση των σκυβάλων. δουλεύει ικανοποιητικά όταν δεν υπάρχουν πολλά σκουπίδια Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος Χρήση Αναφορών Πακέτα και Javadoc 47 48

9 Class Parameters (παράμετροι κλάσης) Παράμετροι κλάσης Class Parameters Στις μεθόδους Java, το πέρασμα των ορισμάτων (argumets) των τυπικών παραμέτρων γίνεται με κλήση με τιμή call-byvalue. Οι παράμετροι έχουν θέση τοπικής μεταβλητής, η οποία αρχικοποιείται στην τιμή του ορίσματος, κατά την κλήση της μεθόδου - a parameter is a local variable that is set equal to the value of its argumet. Oποιαδήποτε τιμή στην τιμή της παραμέτρου, δεν μπορεί να αλλάξει την τιμή του ορίσματος. Παράμετροι τύπου κλάσης, φαίνεται να συμπεριφέρονται διαφορετικά από τις παραμέτρους αρχέγονου τύπου. Γιατί; 49 Copyright 2017 Pearso Ltd. All rights reserved. 50 Class Parameters The value plugged ito a class type parameter is a referece (memory address) Therefore, the parameter becomes aother ame for the argumet Ay chage made to the object amed by the parameter (i.e., chages made to the values of its istace variables) will be made to the object amed by the argumet, because they are the same object Note that, because it still is a call-by-value parameter, ay chage made to the class type parameter itself (i.e., its address) will ot chage its argumet (the referece or memory address) Primitive vs Class-Type Parameters Mια μέθοδος δεν μπορεί να αλλάξει την τιμή μιας μεταβλητής αρχέγονου τύπου, η οποία περνιέται σαν όρισμα στη μέθοδο. Αντίθετα: μια μέθοδος μπορεί να αλλάξει την τιμή των μεταβλητών στιγμιοτύπου (the values of the istace variables) ενός αντικειμένου κάποιας κλάσης, που περνιέται σαν όρισμα στη μέθοδο. Copyright 2017 Pearso Ltd. All rights reserved. 51 Copyright 2017 Pearso Ltd. All rights reserved. 52 public class ToyClass2 { private Strig ame; private it umber; Comparig Parameters of a Class Type ad a Primitive Type (Part 1 of 2) public ToyClass(Strig iitialname, it iitialnumber) { ame = iitialname; umber = iitialnumber; public ToyClass() { ame = "No ame yet."; umber = 0; public void makeequal(toyclass2 aobject) { aobject.ame = this.ame; aobject.umber = this.umber; public void trytomakeequal(it anumber) { anumber = this.umber; 53 Copyright 2017 Pearso Ltd. All rights reserved. 54

10 Comparig Parameters of a Class Type ad a Primitive Type (Part 2 of 2) Περίγραμμα Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος Χρήση Αναφορών Πακέτα και Javadoc Copyright 2017 Pearso Ltd. All rights reserved Έλεγχος ισότητας αντικειμένων Iσότητα αντικειμένων Ισότητα/Ισοδυναμία αντικειμένων. Πώς ορίζεται; Πώς ελέγχεται; Για τον έλεγχο των περιεχομένων ενός αντικειμένου για ισοδυναμία με άλλο αντικείμενο, χρησιμοποιείται η μέθοδος equals, η οποία υπάρχει σε όλα τα αντικείμενα. 57 Μ. Δικαιάκος, EΠΛ Έλεγχος ισότητας αντικειμένων public class EqualsMethod { public static void mai(strig[] args) { Iteger 1 = ew Iteger(47); Iteger 2 = ew Iteger(47); System.out.pritl(1.equals(2)); class Value { it i; public class EqualsMethod2 { public static void mai(strig[] args) { Value v1 = ew Value(); Value v2 = ew Value(); System.out.pritl(v1.equals(v2)); Επιστρέφει true Επιστρέφει false Pitfall: Use of = ad == with Variables of a Class Type Used with variables of a class type, the assigmet operator (=) produces two variables that ame the same object Aliasig (ψευδωνυμία) This is very differet from how it behaves with primitive type variables The test for equality (==) also behaves differetly for class type variables The == operator oly checks that two class type variables have the same memory address Ulike the equals method, it does ot check that their istace variables have the same values Two objects i two differet locatios whose istace variables have exactly the same values would still test as beig "ot equal" Μ. Δικαιάκος, EΠΛ Copyright 2017 Pearso Ltd. All rights reserved. 60

11 The Costat ull H σταθερά ull ull is a special costat that may be assiged to a variable of ay class type YourClass yourobject = ull; It is used to idicate that the variable has o "real value" It is ofte used i costructors to iitialize class type istace variables whe there is o obvious object to use ull is ot a object: It is, rather, a kid of "placeholder" for a referece that does ot ame ay memory locatio Because it is like a memory address, use == or!= (istead of equals) to test if a class variable cotais ull if (yourobject == ull) Copyright 2017 Pearso Ltd. All rights reserved. 62 Pitfall: Null Poiter Exceptio Eve though a class variable ca be iitialized to ull, this does ot mea that ull is a object ull is oly a placeholder for a object A method caot be ivoked usig a variable that is iitialized to ull The callig object that must ivoke a method does ot exist Ay attempt to do this will result i a "Null Poiter Exceptio" error message For example, if the class variable has ot bee iitialized at all (ad is ot assiged to ull), the results will be the same Ανώνυμα αντικείμενα (aoymous objects) The ew operator ivokes a costructor which iitializes a object, ad returs a referece to the locatio i memory of the object created This referece ca be assiged to a variable of the object's class type Sometimes the object created is used as a argumet to a method, ad ever used agai I this case, the object eed ot be assiged to a variable, i.e., give a ame A object whose referece is ot assiged to a variable is called a aoymous object Copyright 2017 Pearso Ltd. All rights reserved. 63 Copyright 2017 Pearso Ltd. All rights reserved. 64 Περίγραμμα Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος Χρήση Αναφορών Πακέτα και Javadoc Ιvariats (αναλλοίωτοι / απαράβατοι / αμετάβλητοι περιορισμοί) 65 66

12 Αναλλοίωτοι Περιορισμοί (Class Ivariats) Περίγραμμα I object-orieted programmig, a class ivariat (or type ivariat) is a ivariat used to costrai objects of a class. Methods of the class should preserve the ivariat. The class ivariat costrais the state stored i the object. Esures that objects will always meet predefied coditios, ad that methods may, therefore, always referece the objects without the risk of makig iaccurate presumptios. Class ivariats are established durig costructio ad costatly maitaied betwee calls to public methods. Temporary breakig of class ivariace betwee private method calls is possible, although ot ecouraged. Defiig class ivariats ca help programmers ad testers to catch more bugs durig software testig. Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος Χρήση Αναφορών Πακέτα και Javadoc Usig ad Misusig Refereces Whe writig a program, it is very importat to isure that private istace variables remai truly private Privacy leaks (παραβίαση ιδιωτικότητας) How?? For a primitive type istace variable, just addig the private modifier to its declaratio should isure that there will be o privacy leaks (παραβίαση ιδιωτικότητας) For a class type istace variable, however, addig the private modifier aloe is ot sufficiet Desigig A Perso Class: Istace Variables Desigig a Perso Class: Costructor A simple Perso class could cotai istace variables represetig a perso's ame, the date o which they were bor, ad the date o which they died These istace variables would all be class types: ame of type Strig, ad two dates of type Date As a first lie of defece for privacy, each of the istace variables would be declared private public class Perso { private Strig ame; private Date bor; private Date died; //ull is still alive... I order to exist, a perso must have (at least) a ame ad a birth date Therefore, it would make o sese to have a o-argumet Perso class costructor A perso who is still alive does ot yet have a date of death Therefore, the Perso class costructor will eed to be able to deal with a ull value for date of death A perso who has died must have had a birth date that preceded his or her date of death Therefore, whe both dates are provided, they will eed to be checked for cosistecy Copyright 2017 Pearso Ltd. All rights reserved. 71 Copyright 2017 Pearso Ltd. All rights reserved. 72

13 A Perso Class Costructor public Perso(Strig iitialname, Date birthdate, Date deathdate){ if (cosistet(birthdate, deathdate)){ ame = iitialname; bor = ew Date(birthDate); if (deathdate == ull) died = ull; else died = ew Date(deathDate); else { System.out.pritl("Icosistet dates."); System.exit(0); Copyright 2017 Pearso Ltd. All rights reserved. 73 Desigig a Perso Class: the Class Ivariat Ivariat = Αναλλοίωτος περιορισμός Class ivariat: A statemet that is always true for every object of the class A class ivariat ca help to defie a class i a cosistet ad orgaized way For the Perso class, the followig should always be true: A object of the class Perso has a date of birth (which is ot ull), ad if the object has a date of death, the the date of death is equal to or later tha the date of birth Checkig the Perso class cofirms that this is true of every object created by a costructor, ad all the other methods (e.g., the private method cosistet) preserve the truth of this statemet 74 Desigig a Perso Class: the Class Ivariat /** Class ivariat: A Perso always has a date of birth, ad if the Perso has a date of death, the the date of death is equal to or later tha the date of birth. To be cosistet, birthdate must ot be ull. If there is o date of death (deathdate == ull), that is cosistet with ay birthdate. Otherwise, the birthdate must come before or be equal to the deathdate. */ private static boolea cosistet(date birthdate, Date deathdate){ if (birthdate == ull) retur false; else if (deathdate == ull) retur true; else retur (birthdate.precedes(deathdate) birthdate.equals(deathdate)); Desigig a Perso Class: the equals Method public boolea equals(perso otherperso){ if (otherperso == ull) retur false; else retur (ame.equals(otherperso.ame) && bor.equals(otherperso.bor) && datesmatch(died, otherperso.died)); Copyright 2017 Pearso Ltd. All rights reserved. 75 Copyright 2017 Pearso Ltd. All rights reserved. 76 Desigig a Perso Class: the equals ad datesmatch Methods The defiitio of equals for the class Perso icludes a ivocatio of equals for the class Strig, ad a ivocatio of the method equals for the class Date Java determies which equals method is beig ivoked from the type of its callig object Also ote that the died istace variables are compared usig the datesmatch method istead of the equals method, sice their values may be ull Desigig a Perso Class: the matchdate Method /** To match date1 ad date2 must either be the same date or both be ull. */ private static boolea datesmatch(date date1, Date date2){ if (date1 == ull) retur (date2 == ull); else if (date2 == ull) //&& date1!= ull retur false; else // both dates are ot ull. retur(date1.equals(date2)); Copyright 2017 Pearso Ltd. All rights reserved. 77 Copyright 2017 Pearso Ltd. All rights reserved. 78

14 Desigig a Perso Class: the tostrig Method Like the equals method, ote that the Perso class tostrig method icludes ivocatios of the Date class tostrig method public Strig tostrig( ) { Strig diedstrig; if (died == ull) diedstrig = ""; //Empty strig else diedstrig = died.tostrig( ); retur (ame + ", " + bor + "-" + diedstrig); Copy Costructors A copy costructor is a costructor with a sigle argumet of the same type as the class The copy costructor should create a object that is a separate, idepedet object, but with the istace variables set so that it is a exact copy of the argumet object Note how, i the Date copy costructor, the values of all of the primitive type private istace variables are merely copied Copyright 2017 Pearso Ltd. All rights reserved. 79 Copyright 2017 Pearso Ltd. All rights reserved. 80 Copy Costructor for a Class with Primitive Type Istace Variables public Date(Date adate) { if (adate == ull) { //Not a real date. System.out.pritl("Fatal Error."); System.exit(0); moth = adate.moth; day = adate.day; year = adate.year; Copy Costructor for a Class with Class Type Istace Variables Ulike the Date class, the Perso class cotais three class type istace variables If the bor ad died class type istace variables for the ew Perso object were merely copied, the they would simply reame the bor ad died variables from the origial Perso object bor = origial.bor //dagerous died = origial.died //dagerous This would ot create a idepedet copy of the origial object Copyright 2017 Pearso Ltd. All rights reserved. 81 Copyright 2017 Pearso Ltd. All rights reserved. 82 Copy Costructor for a Class with Class Type Istace Variables The actual copy costructor for the Perso class is a "safe" versio that creates completely ew ad idepedet copies of bor ad died, ad therefore, a completely ew ad idepedet copy of the origial Perso object For example: bor = ew Date(origial.bor); Note that i order to defie a correct copy costructor for a class that has class type istace variables, copy costructors must already be defied for the istace variables' classes Copy Costructor for a Class with Class Type Istace Variables public Perso(Perso origial) { if (origial == ull) { System.out.pritl("Fatal error."); System.exit(0); ame = origial.ame; bor = ew Date(origial.bor); if (origial.died == ull) died = ull; else died = ew Date(origial.died); Copyright 2017 Pearso Ltd. All rights reserved. 83 Copyright 2017 Pearso Ltd. All rights reserved. 84

15 Pitfall: Privacy Leaks The previously illustrated examples from the Perso class show how a icorrect defiitio of a costructor ca result i a privacy leak A similar problem ca occur with icorrectly defied mutator or accessor methods For example: public Date getbirthdate(){ retur bor; //dagerous Istead of: public Date getbirthdate(){ retur ew Date(bor); //correct Mutable ad Immutable Classes The accessor method getname from the Perso class appears to cotradict the rules for avoidig privacy leaks: public Strig getname(){ retur ame; //Is't this dagerous? Although it appears the same as some of the previous examples, it is ot: The class Strig cotais o mutator methods that ca chage ay of the data i a Strig object Copyright 2017 Pearso Ltd. All rights reserved. 85 Copyright 2017 Pearso Ltd. All rights reserved. 86 Mutable ad Immutable Classes A class that cotais o methods (other tha costructors) that chage ay of the data i a object of the class is called a immutable class (μη μεταλλάξιμη κλάση) Objects of such a class are called immutable objects It is perfectly safe to retur a referece to a immutable object because the object caot be chaged i ay way The Strig class is a immutable class Mutable ad Immutable Classes A class that cotais public mutator methods or other public methods that ca chage the data i its objects is called a mutable class (μεταλλάξιμη κλάση), ad its objects are called mutable objects (μεταλλάξιμα αντικείμενα) Never write a method that returs a mutable object Istead, use a copy costructor to retur a referece to a completely idepedet copy of the mutable object Copyright 2017 Pearso Ltd. All rights reserved. 87 Copyright 2017 Pearso Ltd. All rights reserved. 88 Deep Copy Versus Shallow Copy Περίγραμμα A deep copy (βαθύ αντίγραφο) of a object is a copy that, with oe exceptio, has o refereces i commo with the origial Exceptio: Refereces to immutable objects are allowed to be shared Ay copy that is ot a deep copy is called a shallow copy (επιφανειακό αντίγραφο). This type of copy ca cause dagerous privacy leaks i a program Στατικές Μεταβλητές και Μέθοδοι Περιβάλλουσες Κλάσεις Αρχικοποιήσεις Αντικειμένων Αποκομιδή Σκυβάλων Αναφορές και Παράμετροι Κλάσεων Αναλλοίωτοι Περιορισμοί Σωστή και Λάθος Χρήση Αναφορών Πακέτα και Javadoc Copyright 2017 Pearso Ltd. All rights reserved

16 Επαναχρησιμοποίηση κλάσεων Βιβλιοθήκες Java και Επαναχρησιμοποίηση Κώδικα (Java packages ad code re-use) Όταν θέλουμε να επαναχρησιμοποιήσουμε υπάρχουσες κλάσεις, ο μεταγλωττιστής θα πρέπει να μπορεί να τις αναζητήσει και να τις βρεί. Όταν ο πηγαίος κώδικας της επαναχρησιμοποιούμενης κλάσης βρίσκεται στο αρχείο μας, το πρόβλημα είναι απλό (o forward referecig problem στην Java). Επίσης, μπορούμε εύκολα να επαναχρησιμοποιήσουμε κλάσεις που βρίσκονται τοποθετημένες στον ίδιο κατάλογο (directory) με τον κώδικά μας Για την «ενσωμάτωση» εξωτερικών κλάσεων χρησιμοποιούμε την εντολή import, με την οποία λέμε στον μεταφραστή να ενσωματώσει μια κλάση ή ένα «πακέτο» (package), δηλ. μια βιβλιοθήκη κλάσεων. Π.χ.: import java.util.arraylist; import java.util.*; 91 Μ. Δικαιάκος, EΠΛ API: Προγραμματιστική Διαπροσωπεία Εφαρμογών To API της κλάσης Charge H Προγραμματιστική Διαπροσωπεία/Διεπαφή Εφαρμογών της JAVA (JAVA API - Applicatio Programmig Iterface) αποτελείται από μια μεγάλη συλλογή έτοιμων δομοστοιχείων λογισμικού, τα οποία υλοποιούν διάφορες χρήσιμες λειτουργικότητες. Το ΑΡΙ είναι οργανωμένο σε λογικές συλλογές (βιβλιοθήκες) κλάσεων και διαπροσωπειών, οι οποίες, στην ορολογία της JAVA, αποκαλούνται πακέτα (packages). Πληροφορίες για τον ορισμό των κλάσεων που υπάρχουν στις βιβλιοθήκες της Java, μπορούν να βρεθούν στα εγχειρίδια χρήσης της γλώσσας, που υπάρχουν σε μορφή HTML: JDK7 Documetatio 93 Μ. Δικαιάκος, EΠΛ233 public class Charge Charge(double x, double y, double q); κατασκευαστής double potetialat(double x, double y) δυναμικό στη θέση x,y λόγω του φορτίου Strig tostrig() μια συμβολοσειρά που αναπαριστά το φορτίο Μ. Δικαιάκος, EΠΛ Το API της μαθηματικής βιβλιοθήκης Ένα πρόγραμμα σε Java // Property.java import java.util.*; public class Property { public static void mai(strig[] args) { Caledar caledar = Caledar.getIstace(); System.out.pritl(caledar.getTime()); Properties p = System.getProperties(); p.list(system.out); System.out.pritl("-- Memory usage:"); Rutime rt = Rutime.getRutime(); System.out.pritl("Total Memory = "+ rt.totalmemory() + " Free Memory = " + rt.freememory()); Μ. Δικαιάκος, EΠΛ Μ. Δικαιάκος, EΠΛ233

17 l Πληροφορίες για κλάσεις getproperies(): στατική μέθοδος της κλάσης System. Επιστρέφει χειριστήριο για ένα αντικείμενο της κλάσης Properties. Η κλάση Properties διαθέτει μια μέθοδο list(), η οποία στέλνει τα περιεχόμενα τού αντικειμένου σε ένα αντικείμενο System.out l Υπερφόρτωση τελεστή + Αυτόματη μετατροπή τύπου Μ. Δικαιάκος, EΠΛ Μ. Δικαιάκος, EΠΛ Μ. Δικαιάκος, EΠΛ Μ. Δικαιάκος, EΠΛ Ορατότητα Ονομάτων (ame visibility) Διαχείριση Ονοµάτων Πώς αποφεύγουµε συγκρούσεις ανάµεσα σε δύο ονόµατα (µεθόδων, µεταβλητών, πεδίων δεδοµένων...); Αποφυγή συγκρούσεων ονομάτων: Μέθοδοι και πεδία δεδομένων είναι πάντοτε φωλιασμένα σε κλάσεις και καλούνται μέσω του ονόματος αντικειμένων. Επομένως, δεν υπάρχει περίπτωση σύγκρουσης με ονόματα μεθόδων ή πεδίων δεδομένων άλλων κλάσεων. Τι συμβαίνει με τα ονόματα των κλάσεων; Η JAVA εισάγει μια σύμβαση σύμφωνα με την οποία κάθε αρχείο Java αντιστοιχεί αυτόματα σε έναν δικό του χώρο ονομάτων (ame space) και κάθε κλάση μέσα στο αρχείο έχει αυτόματα μια μοναδική ταυτότητα (idetifier). Για την αποφυγή συγκρούσεων ανάμεσα σε ομώνυμες κλάσεις διαφορετικών προγραμματιστών, κάθε προγραμματιστής μπορεί να επιδιώκει την χρήση μοναδικών ονομάτων. Π.χ.: cy.ac.ucy.cs.mdd.utils 101 Μ. Δικαιάκος, EΠΛ

18 l Κανόνες προτεραιότητας ονομάτων Πού ορίζεται η κλάση Radom; import java.util.*; public class Test { public static void mai(strig[] args) { Radom rad = ew Radom(); it j = rad.extit() % 100; l Τι συμβαίνει στο ακόλουθο; import java.util.*; public class Radom { it extit() { retur 0; public class Test { public static void mai(strig[] args) { Radom rad = ew Radom(); it j = rad.extit() % 100; Ονοματολογία Κλάσεων και Μεθόδων import java.util.*; class Radom { it extit() { retur 0; public class Test { public static void mai(strig[] args) { java.util.radom rad = ew java.util.radom(); it j = rad.extit() % 100; Μ. Δικαιάκος, EΠΛ Μ. Δικαιάκος, EΠΛ Packages ad Import Statemets Java uses packages to form libraries of classes A package is a group of classes that have bee placed i a directory or folder, ad that ca be used i ay program that icludes a import statemet that ames the package The import statemet must be located at the begiig of the program file: Oly blak lies, commets, ad package statemets may precede it The program ca be i a differet directory from the package Import Statemets We have already used import statemets to iclude some predefied packages i Java, such as Scaer from the java.util package import java.util.scaer; It is possible to make all the classes i a package available istead of just oe class: import java.util.*; Note that there is o additioal overhead for importig the etire package Copyright 2017 Pearso Ltd. All rights reserved. 105 Copyright 2017 Pearso Ltd. All rights reserved. 106 The package Statemet The Package java.lag To make a package, group all the classes together ito a sigle directory (folder), ad add the followig package statemet to the begiig of each class file: package package_ame; Oly the.class files must be i the directory or folder, the.java files are optioal Oly blak lies ad commets may precede the package statemet If there are both import ad package statemets, the package statemet must precede ay import statemets The package java.lag cotais the classes that are fudametal to Java programmig It is imported automatically, so o import statemet is eeded Classes made available by java.lag iclude Math, Strig, ad the wrapper classes Copyright 2017 Pearso Ltd. All rights reserved

19 Package Names ad Directories A Package Name A package ame is the path ame for the directory or subdirectories that cotai the package classes Java eeds two thigs to fid the directory for a package: the ame of the package ad the value of the CLASSPATH variable The CLASSPATH eviromet variable is similar to the PATH variable, ad is set i the same way for a give operatig system The CLASSPATH variable is set equal to the list of directories (icludig the curret directory, ".") i which Java will look for packages o a particular computer Java searches this list of directories i order, ad uses the first directory o the list i which the package is foud Copyright 2017 Pearso Ltd. All rights reserved. 109 Copyright 2017 Pearso Ltd. All rights reserved. 110 Pitfall: Subdirectories Are Not Automatically Imported Whe a package is stored i a subdirectory of the directory cotaiig aother package, importig the eclosig package does ot import the subdirectory package The import statemet: import utilities.umericstuff.*; imports the utilities.umericstuff package oly The import statemets: import utilities.umericstuff.*; import utilities.umericstuff.statistical.*; import both the utilities.umericstuff ad utilities.umericstuff.statistical packages The Default Package All the classes i the curret directory belog to a uamed package called the default package As log as the curret directory (.) is part of the CLASSPATH variable, all the classes i the default package are automatically available to a program Copyright 2017 Pearso Ltd. All rights reserved. 111 Copyright 2017 Pearso Ltd. All rights reserved. 112 Pitfall: Not Icludig the Curret Directory i Your Class Path If the CLASSPATH variable is set, the curret directory must be icluded as oe of the alteratives Otherwise, Java may ot eve be able to fid the.class files for the program itself If the CLASSPATH variable is ot set, the all the class files for a program must be put i the curret directory Specifyig a Class Path Whe You The class path ca be maually specified whe a class is compiled Just add classpath followed by the desired class path This will compile the class, overridig ay previous CLASSPATH settig You should use the classpath optio agai whe the class is ru Copyright 2017 Pearso Ltd. All rights reserved

20 Name Clashes I additio to keepig class libraries orgaized, packages provide a way to deal with ame clashes: a situatio i which two classes have the same ame Differet programmers writig differet packages may use the same ame for oe or more of their classes This ambiguity ca be resolved by usig the fully qualified ame (i.e., precede the class ame by its package ame) to distiguish betwee each class package_ame.classname If the fully qualified ame is used, it is o loger ecessary to import the class (because it icludes the package ame already) Itroductio to javadoc Ulike a laguage such as C++, Java places both the iterface ad the implemetatio of a class i the same file However, Java has a program called javadoc that automatically extracts the iterface from a class defiitio ad produces documetatio This iformatio is preseted i HTML format, ad ca be viewed with a Web browser If a class is correctly commeted, a programmer eed oly refer to this API (Applicatio Programmig Iterface) documetatio i order to use the class javadoc ca obtai documetatio for aythig from a sigle class to a etire package Commetig Classes for javadoc Commetig Classes for javadoc The javadoc program extracts class headigs, the headigs for some commets, ad headigs for all public methods, istace variables, ad static variables I the ormal default mode, o method bodies or private items are extracted To extract a commet, the followig must be true: The commet must immediately precede a public class or method defiitio, or some other public item The commet must be a block commet, ad the opeig /* must cotai a extra * ( /**... */ ) Note: Extra optios would have to be set i order to extract lie commets ( // ) ad private items I additio to ay geeral iformatio, the commet precedig a public method defiitio should iclude descriptios of parameters, ay value retured, ad ay exceptios that might be throw This type of iformatio is preceded by symbol ad is called tags come after ay geeral commet, ad each oe is o a lie by itself /** Geeral Commets about the aparameter Descriptio of What is retured... */ 117 Tags Ruig tags should be placed i the order foud below If there are multiple parameters, each should have its o a separate lie, ad each should be listed accordig to its left-to-right order o the parameter list If there are multiple authors, each should have its o a separate Parameter_Name Versio_Iformatio To ru javadoc o a package, give the followig commad: javadoc d Documetatio_Directory Package_Name The HTML documets produced will be placed i the Documetatio_Directory If the d ad Documetatio_Directory are omitted, javadoc will create suitable directories for the documetatio To ru javadoc o a sigle class, give the followig commad from the directory cotaiig the class file: javadoc ClassName.java To ru javadoc o all the classes i a directory, give the followig commad istead: javadoc *.java Copyright 2017 Pearso Ltd. All rights reserved

21 Optios for javadoc Copyright 2017 Pearso Ltd. All rights reserved. 121

ΕΠΛ133 - Διάλεξη 6η. Kεφ. 5, Savitch. Περίγραμμα. A Person Class Constructor. Designing a Person Class: Constructor

ΕΠΛ133 - Διάλεξη 6η. Kεφ. 5, Savitch. Περίγραμμα. A Person Class Constructor. Designing a Person Class: Constructor Περίγραμμα Aναλλοίωτοι Περιορισμοί ΕΠΛ133 - Διάλεξη 6η Παραβίαση ιδιωτικότητας, Κατασκευαστές αντιγραφείς (copy costructors). Μεταλλάξιμες και μη μεταλλάξιμες κλάσεις Βιβλιοθήκες Java και Javadoc Kεφ.

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

Τι σημαίνει; n Για την αποδοτική δέσμευση δομών δεδομένων μη. n Για την αποφυγή «διαρροών μνήμης» (memory leaks).

Τι σημαίνει; n Για την αποδοτική δέσμευση δομών δεδομένων μη. n Για την αποφυγή «διαρροών μνήμης» (memory leaks). Δέσμευση Μνήμης (memory allocatio) Τι σημαίνει; Διαχείριση Μνήµης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες δέσμευσης μνήμης:

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

Αρχικοποιήσεις Μεταβλητών και Αντικειµένων. Κατασκευαστές. Περίγραμμα. Initializers. Παράδειγμα

Αρχικοποιήσεις Μεταβλητών και Αντικειµένων. Κατασκευαστές. Περίγραμμα. Initializers. Παράδειγμα Περίγραμμα! Αρχικοποίηση και Κατασκευαστές! Υπερφόρτωση Αρχικοποιήσεις Μεταβλητών και Αντικειµένων! Η χρήση του this! Ανασκόπηση αρχικοποιήσεων! Αποκομιδή σκυβάλων Κατασκευαστές 1 2 Initializers! Στην

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

SUPERPOSITION, MEASUREMENT, NORMALIZATION, EXPECTATION VALUES. Reading: QM course packet Ch 5 up to 5.6

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

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

1. For each of the following power series, find the interval of convergence and the radius of convergence:

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.

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

ΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA

ΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA Βασικά στοιχεία προγραµµατισµού στη JAVA Διαχείριση Μνήµης 3 Δέσμευση Μνήμης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες

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

IIT JEE (2013) (Trigonomtery 1) Solutions

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

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

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

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

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

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

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

Homework for 1/27 Due 2/5

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

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

Last Lecture. Biostatistics Statistical Inference Lecture 19 Likelihood Ratio Test. Example of Hypothesis Testing.

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια

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

The Simply Typed Lambda Calculus

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

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

Αρχικοποιήσεις Μεταβλητών και Αντικειµένων

Αρχικοποιήσεις Μεταβλητών και Αντικειµένων Αρχικοποιήσεις Μεταβλητών και Αντικειµένων Initializers Μ. Δικαιάκος Στην Java, πριν την χρήση μιας μεταβλητής αρχέγονου τύπου, η μεταβλητή αυτή θα πρέπει να έχει αρχικοποιηθεί. Διαφορετικά ο μεταφραστής

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

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

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

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή

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

! Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση. ! Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες

! Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση. ! Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες Δέσμευση Μνήμης! Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Διαχείριση Μνήµης! Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες δέσμευσης μνήμης:! Για την αποδοτική δέσμευση

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

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Συστήματα Διαχείρισης Βάσεων Δεδομένων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Φροντιστήριο 9: Transactions - part 1 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Tutorial on Undo, Redo and Undo/Redo

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

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

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

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

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

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

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

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:

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

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

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

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

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

Homework 4.1 Solutions Math 5110/6830

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

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

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

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

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

Homework 3 Solutions

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

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

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)

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Εμβέλεια Μεταβλητών Εμβέλεια = το τμήμα του προγράμματος στο οποίο έχει ισχύ ή είναι ορατή η μεταβλητή.

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

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage

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

derivation of the Laplacian from rectangular to spherical coordinates

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

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

The Heisenberg Uncertainty Principle

The Heisenberg Uncertainty Principle Chemistry 460 Sprig 015 Dr. Jea M. Stadard March, 015 The Heiseberg Ucertaity Priciple A policema pulls Werer Heiseberg over o the Autobah for speedig. Policema: Sir, do you kow how fast you were goig?

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

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

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

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

Ψηφιακή Επεξεργασία Εικόνας

Ψηφιακή Επεξεργασία Εικόνας ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ψηφιακή Επεξεργασία Εικόνας Φιλτράρισμα στο πεδίο των συχνοτήτων Διδάσκων : Αναπληρωτής Καθηγητής Νίκου Χριστόφορος Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. Chapter 8, Savitch. Περίγραμμα. Introduction to Polymorphism. Introduction to Polymorphism. Βασικό Ερώτημα

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 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

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

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

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

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

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Procedures and Functions Stored procedures and functions are named blocks of code that enable you to group and organize a series of SQL and PL/SQL

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

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

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

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

p n r.01.05.10.15.20.25.30.35.40.45.50.55.60.65.70.75.80.85.90.95

p n r.01.05.10.15.20.25.30.35.40.45.50.55.60.65.70.75.80.85.90.95 r r Table 4 Biomial Probability Distributio C, r p q This table shows the probability of r successes i idepedet trials, each with probability of success p. p r.01.05.10.15.0.5.30.35.40.45.50.55.60.65.70.75.80.85.90.95

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

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

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

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

Introduction of Numerical Analysis #03 TAGAMI, Daisuke (IMI, Kyushu University)

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

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

Concrete Mathematics Exercises from 30 September 2016

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)

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

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

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

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

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

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) =

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

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

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

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

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

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

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

department listing department name αχχουντσ ϕανε βαλικτ δδσϕηασδδη σδηφγ ασκϕηλκ τεχηνιχαλ αλαν ϕουν διξ τεχηνιχαλ ϕοην µαριανι

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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

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

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

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

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

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

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

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

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

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

INTEGRATION OF THE NORMAL DISTRIBUTION CURVE

INTEGRATION OF THE NORMAL DISTRIBUTION CURVE INTEGRATION OF THE NORMAL DISTRIBUTION CURVE By Tom Irvie Email: tomirvie@aol.com March 3, 999 Itroductio May processes have a ormal probability distributio. Broadbad radom vibratio is a example. The purpose

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

4.6 Autoregressive Moving Average Model ARMA(1,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

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

Tired Waiting in Queues? Then get in line now to learn more about Queuing!

Tired Waiting in Queues? Then get in line now to learn more about Queuing! Tired Waitig i Queues? The get i lie ow to lear more about Queuig! Some Begiig Notatio Let = the umber of objects i the system s = the umber of servers = mea arrival rate (arrivals per uit of time with

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

Other Test Constructions: Likelihood Ratio & Bayes Tests

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 :

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

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

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

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

Περίγραμμα. Υπερφόρτωση. 1 Μ. Δικαιάκος, EΠΛ133. n Κάθε δεδομένο είναι. n Πεδία Δεδομένων ή Μεταβλητές Στιγμιοτύπου (fields or. n Mεθόδους (methods)

Περίγραμμα. Υπερφόρτωση. 1 Μ. Δικαιάκος, EΠΛ133. n Κάθε δεδομένο είναι. n Πεδία Δεδομένων ή Μεταβλητές Στιγμιοτύπου (fields or. n Mεθόδους (methods) Περίγραμμα Σχεδιασμός Κλάσεων (κεφ. 4) 1 2 Αντικείμενο Επανάληψη: Αντικείμενα και Κλάσεις Η βασική αφαιρετική αναπαράσταση δεδομένων (data abstractio) του Α/Σ Προγραμματισμού. Κάθε δεδομένο είναι αντικείμενο

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

Instruction Execution Times

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

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

EE512: Error Control Coding

EE512: Error Control Coding EE512: Error Control Coding Solution for Assignment on Finite Fields February 16, 2007 1. (a) Addition and Multiplication tables for GF (5) and GF (7) are shown in Tables 1 and 2. + 0 1 2 3 4 0 0 1 2 3

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

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

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

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

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση

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

Μηχανική Μάθηση Hypothesis Testing

Μηχανική Μάθηση Hypothesis Testing ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Μηχανική Μάθηση Hypothesis Testing Γιώργος Μπορμπουδάκης Τμήμα Επιστήμης Υπολογιστών Procedure 1. Form the null (H 0 ) and alternative (H 1 ) hypothesis 2. Consider

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις

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

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible. B-Trees Index files can become quite large for large main files Indices on index files are possible 3 rd -level index 2 nd -level index 1 st -level index Main file 1 The 1 st -level index consists of pairs

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

(C) 2010 Pearson Education, Inc. All rights reserved.

(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.

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

Presentation of complex number in Cartesian and polar coordinate system

Presentation of complex number in Cartesian and polar coordinate system 1 a + bi, aεr, bεr i = 1 z = a + bi a = Re(z), b = Im(z) give z = a + bi & w = c + di, a + bi = c + di a = c & b = d The complex cojugate of z = a + bi is z = a bi The sum of complex cojugates is real:

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

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

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

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

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

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

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

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

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

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

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

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

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

HY150a Φροντιστήριο 3 24/11/2017

HY150a Φροντιστήριο 3 24/11/2017 HY150a Φροντιστήριο 3 24/11/2017 1 Assignment 3 Overview Το πρόγραμμα ζητείται να διαβάζει μια λίστα δεδομένων που περιγράφει τα διαθέσιμα τμήματα μνήμης (blocks) ενός ΗΥ. Το πρόγραμμα ζητείται να μεταφορτώνει

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις

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

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011 Διάρκεια Διαγωνισμού: 3 ώρες Απαντήστε όλες τις ερωτήσεις Μέγιστο Βάρος (20 Μονάδες) Δίνεται ένα σύνολο από N σφαιρίδια τα οποία δεν έχουν όλα το ίδιο βάρος μεταξύ τους και ένα κουτί που αντέχει μέχρι

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

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

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

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

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016 Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Dynamic types, Lambda calculus machines Apr 21 22, 2016 1 Dynamic types and contracts (a) To make sure you understand the

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

Section 9.2 Polar Equations and Graphs

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

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

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

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

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

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies Μαθήματα από το εργαστήριο Όταν η εκφώνηση σας ζητάει να φτιάξετε μία μέθοδο που παίρνει

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

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook Βήμα 1: Step 1: Βρείτε το βιβλίο που θα θέλατε να αγοράσετε και πατήστε Add to Cart, για να το προσθέσετε στο καλάθι σας. Αυτόματα θα

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Ισότητα Strings class StringTest public static void main(string args[]) String x1 = "java"; String y1 = "java"; System.out.println("1.

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Oracle SQL Developer An Oracle Database stores and organizes information. Oracle SQL Developer is a tool for accessing and maintaining the data

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

Partial Trace and Partial Transpose

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

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

Στοίβες. ΟΑΤ της Στοίβας. Περιγραφή και Υλικό Ανάγνωσης. Αφηρηµένοι Τύποι εδοµένων (AΤ )

Στοίβες. ΟΑΤ της Στοίβας. Περιγραφή και Υλικό Ανάγνωσης. Αφηρηµένοι Τύποι εδοµένων (AΤ ) Περιγραφή και Υλικό Ανάγνωσης Στοίβες ΟΑφηρηµένος Τύπος εδοµένων της Στοίβας (tack Abstract Data Type (ADT)) (..) Εφαρµογές για Στοίβες (..) Υλοποίηση µε βάση πίνακες (..) Στοίβα βασισµένη σε πίνακα η

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

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

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

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

ΑΛΕΞΑΝΔΡΟΣ ΠΑΛΛΗΣ SCHOOLTIME E-BOOKS

ΑΛΕΞΑΝΔΡΟΣ ΠΑΛΛΗΣ SCHOOLTIME E-BOOKS ΟΜΗΡΟΥ ΙΛΙΑΔΑ ΑΛΕΞΑΝΔΡΟΣ ΠΑΛΛΗΣ SCHOOLTIME E-BOOKS www.scooltime.gr [- 2 -] The Project Gutenberg EBook of Iliad, by Homer This ebook is for the use of anyone anywhere at no cost and with almost no restrictions

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

Διάλεξη 5: Δείκτες και Συναρτήσεις

Διάλεξη 5: Δείκτες και Συναρτήσεις Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 5: Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 5-1 Περιεχόμενο

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

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

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

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

Modbus basic setup notes for IO-Link AL1xxx Master Block

Modbus basic setup notes for IO-Link AL1xxx Master Block n Modbus has four tables/registers where data is stored along with their associated addresses. We will be using the holding registers from address 40001 to 49999 that are R/W 16 bit/word. Two tables that

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

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

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

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

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

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

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

C.S. 430 Assignment 6, Sample Solutions

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

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

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

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

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

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

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

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

2 Composition. Invertible Mappings

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,

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

On Generating Relations of Some Triple. Hypergeometric Functions

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

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

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

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

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

5.4 The Poisson Distribution.

5.4 The Poisson Distribution. The worst thing you can do about a situation is nothing. Sr. O Shea Jackson 5.4 The Poisson Distribution. Description of the Poisson Distribution Discrete probability distribution. The random variable

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

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

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

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