API: Applications Programming Interface



Σχετικά έγγραφα
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

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

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

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

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

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

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

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

Θα εμφανίσει την τιμή 232 αντί της ακριβούς

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

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

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

Απλές εντολές: έκφραση + ;

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

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

Διάλεξη 20: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

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

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

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

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

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

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

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

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

Mεταβλητές (variables) και Σταθερές (constants)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 6: Pass-by-value και φαινομενικό pass-by-reference

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

½ Τετραγωνίζω=κατασκευάζωκάτιίσουεμβαδούμεδοθέντετράγωνο. Δείτεκαιτην υποσημείωσηστηνπρότασηβ 14. ¾

ÈÖÓ Ö ÑÑ Ò ÑÓÖ Û ÈÖÓÔØÙÕ ÛÒ ËÔÓÙ ÛÒ ÌÑ Ñ ØÓ Å Ñ Ø ÛÒ È Ò Ô Ø Ñ Ó È ØÖÛÒ Å Ñ Û Ø Ò Ô Ø Ñ ØÛÒ ÍÔÓÐÓ ØôÒ

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 5: Κατασκευαστές (Constructors)

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

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

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

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

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

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

Προσομοίωση Δημιουργία τυχαίων αριθμών

Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με τη Java

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

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

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Επίδοση Υπολογιστικών Συστημάτων. Α.-Γ. Σταφυλοπάτης.

Βασικά της γλώσσας JAVA

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

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

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

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

ΕΠΛ131 Αρχές Προγραμματισμού

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής

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

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

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

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

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

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

Wrapper Classes Τοποθέτηση Δεδομένων Κλήση Μεθόδων. Παναγιώτης Σφέτσος, PhD

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

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

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

ΕΡΓΑΣΙΑ 4 - Αντικειμενοστραφής Υλοποίηση του Συστήματος Κατανομής Θέσεων σε Προγράμματα Σπουδών

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 4: Αντικειμενοστραφής Προγραμματισμός (Μέθοδοι, Κλάσεις, Αντικείμενα)

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

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

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

Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, :00-10:00 π.μ.

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Copy Constructor Deep and Shallow Copies

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Tοπικές μεταβλητές To αντικείμενο this Accessor, Mutator μέθοδοι

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

Εισαγωγή στις Φυσικές Επιστήμες (ΦΥΕ14) Περίοδος ΕΡΓΑΣΙΑ 1 η. Τότε r r b c. και ( )

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

Transcript:

ÒØ Ñ ÒÓ ØÖ ÔÖÓ» Ñ ÒØ Ñ ÒÓ ØÖ ÔÖÓ Ö ÑÑ Ø Ñ ½ Ö Ø Ò Ô Ö Ø ÒØ Ñ ÒÛÒ ÒÒÓ ôòøóù ÔÖ Ñ Ø Ó ÑÓÙ Ì ÔÓ ÓÑ ÒÛÒ Ì µ (i) ÒÓÐÓØ ÑôÒ (ii)ôö Ü º Ð ØÖ Ò Ò ÖÛÔÓ ØÖ ÔÐ Ò Ø Ó Ó Ù Ø Ñ Ø ººº ½ºÈÖÛØ ÓÒØ Ø ÔÓ int double char ºººµ Ñ Ó ÔÒ ÔÓÐÙôÒÙÑ ÛÑ ØÖ Õ Ñ Ø ººº Ì ÒØ Ñ Ò ÕÖ ÑÓÔÓ Ó ÒØ ÔÛ Ö ô Ó ÔÖÛØ ÓÒØ Ø ÔÓ ÔºÕº Ò ÓÖ Ñ Ø» ÔÓØ Ð Ñ Ø Ñ ÛÒµº ¾ºË Ò ØÓ Ø ÔÓ ¹ ÒØ Ñ Ò ÔºÕºString Scannerµº ³ Ò Ð ÓÖ Ñ ÒÓÌ ÕÛÖÞ Ø ÓÑ Ò Ø Ð ØÓÙÖ ÒÕÖ Þ Ø Ò Ü ÖÓÙÑ ÔÛ Õ ÙÐÓÔÓ Ò Ì ÔÖÓ Ñ ÒÓÙÒ ØÓÒÕÖ ÑÓÔÓ ÓÙÑ encapsulationµ ØÓÙ Ô ØÓÙÙÔ ÐÓ ÔÓÙÙÔÓÐÓ ÑÓ º String Ò Ø Ö Ì ØÓJava APIº

