«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» ΚΕΦΑΛΑΙΟ 3: ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΜΕΘΟΔΟΙ

Σχετικά έγγραφα
«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφϊλαιο2: Βαςικϊ ςτοιχεύα τησ γλώςςασ

Βαγγϋλησ Οικονόμου Διϊλεξη 6. Δομ. Προγραμ. - Συναρτόςεισ - Διϊλεξη 6

Βαγγϋλησ Οικονόμου Διϊλεξη 5 ΠΙΝΑΚΕΣ. Δομ. Προγραμ. - Διϊλεξη 5 1

Βαγγϋλησ Οικονόμου Διϊλεξη 4. Δομ. Προγραμ. - Διϊλεξη 4

= 8 ενώ Shift + = * * 8

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α Α1 Μονάδες 10 Μονάδες 4 ΤΕΛΟΣ 1ΗΣ ΣΕΛΙΔΑΣ

Μαύροσ Γιϊννησ Μαθηματικόσ

Εντολζς του Λειτουργικοφ Συστήματος UNIX

ΠΟΛΤΩΝΤΜΑ. ΠΑΡΑΜΕΣΡΟ λϋγεται το ςύμβολο, ςυνόθωσ γρϊμμα, του οπούου το πεδύο οριςμού ορύζεται ϋτςι ώςτε να ιςχύει κϊποια προώπόθεςη.

Παθήςεισ του θυροειδή ςε άτομα με ςύνδρομο Down: Πληροφορίεσ για γονείσ και δαςκάλουσ. Τι είναι ο θυροειδήσ αδένασ;

ΑΡΧΗ 1Η ΕΛΙΔΑ ΘΕΜΑ A Α. Μονάδεσ 10 Μονάδεσ 5 Μονάδεσ 4 4 Ε. 1 Μονάδεσ 2 Ε. 2 Μονάδεσ 5 ΣΕΛΟ 1Η ΕΛΙΔA

19/10/2009. Γεωγραφικά Συςτήματα Πληροφοριϊν Spatial Operations. Σήμερα... Τφποι ερωτήςεων (Queries)

ΚΕΥΑΛΑΙΟ 2 Σο εςωτερικό του υπολογιςτό

ενϊριο Διδαςκαλύασ: Αντικεύμενα και Μϋθοδοι

ΕΡΓΑΣΗΡΙΑΚΑ ΜΑΘΗΜΑΣΑ Γ ΓΤΜΝΑΙΟΤ

ενϊριο Διδαςκαλύασ: Βαςικϊ ςτοιχεύα τησ Java και ςυναρτόςεισ

ΠΡΩΣΟ ΕΣ ΑΚΗΕΩΝ ΓΙΑ ΣΟ ΜΑΘΗΜΑ ΠΟΟΣΙΚΗ ΑΝΑΛΤΗ ΔΙΟΙΚΗΣΙΚΩΝ ΑΠΟΥΑΕΩΝ

19/10/2009. Προηγοφμενη βδομάδα... Σήμερα Γεωγραφικά Συςτήματα Πληροφοριϊν Χωρικά Μοντζλα Δεδομζνων. Δομή του μαθήματοσ

Εγχειρίδιο Χρήσης των Εργαλείων Αναγνώρισης Χαρισματικών Μαθητών στα Μαθηματικά

NetMasterII ςύςτημα μόνιμησ εγκατϊςταςησ επιτόρηςη και καταγραφό ςημϊτων από αιςθητόρια και μετατροπεύσ κϊθε εύδουσ ςύςτημα ειδοπούηςησ βλϊβη

Βαςικέσ Έννοιεσ Λειτουργικών Συςτημάτων

ΕΑΡΙΝΟ ΠΡΟΓΡΑΜΜΑ 2010 ΕΡΓΑΣΗΡΙΑ C++ Βαςιλϊντα Κουμπό

ΔΙΑΓΩΝΙΣΜΑ ΦΥΣΙΚΗΣ A ΛΥΚΕΙΟΥ

Μεθοδολογύα & Λυμϋνεσ Αςκόςεισ

Μαθηματικϊ Γ' Ενιαύου Λυκεύου (μϊθημα κατεύθυνςησ)

ΠΣΤΦΙΑΚΗ ΕΡΓΑΙΑ. Ανϊπτυξη δομημϋνων λύςεων λογιςμικού με χρόςη Python

ΔΙΑΓΩΝΙΜΑ ΥΤΙΚΗ B ΛΤΚΕΙΟΤ ΓΕΝΙΚΗ ΗΛΕΚΣΡΙΚΟ ΠΕΔΙΟ

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