API: Applications Programming Interface (x, y) V = kq/r R Απόνόμο Coulomb,τοδυναμικό Vστο (x, y) λόγωφορτίου qστο (x 0, y 0 )είναι q (x0, y0) V = kq/r, όπου Rηαπόστασητων2σημείωνκαι kη ηλεκτροστατική σταθερά. Τοδυναμικόστο (x, y)λόγωπολλαπλώνφορτίων q 1, q 2,..., q n : V = kq 1 /R 1 + kq 2 /R 2 + + kq n /R n ΑνέχουμεστηδιάθεσημαςτονΤΔ Charge(δηλ.τοαρχείο Charge.class) μπορούμε να υπολογίσουμε το δυναμικό σε κάποιο σημείο αρκεί να γνωρίζουμε μόνο το API για την κλάση Charge. ½ ¼ Ç Ø Ù Ø Ò Ñ Ñ Ó ÓÔÓÙ Õ ØÓ Ó API Ø Ò Ð Charge ÒÓÑ Ñ Ø Ò Ð Ò Ô ØÖ ØÔÓØ º Ñ ÓÙÖ ÒØ Ñ Ò Ø ÔÓÙChargeº public class Å Ó Ó ÒØ Ñ ÒÓÙ Õ staticµôóùùôóðó Þ ØÓ y)º ÙÒ Ñ ØÓ(x, String tostring() Charge(double x0, double y0, double q) Å Ó Ó ÒØ Ñ ÒÓÙ Õ staticµôóùñ Ø ØÖ Ô ØÓÒØ ÔÓ double potentialat(double x, double y) Charge Ø ÔÓStringº

Õ Ö ÒØ Ñ ÒÛÒ Δήλωση μεταβλητών που αναφέρονται σε αντικείμενα Charge p; String s; Δημιουργία αντικειμένων με τον κατασκευαστή p = new Charge(0.0, 0.0, 13.4); s = new String("Hello, world"); Scanner input = new Scanner(System.in); Charge c1 = new Charge(0.5, 1.0, 25.2); Charge c2 = new Charge(0.0, 0.8, -5.9); Charge c3 = new Charge(0.5, 1.0, 25.2); Κλήση μεθόδων αντικειμένων double v = c1.potentialat(2.1, -2.5); 172 È Ö Ñ ÕÖ Ø Charge import java.util.*; public class Potential { public static void main(string args[]) { Scanner input = new Scanner(System.in); System.out.print("x? "); double x = input.nextdouble(); System.out.print("y? "); double y = input.nextdouble(); y); Charge c1 = new Charge(0.5, 1.0, 25.2); Charge c2 = new Charge(0.0, 0.8, -5.9); double v1 = c1.potentialat(x, double v2 = c2.potentialat(x,

System.out.println("V from "+c1+": "+v1); System.out.println("V from "+c2+": "+v2); System.out.println("Total V: "+(v1+v2)); ³ ÜÓ Ó ØÓ Ñ Ó(0, 0) V from charge 25.2 at (0.5,1.0): 2.0263069126664893E11 V from charge -5.9 at (0.0,0.8): -6.630125E10 Total potential: 1.3632944126664893 E11 ÔÓ Ù Ñ Ø Ð ØÛÒ Ø ÑÒ Ñ ½ program code + 1. Static μεταβλητές. Κάθε μεταβλητή που δηλώνεται static αποθηκεύεται στην αρχή της μνή- static data μης μαζί με τον κώδικα του προγράμματος. 2. Δυναμικές μεταβλητές- αντικείμενα. Ολα τα αντικείμενα που δημιουργούνται με new αποθηκεύονται σε ειδική περιοχή της μνήμης την heap. 3. Τοπικές μεταβλητές. Οι μεταβλητές που δηλώνονται μέσα σε μεθόδους αποθηκεύονται σε Free Memory ειδική περιοχή της μνήμης την stack. Ειδικότερα, η περιοχή από την stack που δεσμεύεται από μια μέθοδο λέγεται stack frame και αποδεσμεύεται όταν η μέθοδος STACK επιστρέφει. HEAP

Õ Ö ÒØ Ñ ÒÛÒÑ Ò ÓÖ ΜΝΗΜΗ 64ΚΒ= 65535 Bytes 0 1 2 3 heap stack 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 65533 65534 65535 1000 1040 0.5 1.0 25.2 0.0 0.8 5.9 64496 v1 64500 1040 c2 64504 1000 c1 ½ Á Ø Ø ØÛÒØ ÔÛÒ Ò ÓÖ Ενα μοναδικό αντικείμενο μπορεί να έχει πολλά ονόματα που αναφέρονται σ αυτό. Μπορούμε να δημιουργήσουμε ένα νέο όνομα για το αντικείμενο χωρίς να αλλάξουμε την τιμή του. Charge p = new Charge(0.0, 0.0, 13.4); Charge s = p; // s, p refer to the same object! int a = 3; int b = a; // a, b different but with same value! Ορφανά αντικείμενα String s = "The answer is 42"; String r = "What is the question?"; s = r; Οσυλλέκτηςσκουπιδιώντης Java.

Å Ó Ó Ð Ñ Ó Ó ÒØ Ñ ÒÛÒ Οι μέθοδοι που δηλώνονται static σχετίζονται με την κλάση και όχι με κάποιο αντικείμενο που παράγει η κλάση: x = Math.sqrt(a): Ο κύριος σκοπός τους είναι να υλοποιούν συναρτήσεις. Χωρίς τον προσδιορισμό static αναφέρονται σε συγκεκριμένο αντικείμενο που δημιουργήθηκε από την κλάση: double v1 = c1.potentialat(x, y); double x = input.nextdouble(); Ο κύριος σκοπός τους είναι να υλοποιούν πράξεις για τον συγκεκριμένοτύποδεδομένων. 178 API Ø Ò Ð String Εστω String a = "The answer "; String b = new String("is 42"); public class String(Μερικές μόνο μέθοδοι της κλάσης) int length() b.length() // 5 char charat(int i) a.charat(0) // T a.charat(2) // e boolean equals(string t) a.equals(b) // false

int compareto(string t) "ABC".compareTo("ABCD") // < 0 "ABCD".compareTo("ABC") // > 0 "ABCD".compareTo("ABCD") // == 0 String touppercase(), String tolowercase() a.touppercase() // "THE ANSWER " a.touppercase().tolowercase() //??? ½ ¼ È Ö Ñ Ø Ñ Strings Μέθοδος που ελέγχει αν ένα String είναι παλίνδρομο(διαβάζεται και ανάποδα) public static boolean ispalindrome( String s) { int n = s.length(); for (int i = 0; i < n/2; i++) if (s.charat(i)!= s.charat(n-i-1)) return false; return true; Τι θα επιστρέψει η κλήση ispalindrome("tattarrattat");

À Ð Charge public class Charge { private final double rx, ry; private final double q; public Charge(double x0, double y0, double q0) { rx = x0; ry = y0; q = q0; public String tostring() { return "charge "+q+" at ("+rx+","+ry+")"; ½ ¾ public double potentialat(double x, double y) { double k = 8.99e9; double dx = x - rx; double dy = y - ry; return k*q/math.sqrt(dx*dx+dy*dy);

Ì Ô Ö Õ Ñ Ð Τις οδηγίες για τη δημιουργία και διαχείριση αντικειμένων: Πεδία(μεταβλητές)(π.χ. rx, q). Συνήθως private, δηλ. μόνο μέθοδοι της κλάσης μπορούν να διαβάσουν/αλλάξουν την τιμή τους. Οταν επιπλέονείναικαι finalητιμήτουςμετατην αρχικοποίηση δεν αλλάζει. Κατασκευαστές(π.χ. η ειδική μέθοδος Charge) Μέθοδοι αντικειμένων. Μπορεί επίσης να περιέχει υποστηρικτικά: static πεδία(μεταβλητές κλάσης). staticμεθόδους(μεθόδουςκλάσης). Å Ó Ö ÑÓ public class Complex { private final double re; private final double im; 184 public Complex(double real, double imag) { re = real; im = imag; public Complex plus(complex b) { // addition of this number and b double real = re + b.re; double imag = im + b.im; return new Complex(real, imag);

public Complex times(complex b) { // myltiply this number by b double real = re * b.re - im * b.im; double imag = re * b.im + im * b.re; return new Complex(real, imag); public double abs() { return Math.sqrt(re*re + im*im); public double re() { return re; public double im() { return im; ½ public String tostring() { return re + " + " + im + "i"; public static void main(string args[]) { Complex x = new Complex(1.0, 1.0); Complex y = x; y = y.times(y).plus(x); y = y.times(y).plus(x); System.out.println(y);