Στο λογιςμικό (software) περιλαμβϊνονται όλα τα προγράμματα του υπολογιςτό. Το Λογιςμικό χωρύζετε ςε δύο μεγϊλεσ κατηγορύεσ:

Τεχνικόσ Μαγειρικόσ Τϋχνησ Αρχιμϊγειρασ (Chef) Β Εξϊμηνο

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

Μεθοδολογύα & Λυμϋνεσ Αςκόςεισ

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

Το τςάϊ ςυντροφιά ςτην δουλειά

ενϊριο Διδαςκαλύασ: Ανϊπτυξη Παιχνιδιού-Μϋροσ 1

ημειώςεισ των αςκόςεων του μαθόματοσ Κεφαλαιαγορϋσ- Επενδύςεισ Ενότητα: Χρηματοοικονομικόσ Κύνδυνοσ Διδϊςκων : Αγγελϊκησ Γιώργοσ Εργαςτηριακόσ

ΜΑΘΗΜΑΤΙΚΑ Α ΤΑΞΗ ΓΥΜΝΑΣΙΟΥ. Β ΓΥΜΝΑΣΙΟΥ - ΜΑΘΗΜΑΤΙΚΑ Σελίδα 1

Επιςκόπηςη Τεχνολογιών Διαδικτύου

ΤΕΙ ΑΜΘ-Σχολό Διούκηςησ και Οικονομύασ-Τμόμα Λογιςτικόσ και Χρηματοοικονομικόσ

Περιεκτικότητα ςε θρεπτικϊ ςτοιχεύα Ικανότητα ανταλλαγόσ κατιόντων Οξύτητα εδϊφουσ (ph)

Φοιτητόσ : Κουκϊρασ Παραςκευϊσ ΑΜ : 06/3059 Ίδρυμα/Τμόμα : Αλεξϊνδρειο Τεχνολογικό Εκπαιδευτικό Ιδρυμα/Πληροφορικόσ

ενϊριο Διδαςκαλύασ: Ανϊπτυξη Παιχνιδιού-Μϋροσ 2

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

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

ΗΛΕΚΣΡΟΝΙΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΣΟΤ ΦΟΛΕΙΟΤ ΠΡΟ ΣΟΤ ΓΟΝΕΙ. - Θέςη υπεύθυνου προςώπου για την ςυμπλήρωςη του ερωτηματολογίου: Ερωτηματολόγιο

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

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ. Μνήμη

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

ΕΚΠΑΙΔΕΤΣΙΚΟ ΕΝΑΡΙΟ ΓΙΑ ΣΗΝ ΑΞΙΟΠΟΙΗΗ ΚΑΙ ΕΥΑΡΜΟΓΗ ΣΩΝ ΣΠΕ ΣΗ ΔΙΔΑΚΣΙΚΗ ΠΡΑΞΗ

ΠΡΑΚΣΙΚΟ ΟΔΗΓΟ ΓΙΑ ΣΟ STORYJUMPER

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

Μαθηματικοπούηςη. Μαθηματικοπούηςη. Μαθηματικϋσ δεξιότητεσ. Κατακόρυφη

τεφανύδησ Κ. Βαςύλειοσ Τπεύθυνοσ ΚΕΠΛΗΝΕΣ Φαλκιδικόσ

α = 2q + r με 0 r < 2 Πιθανϊ υπόλοιπα: r = ο: α = 2q r = 1: α = 2q + 1 Ευκλεύδεια διαύρεςη Ειςαγωγό ςτισ βαςικϋσ ϋννοιεσ των Μαθηματικών Διαιρετότητα

22/11/2009. Προηγοφμενη βδομάδα... Δεδομζνα απο Δευτερεφουςεσ πηγζσ. Αυτή την βδομάδα...

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

Πανελλήνιεσ Εξετάςεισ 2011 Φυςική Θετικήσ & Τεχνολογικήσ Κατεύθυνςησ. 20 Μαΐου 2011 Πρόχειρεσ Απαντήςεισ

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

ενθαρρύνοντασ τη ςυνέχιςη των προβλημάτων

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

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

Περίληψη. Μαρία Ιωϊννα Αργυροπούλου Έλενα Παππϊ

Μαθηματικϊ. Β' Ενιαύου Λυκεύου. (μϊθημα κοινού κορμού) Υιλοςοφύα - κοπού

Η νέα Υπηρεςία Έρευνασ Οικονομικού Εγκλήματοσ Ζητήματα από τη ςυμπλοκή ποινικήσ και διοικητικήσ ελεγκτικήσ διαδικαςίασ

Πίνακασ τεχνικών και λειτουργικών προδιαγραφών. Πλόρεσ ελληνικό περιβϊλλον (interface) για Διαχειριςτϋσ, Εκπαιδευτϋσ, Εκπαιδευόμενουσ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ. Δωδϋκατη Διϊλεξη Έλεγχοσ Συςτόματοσ

ΜΑΘΗΜΑΤΙΚΑ Γ ΤΑΞΗ ΓΥΜΝΑΣΙΟΥ

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

Χαϊδάρησ Δημήτρησ. Επιβλέπων καθηγητήσ: Ψαρράσ Νικόλαοσ

Δίκτυα Η/Υ ςτην Επιχείρηςη

ΔΙΑΣΡΟΦΗ ΚΑΣΑ ΣΗ ΔΙΑΡΚΕΙΑ ΣΟΤ ΘΗΛΑΜΟΤ ΣΖΕΛΑΛΗ ΑΝΑΣΑΙΑ ΜΑΙΑ ΙΠΠΟΚΡΑΣΕΙΟ Γ.Π.Ν.Θ.

1. ΕΙΑΓΩΓΗ ~ 1 ~ τυλιανού. 1 Σο ςχϋδιο μαθόματοσ ςυζητόθηκε με το ςύμβουλο του μαθόματοσ τησ Νϋασ Ελληνικόσ Γλώςςασ κ. Μϊριο

Τύποι δεδομένων, τελεστές, μεταβλητές

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

ΚΟΙΛΑ-ΚΤΡΣΑ-ΗΜΕΙΑ ΚΑΜΠΗ

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

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

Θεςμική Αναμόρφωςη τησ Προ-πτωχευτικήσ Διαδικαςίασ Εξυγίανςησ Επιχειρήςεων

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

ςτην περύπτωςη που η μόνη αλλαγό αφορϊ ςτη Δημόςια Φρηματοδότηςη ανϊ ϋτοσ (2013, 2014).

Υλοποίηςη Αλγορίθμου με υπολογιςτή - Προγραμματιςμόσ

Θ Βαζικέρ Έννοιερ Αλγοπίθμων Ο όπορ αλγόπιθμορ

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

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

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

Ημερύδα για τη Διαφορετικότητα ςτα Σχολεύα. Σϊββατο 6 Οκτωβρύου π.μ μ.μ. ImpactHub Athens. Τϊνια Μϊνεςη, Νηπιαγωγόσ & Δαςκϊλα, Med

Διομότιμα Συςτόματα (P2P systems) To ςύςτημα Pastry

Υποχρεώςεισ των μαθητών κατϊ τη διϊρκεια τησ εξϋταςησ

Α. ΕΛΕΤΘΕΡΕ ΜΕΣΕΓΓΡΑΥΕ

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

Δίκτυα Η/Υ ςτην Επιχείρηςη

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

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

Τρύτη Διϊλεξη Μοντϋλα Διαδικαςύασ Λογιςμικού Μϋροσ Α

ΣΕΦΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΤΣΙΚΟ ΙΔΡΤΜΑ ΚΑΒΑΛΑ

Άδειες Χρήσης. Διδακτική Μαθηματικών I. Πρόσθεση-αφαίρεση. Διδάσκων: Επίκουρος Καθ. Κ. Τάτσης

ERIC DE CORTE & LIEVEN VERSCHAFFEL Katholieke Universiteit Leuven - Belgium

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

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

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

Transcript:

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» ΚΕΦΑΛΑΙΟ 3: ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΜΕΘΟΔΟΙ 1

2 3.1 Συμβολοςειρζσ

Ένασ πολύ χρόςιμοσ τύποσ εύναι η κλάςη String, του πακϋτου java.lang, η οπούα χρηςιμεύει ςτην αναπαρϊςταςη ς υ μ β ο λ ο ς ε ι ρ ώ ν (αλφαριθμητικϊ). 3

Οι ςυμβολοςειρϋσ εύναι μύα ςειρϊ (ακολουθύα) από ςύμβολα, που μπορεύ να εύναι γρϊμματα, αριθμού ό οποιοδόποτε ϊλλο ςύμβολο του κώδικα UNICODE. Η κλϊςη String επύςησ, περικλεύει και όλη τη βαςικό λειτουργικότητα των ςυμβολοςειρών. Μια ςταθερϊ τύπου ςυμβολοςειρϊ περικλεύεται ανϊμεςα ςε διπλϊ ειςαγωγικϊ. 4

Ζνα String εύναι ϋνα αντικεύμενο όπωσ όλα τα αντικεύμενα, πρϋπει να δηλωθεύ και να δημιουργηθεύ με την εντολό new String s1 = new String(); Εναλλακτικϊ μπορούμε να δημιουργόςουμε ϋνα String, αποδύδοντασ του ωσ τιμό μύα ςταθερϊ ςυμβολοςειρϊ, String s2= "George"; 5

Ο τελεςτήσ + όταν εφαρμόζεται ςε ςυμβολοςειρϋσ τισ ενώνει ςε μύα πρόταςη. Π.χ.: I like Java + + Programming I like Java Programming 6

Ο τελεςτήσ + Αν γρϊψουμε: System.out.println ("Το άθροιςμα είναι " + 15+ 25); Στην οθόνη εμφανύζεται το μόνυμα: Το ϊθροιςμα εύναι 1525. όταν του τελεςτό + προηγεύται κϊποιο string, μετατρϋπει ότι βρύςκει δεξιϊ του επύςησ ςε string, ανεξϊρτητα αν εύναι αριθμόσ 7 Έτςι ςτο παρϊδειγμα μασ εμφανύζονται απλϊ οι δύο αριθμού χωρύσ να υπολογύζεται το ϊθροιςμα τουσ.

Ο τελεςτήσ + Αν θϋλουμε να γύνει πρώτα η πρϊξη τησ πρόςθεςησ των δύο αριθμών και να εμφανιςτεύ ςτην οθόνη το ϊθροιςμϊ τουσ, πρϋπει η πρϊξη τησ πρόςθεςησ των δύο αριθμών να μπει ςε παρϋνθεςη ώςτε να προηγηθεύ τησ ςυνϋνωςησ με το string. System.out.println ("Το άθροιςμα είναι " + (15 + 25)); 8

Ο τελεςτήσ + System.out.println (15+25+ ευρώ ); αυτό που θα εμφανιςτεύ ςτην οθόνη θα εύναι: 40 ευρώ. 9

Μζθοδοι Η κλϊςη String εφοδιϊζει τα αντικεύμενα τησ με διϊφορεσ χρόςιμεσ μεθόδουσ: charat(index) η οπούα επιςτρϋφει τον χαρακτόρα ςτην θϋςη index length η οπούα επιςτρϋφει το μόκοσ τησ λϋξησ, equals(string) η οπούα ςυγκρύνει δύο ςυμβολοςειρϋσ αν ϋχουν το ύδιο περιεχόμενο. Να ςημειώςουμε ότι η αρύθμηςη των χαρακτόρων ςε ϋνα αντικεύμενο τύπου String ξεκινϊει από το 0 και όχι από το 1. 10

Μζθοδοι - Παραδείγματα String s1 = "Write Once, "; Δεςμεύει μνήμη για το αντικείμενο s1 και τησ αποδίδει περιεχόμενο το Write Once String s2 = "Run Anywhere."; Δεςμεύει μνήμη για το αντικείμενο s2 και τησ αποδίδει περιεχόμενο το Run Anywhere. 11 String s3 = s1 + s2; Δεςμεύει μνήμη για το αντικείμενο s3 και τησ αποδίδει περιεχόμενο το "Write Once, Run Anywhere."

Μζθοδοι - Παραδείγματα System.out.println( s3.charat(0)); Εμφανίζει το γράμμα W System.out.println( s3.length() ); Εμφανίζει τον αριθμό 25 που είναι το μήκοσ τησ ςυμβολοςειράσ s3 System.out.println("Σύγκριςη: " + s1.equals(s2) ); Εμφανύζει το κεύμενο: Σύγκριςη: false, αφού τα δύο string s1 και s2 δεν ϋχουν το ύδιο περιεχόμενο. 12

Σελεςτή ιςότητασ == Δε ςυγκρύνουμε δύο ςυμβολοςειρϋσ με τον τελεςτό ιςότητασ ==, ακόμη και αν ϋχουν το ύδιο περιεχόμενο θα παύρνουμε πϊντα ςαν αποτϋλεςμα false. Επειδό τα δύο string εύναι αντικεύμενα ο τελεςτόσ == δε θα ςυγκρύνει το περιεχόμενο τουσ, αλλϊ τη διεύθυνςη τουσ ςτη μνόμη. 13

14 3.2 Δημιουργία Αντικειμζνων

Ο τελεςτήσ new Frog kermit = new Frog(); Fly myga=new Fly(); δημιουργεί ένα αντικείμενο τησ κλάςησ, το οποίο και αποτελεί μοναδικό ςτιγμιότυπο τησ και επιςτρέφει επίςησ ένα δείκτη αναφοράσ (reference) ςε αυτό. δεςμεύει επίςησ την απαιτούμενη μνήμη για το αντικείμενο που δημιουργείται. 15 Οι μεταβλητέσ kermit και myga είναι οι δείκτεσ αναφοράσ αντίςτοιχα ςτα αντικείμενα που δημιουργήςαμε προηγουμένωσ. Χρηςιμοποιώντασ αυτό το δείκτη αναφοράσ μπορούμε να προςπελάςουμε το αντικείμενο.

3.3 Κλήςη μεθόδων των αντικειμζνων 16

Μζθοδοι ορίζουν τη ςυμπεριφορά των αντικειμένων δηλαδό τισ λειτουργύεσ που μπορεύ να εκτελϋςει ϋνα αντικεύμενο. Μια μέθοδοσ είναι ένα μπλοκ κώδικα που έχει ένα όνομα και μπορούμε να την καλέςουμε από οπουδήποτε μέςα από το πρόγραμμα μασ (εύναι το ιςοδύναμο των ςυναρτόςεων και των υποπρογραμμϊτων ςτον αντικειμενοςτρεφό προγραμματιςμό). 17

Η ςφνταξη μιασ μεθόδου περιλαμβάνει τα εξήσ ςτοιχεία: Τον προςδιοριςτή πρόςβαςησ. Μπορεί να είναι public, private ή protected Τον τύπο τησ πληροφορίασ που επιςτρέφουν. η μϋθοδοσ int getspeed() επιςτρϋφει ϋναν ακϋραιο αριθμό η μϋθοδοσ boolean isatedge() επιςτρϋφει true ό false Αν η μϋθοδοσ δεν επιςτρϋφει κϊποια τιμό τότε χρηςιμοποιούμε τη λϋξη void void print() 18

Η ςφνταξη μιασ μεθόδου περιλαμβάνει τα εξήσ ςτοιχεία: 19 Το όνομα τησ μεθόδου. Καλό είναι για όνομα να χρηςιμοποιούμε μια λέξη που να υποδηλώνει το τι κάνει η ςυγκεκριμένη μέθοδοσ. Τη λίςτα παραμέτρων. γράφονται μέςα ςτισ παρενθέςεισ, μετά το όνομα τησ μεθόδου. Οι μέθοδοι μπορεί να περιέχουν καμία ή και περιςςότερεσ από μια παραμέτρουσ. Οι παράμετροι ορίζονται με τον τύπο δεδομένων μπροςτά και το όνομα να ακολουθεί και χωρίζονται μεταξύ τουσ με κόμμα. Αν δεν έχουμε παραμέτρουσ χρηςιμοποιούμε απλά 2 κενέσ παρενθέςεισ. Το ςώμα τησ μεθόδου ςε αγκύλεσ με τον κώδικα και τισ τοπικέσ μεταβλητέσ.

Η ςφνταξη μιασ μεθόδου περιλαμβάνει τα εξήσ ςτοιχεία: 20

Μζθοδοσ main ειδικό μϋθοδοσ τησ Java εύναι επιφορτιςμϋνη με το να ξεκινϊει την εκτϋλεςη του προγρϊμματοσ. για να γύνει ϋνα πρόγραμμα εκτελϋςιμο, πρϋπει οπωςδήποτε ςε κϊποιο από τα αρχεύα πηγαύου κώδικα, από τα οπούα αποτελεύται, να υπϊρχει τουλϊχιςτον μύα μϋθοδοσ main. Η ςύνταξη τησ μεθόδου εύναι: p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { } 21 Όταν ο διερμηνϋασ τησ Java εκτελεύ ϋνα πρόγραμμα ξεκινϊ από την κλόςη τησ μεθόδου main. Η main κατόπιν καλεύ όλεσ τισ υπόλοιπεσ μεθόδουσ για να εκτελεςτεύ το πρόγραμμα.

22 3.4 Κλήςη Στατικών Μεθόδων

τη Java υπάρχουν δφο τφποι μεθόδων: αυτέσ που ανήκουν ςτο αντικείμενο, ονομάζονται μέθοδοι ςτιγμιοτύπου και καθορίζουν τη ςυμπεριφορά του αντικειμένου αυτέσ που ανήκουν ςτην κλάςη, ονομάζονται μέθοδοι κλάςησ και δεν αναφέρονται ςε ςυγκεκριμένο αντικείμενο. 23

Οι μζθοδοι του αντικειμζνου (μζθοδοι ςτιγμιότυπου) μπορούν να κληθούν μόνο μϋςω κϊποιου αντικειμϋνου. Η κλόςη μιασ μεθόδου ςτιγμιοτύπου ςυντϊςςεται με το όνομα του αντικειμϋνου ακολουθούμενο από την τελεύα και το όνομα τησ μεθόδου, δηλαδό: Όνομα αντικειμένου. Όνομα μεθόδου (παράμετροι); 24

Mζθοδοσ κλάςησ Πολλϋσ φορϋσ, θϋλουμε να ςχεδιϊςουμε ϋνα ςύνολο μεθόδων οι οπούεσ δεν εύναι ςυνδεδεμϋνεσ με κϊποιο αντικεύμενο τησ κλϊςησ, αλλϊ υλοποιούν λειτουργύεσ χρόςιμεσ για την ύδια την κλϊςη. Σε αυτό την περύπτωςη ορύζουμε μια μϋθοδο ωσ μϋθοδο κλϊςησ (class method), χρηςιμοποιώντασ ςτην αρχό τησ δόλωςησ τησ, τη λϋξη κλειδύ static. Οι μϋθοδοι κλϊςησ εύναι γνωςτϋσ και ωσ ςτατικέσ μέθοδοι. 25 Μπορούμε λοιπόν, να καλϋςουμε και να χρηςιμοποιόςουμε ςτατικϋσ μεθόδουσ μιασ κλϊςησ, χωρύσ να χρειϊζεται να δημιουργηθεύ πρώτα κϊποιο αντικεύμενο αυτόσ τησ κλϊςησ.

Mζθοδοσ κλάςησ-παράδειγμα Έςτω ότι ορύζουμε τη ςτατικό μϋθοδο: static int numberoffrogs( ) Η κλόςη τησ μεθόδου μπορεύ να γύνει, εύτε από την κλϊςη, εύτε από κϊποιο αντικεύμενό τησ κλϊςησ, όπωσ φαύνεται παρακϊτω: frogs = Frog.numberOfFrogs() ό frogs = kermit.numberoffrogs() 26 όπου το kermit εύναι ϋνα αντικεύμενο τησ κλϊςησ Frog.

Μζθοδοσ κλάςησ-παράδειγμα Όλεσ οι μϋθοδοι τησ κλϊςησ Math, η οπούα βρύςκεται ςτο πακϋτο java.lang, εύναι ςτατικϋσ. Η κλόςη τουσ γύνεται ωσ εξόσ: int x = Math.max (a, b) ; int y=math.abs(a); int z=math.min(a,b); 27

3.5 Δημιουργία των δικών μασ μεθόδων 28

Κατϊ τη διϊρκεια ανϊπτυξησ μιασ εφαρμογόσ, οριςμϋνα τμόματα κώδικα (μϋθοδοι) χρειϊζεται να επαναλαμβϊνονται πολλϋσ φορϋσ. Έχουμε τη δυνατότητα να δώςουμε ϋνα όνομα ςε αυτϊ τα τμόματα κώδικα και να τα καλούμε με αυτό, όποτε τα χρειαζόμαςτε. Πρόκειται δηλαδό για μεθόδουσ που τισ δημιουργούμε εμεύσ για να κϊνουν μια ςυγκεκριμϋνη δουλειϊ και αποτελούν μϋρη μιασ κλϊςησ. 29

30 Παράδειγμα

Στη Java τα ονόματα των μεθόδων ξεκινούν με μικρϊ γρϊμματα και δεν περιϋχουν κενϊ. Αν το όνομα περιϋχει πολλϋσ λϋξεισ τότε χρηςιμοποιούμε κεφαλαύο γρϊμμα κϊθε φορϊ που αρχύζει μια νϋα λϋξη π.χ. turnatedge. 31

3.6 Αναφορζσ και Πζραςμα Παραμζτρων 32

Παραμέτρουσ: Τισ μεταβλητϋσ, που χρηςιμοποιούνται ςτον οριςμό τησ μεθόδου. Ορίςματα: τισ τιμϋσ που παύρνουν οι παρϊμετροι κατϊ την κλόςη τησ μεθόδου. 33 η μεταβλητό degrees εύναι η παρϊμετροσ το i εύναι το όριςμα τησ μεθόδου turnatedge.

Η μεταβύβαςη παραμϋτρων ςτη Java εύναι κατά τιμή (pass-by-value) δηλαδό δημιουργούνται αντίγραφα των οριςμάτων, οπότε οποιαδόποτε αλλαγό ςτισ παραμϋτρουσ εντόσ τησ μεθόδου δεν ϋχει καμύα επύδραςη ςτα ορύςματαμεταβλητϋσ που ϋχουν οριςτεύ εκτόσ τησ μεθόδου. 34

35 Στην περύπτωςη όμωσ που η παρϊμετροσ μασ δεν αναφϋρεται ςε βαςικό τύπο δεδομϋνων (int, float, double, κλπ) αλλϊ ςε αντικεύμενο κϊποιασ κλϊςησ, δεν δημιουργεύται αντύγραφο του αντικειμϋνου. όταν αναφερόμαςτε ςε ϋνα αντικεύμενο ςύνθετου τύπου η μεταβλητό δεν περιϋχει το ύδιο το αντικεύμενο αλλϊ μια διεύθυνςη ςτην περιοχό τησ μνόμησ όπου εύναι αποθηκευμϋνο το αντικεύμενο. Η διεύθυνςη αυτό λϋγεται αναφορά (reference) και αποτελεύ ουςιαςτικϊ ϋναν δεύκτη ςτην περιοχό τησ μνόμησ που βρύςκεται το αντικεύμενο. Κατϊ το πϋραςμα παραμϋτρων δημιουργεύται αντύγραφο τησ αναφορϊσ και όχι του ύδιου του αντικειμϋνου, οπότε μϋςω τησ αναφορϊσ μπορούμε να τροποποιόςουμε το αντικεύμενο.

36 3.7 Τφποι Επιςτροφήσ

Οι ςυναρτόςεισ ςε πολλϋσ γλώςςεσ προγραμματιςμού, όπωσ ςτην Pascal και την Python επιςτρϋφουν ϋνα αποτϋλεςμα με το όνομϊ τουσ. Το ύδιο ςυμβαύνει και με τισ μεθόδουσ τησ java. Ωςτόςο, υπϊρχουν μϋθοδοι οι οπούοι δεν επιςτρϋφουν κϊποια τιμό, αλλϊ υλοποιούν κϊποια ενϋργεια όπωσ για παρϊδειγμα την μετακύνηςη ενόσ αντικειμϋνου. Αυτϋσ οι μϋθοδοι που δεν επιςτρϋφουν τύποτα δηλώνονται με τον τύπο επιςτροφόσ void, 37

38 3.8. Μζθοδοι και Κληρονομικότητα

Δήλωςη κλάςησ public class «όνομα κλάςησ» extends «όνομα υπερκλάςησ» { Πεδία Καταςκευαςτέσ Μέθοδοι } Τισ λϋξεισ public class θα τισ γρϊφουμε πϊντα ςε κϊθε κλϊςη που δημιουργούμε. Η λϋξη public ονομϊζεται προςδιοριςτήσ πρόςβαςησ. Ακολουθεύ το όνομα τησ κλϊςησ που το ορύζουμε εμεύσ. Κατόπιν μπαύνει η λϋξη extends και το όνομα τησ υπερκλϊςησ, που μασ πληροφορεύ ότι η κλϊςη που δημιουργούμε εύναι υποκλϊςη τησ υπερκλϊςησ που δηλώνουμε μετϊ τη λϋξη extends. Τϋλοσ ακολουθεύ το ζευγϊρι των αγκύλων { και } που ορύζουν το ςώμα τησ κλϊςησ και εκεύ μϋςα δηλώνονται οι μϋθοδοι. 39

40 3.9 Καθοδήγηςη από γεγονότα

Όλεσ οι ςύγχρονεσ εφαρμογϋσ απαιτούν την εύςοδο κϊποιων δεδομϋνων από τον χρόςτη ό τον ϋλεγχο από τον χρόςτη κατϊ την εκτϋλεςη τουσ. Αυτό γύνεται κυρύωσ μϋςω του πληκτρολογύου και του ποντικιού. Ειδικϊ, τα παιχνύδια που ο βαθμόσ αλληλεπύδραςησ με τον χρόςτη εύναι πολύ υψηλόσ, ο χειριςμόσ των μϋςων ειςόδου εύναι κομβικόσ ςημαςύασ. Αυτό γύνεται μϋςα από τον χειριςμό γεγονότων που προκαλούνται όπωσ το πϊτημα ενόσ πλόκτρου ό η κύνηςη του ποντικιού πϊνω από ϋνα αντικεύμενο. 41

Μζθοδοι για τον χειριςμό των γεγονότων public static String getkey() Επιςτρϋφει το όνομα του πλόκτρου που πατόθηκε τελευταύα. Αν δεν ϋχει πατηθεύ κϊποιο πλόκτρο, από την τελευταύα φορϊ που κλόθηκε, η getkey επιςτρϋφει null. public static boolean iskeydown(string keyname) Ελϋγχει αν ϋχει πατηθεύ το πλόκτρο με όνομα keyname και επιςτρϋφει αντύςτοιχα true ό false. 42

Μζθοδοι για τον χειριςμό των γεγονότων (Βιβλιοθήκη του Greenfoot) public static boolean mouseclicked(object obj) Ελϋγχει αν ϋχει γύνει κλικ με το ποντύκι ςτο αντικεύμενο obj και επιςτρϋφει αντύςτοιχα true ό false. Αν αντύ για obj δώςουμε την τιμό null τότε επιςτρϋφεται true, αν ϋχει γύνει κλικ οπουδόποτε. public static MouseInfo getmouseinfo() Επιςτρϋφει ϋνα αντικεύμενο MouseInfo το οποίο περιέχει πληροφορίεσ για την κατάςταςη του ποντικιού. Με την κλήςη των μεθόδων getx(), gety() ξέρουμε τισ ςυντεταγμένεσ του ςημείου όπου έγινε το κλικ ενώ, η getactor() μασ επιςτρέφει το αντικείμενο πάνω ςτο οποίο έγινε το κλικ. 43

44 3.10 Πίνακεσ

Ένασ πύνακασ εύναι ϋνα αντικεύμενο, που ϋχει την ικανότητα και την ιδιότητα να μπορεύ να δϋχεται και να αποθηκεύει, ς ε ς υ ν ε χό μ ε ν ε σ θ έ ς ε ι σ ςτη μνόμη, ϋναν προκαθοριςμϋνο αριθμό ςτοιχεύων, με την προώπόθεςη ότι όλα ανόκουν ςτον ύδιο τύπο δεδομϋνων. Δηλαδό τα ςτοιχεύα που θα αποθηκευτούν θα εύναι όλα ακϋραιοι αριθμού, ό όλα δεκαδικού, ό όλα χαρακτόρεσ, ό όλα αναφορϊ ςε κϊποια αντικεύμενα τησ ύδιασ κλϊςησ κτλ. 45

Το μϋγεθοσ του πύνακα καθορύζεται την ύδια χρονικό ςτιγμό τησ δημιουργύασ του και δεν επιτρέπεται καμία αλλαγή ςτο μϋγεθοσ του μετϊ τον αρχικό οριςμό του. Το όνομα ενόσ πύνακα πϊντα ςυνοδεύεται από τα ςύμβολα [ και ] για να ξεχωρύζει από τον οριςμό οποιαςδόποτε ϊλλησ μεταβλητόσ. 46

Ορύζεται: int a[ ] = { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90 }; ό int a[ ] = new int[10]; for ( int i = 0; i < 10; i++) { a[ i ] = 10 * i; } 47

Για να θϋςουμε μια νϋα τιμό ςτο ςτοιχεύο ςτη θϋςη 2 του πύνακα, δηλαδό ςτο 3ο ςτοιχεύο του πύνακα την τιμό 23 δύνουμε την εντολό: a[ 2 ] = 23; Αν πϊλι θϋλουμε να αυξόςουμε την τιμό του ςτοιχεύου a[2] κατϊ 1 δύνουμε την εντολό a[ 2 ]++; a[ 2 ] a[ 2 ] + 1 48 Μπορούμε να διαχειριζόμαςτε κάθε ςτοιχείο ενόσ πίνακα όπωσ και μια μεταβλητή.

Προςοχή!!! 49 Όπωσ φαύνεται και από το ςχόμα, η πρώτη θϋςη ενόσ πύνακα εύναι η θϋςη 0. Αυτό ςημαύνει ότι όταν ορύζουμε ϋναν πύνακα 10 ςτοιχεύων, αυτϊ βρύςκονται ςτισ θϋςεισ από 0 ϋωσ 9. Άρα το 4ο ςτοιχεύο βρύςκεται ςτη θϋςη 3 του πύνακα και το 10ο ςτη θϋςη 9. Γενικά το n-οςτό ςτοιχείο βρίςκεται ςτη θέςη n-1 του πίνακα, δηλαδή είναι το a[n-1].

50 Στη Java μπορούμε να ορύςουμε πολυδιϊςτατουσ πύνακεσ int matrix[ ][ ] = new int[10][10];

51 Μια ςημαντικό διαφορϊ των πινϊκων ςτη java ςε ςχϋςη με ϊλλεσ γλώςςεσ προγραμματιςμού, εύναι ότι ςτη Java κϊθε πύνακασ ϋχει ϋνα πεδύο με όνομα length το οπούο περιϋχει το μϋγεθοσ του πύνακα.

ϊθροιςμα όλων των ςτοιχεύων του πύνακα int S = 0; for ( int i = 0; i < a.length; i++) { } S = S + a[ i ]; 52