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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 2: Βασικές εντολές

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

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

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

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

Δομές ελέγχου ροής προγράμματος

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

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

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

API: Applications Programming Interface

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 1/4/2008

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

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

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 8/4/2008. Πίνακες (Arrays)

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 11: Vectors (διανύσματα)

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

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

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους

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

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

Η βασική συνάρτηση προγράμματος main()

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

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

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

CSD Univ. of Crete Φθινόπωρο Άσκηση 1 Εκφώνηση

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

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

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

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

ΕΠΛ Φροντιστήριο 3

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

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

Δομημένος Προγραμματισμός

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

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

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Transcript:

Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος αν κάποιος ακέραιος n είναι πρώτος ή όχι. Αλγόριθμος Α : - καταμέτρηση όλων των διαιρετών του n - αν οι διαιρέτες είναι 2 => ο n είναι πρώτος Όλοι οι πιθανοί διαιρέτες του n είναι n, άρα αρκεί να ελεγχθούν όλοι οι ακέραιοι στο διάστημα [1, n]. Πρόγραμμα για τον αλγόριθμο A : System.out.println( n? ); int n = input.nextint(); int numofdiv = 0; // plithos diairetwn for (int i=1; i<=n; i++) if (n%i == 0) numofdiv++; if (numofdiv == 2) System.out.println( Prime ); System.out.println( Not prime ); Βελτίωση της αποτελεσματικότητας του αλγόριθμου A και δημιουργία του αλγόριθμου B : Ο αλγόριθμος A έχει κάποια προβλήματα: - δεν είναι πρακτικός για μεγάλα n, διότι σε πολλές περιπτώσεις θα μπορούσε να έβγαζε συμπέρασμα ότι κάποιο n δεν είναι πρώτος αριθμός και παρόλα αυτά συνεχίζει τις επαναλήψεις μέχρι το τέλος του for. Π.χ., για n=81, από την 3 η κι 1

όλας επανάληψη όπου το 3 είναι διαιρέτης του 81, θα μπορούσε να εξαχθεί το συμπέρασμα ότι ο 81 δεν είναι πρώτος. Παρόλα αυτά, το πρόγραμμα θα συνεχίσει μέχρι την 81 η επανάληψη και μετά θα βγάλει το συμπέρασμα.. - αν ο n δεν διαιρείται με το 2, τότε δεν διαιρείται με κανέναν άρτιο, άρα περιττεύει η εξέταση πιθανών διαιρετών που είναι άρτιοι. - Αριθμοί μεγαλύτεροι της n δεν χρειάζεται να ελεγχθούν. Αν δ 1 δ 2 είναι δύο διαιρέτες του n: δ 1 x δ 2 = n, τότε ο ένας θα είναι οπωσδήποτε < n. Η «επίλυση» αυτών των προβλημάτων οδηγεί στον βελτιωμένο αλγόριθμο B. Πρόγραμμα για τον αλγόριθμο Β : System.out.println( n? ); int n = input.nextint(); boolean isprime = true; if ((n%2==0 && n>2) n==1) isprime = false; int divisor = 3; int limit = (int)math.sqrt(n) + 1; while (divisor<=limit && isprime) if (n%divisor == 0) isprime = false; divisor += 2; if (isprime) System.out.println( Prime ); System.out.println( Not prime ); 2

Ροή προγραμμάτων Με τον όρο «ροή προγράμματος» αναφερόμαστε στη σειρά με την οποία εκτελούνται οι εντολές ενός προγράμματος. Μέχρι τώρα έχουμε αναφερθεί στις ακόλουθες μορφές ροής: Σειριακή Επαναληπτική Υπό συνθήκη Μιά άλλη μορφή ροής ενός προγράμματος είναι αυτή που πραγματοποιείται μέσω της κλήσης μεθόδων: μέθοδος που μπορεί να βρίσκεται μέσα στην κλάση ή και μέσα σε κάποια άλλη κλάση. 3

Μέθοδοι Μέθοδος ονομάζεται ένα σύνολο συγκεντρωμένων εντολών με χαρακτηριστικό όνομα. (Είναι το αντίστοιχο των «συναρτήσεων» άλλων γλωσσών προγραμματισμού) Η φιλοσοφία των μεθόδων: - Εντοπισμός κάποιου υπο-προβλήματος που χρειάζεται να επιλυθεί σαν μέρος του προγράμματος - Αλγοριθμική επίλυση του υπο-προβλήματος και εγγραφή του αντίστοιχου κώδικα (μόνο μία φορά) - Ονομασία του κώδικα του υπο-προβλήματος μέθοδος - Χρήση της μεθόδου (κλήση, εκτέλεση ή τρέξιμο) (με το όνομά της) κάθε φορά που παρουσιάζεται το ίδιο υπο-πρόβλημα. Βασικά χαρακτηριστικά μεθόδων: - Επαναχρησιμοποιήσιμος κώδικας σε άλλα προγράμματα - Μη επανάληψη κώδικα στο ίδιο πρόγραμμα - «Μαύρα κουτιά» ενδιαφέρει το τί κάνουν, όχι το πώς το κάνουν - Βοηθούν στη λογική σχεδίαση του προγράμματος - Αποκρύπτουν προγραμματιστικές λεπτομέρειες Είδη μεθόδων: - Ορισμένες από τον προγραμματιστή - Βιβλιοθήκες (μέρος της Java), π.χ. println(), nextint(), sqrt() κτλ. Σχεδιασμός μεθόδων: - Κάθε μέθοδος καλείται από κάποια άλλη μέθοδο - Μπορεί να έχει δεδομένα εισόδου (τα παίρνει από τη μέθοδο που την καλεί) - Μπορεί να έχει δεδομένα εξόδου (τα επιστρέφει στη μέθοδο που την καλεί) - Έχει ένα όνομα (συνήθως μοναδικό, αλλά όχι πάντα «Πληροφορική ΙΙ») - Έχει ένα σύστημα ορισμού της επικοινωνίας της με το περιβάλλον Τα δύο τελευταία δηλώνονται με τον ορισμό της μεθόδου στην πρώτη της γραμμή στον κώδικα. 4

Ορισμός static μεθόδων: public static <τύπος> <όνομα>([παράμετροι]) Τί είναι το κάθε στοιχείο του ορισμού: public: ορατότητα η μέθοδος μπορεί να κληθεί και από μεθόδους άλλων κλάσεων, όχι μόνο της κλάσης μέσα στην οποία υπάρχει. (Περισσότερα σε επόμενο μάθημα) static: είδος η μέθοδος έχει ένα «αντίγραφο» για όλα τα αντικείμενα της κλάσης στην οποία βρίσκεται και όχι ένα αντίγραφο για κάθε αντικείμενο. (Περισσότερα σε επόμενο μάθημα) τύπος: - void εάν δεν επιστρέφει τίποτα - πρωτογενής τύπος (int, double, boolean, char, κτλ.) ανάλογα με τον τύπο της μεταβλητής που επιστρέφει - String εάν επιστρέφει κάποιο string παράμετροι: μεταβλητές εισόδου, οι οποίες έχουν συγκεκριμένες τιμές στη μέθοδο κλήσης της μεθόδου και χρησιμοποιούνται με αυτές τις τιμές μέσα στη μέθοδο. (Αν δεν υπάρχουν παράμετροι εισόδου, οι παρενθέσεις απλά μένουν κενές) Η εντολή return: i) Χρησιμοποιείται στις μεθόδους συγκεκριμένουν τύπου (δηλ. όχι void) για να επιστρέψει την τιμή της μεταβλητής εξόδου return μεταβλητή; π.χ. public static int method1(int x) int y = 2*x; return y; ii) Χρησιμοποιείται στις void μεθόδους σαν εντολή εξόδου από τη μέθοδο (και επιστροφής της ροής του κώδικα στην αρχική μέθοδο κλήσης). 5

Η χρήση αυτή είναι σπάνια, συνήθως χρησιμοποιείται υπό συνθήκη και καλό είναι να αποφεύγεται (υπάρχουν καλύτεροι τρόποι που επιτυγχάνουν ανάλογο αποτέλεσμα «Πληροφορική ΙΙ»). π.χ. public static void method2() boolean error; if (error) return; Άρα, ένα πρόγραμμα μπορεί να έχει πολλές κλάσεις και κάθε κλάση μπορεί να έχει πολλές μεθόδους. Η μέθοδος main είναι πάντα μία σε ένα πρόγραμμα. Η κλάση που την περιέχει λέγεται κλάση εφαρμογής. Οι υπόλοιπες κλάσεις λέγονται κλάσεις υποστήριξης. Δηλαδή, ένα πρόγραμμα μπορεί να έχει την ακόλουθη δομή: ClassA main method1 ClassB method2 method3 ClassC method4 method5 method6 ClassD method7 Κλάση εφαρμογής: ClassA Κλάσεις υποστήριξης: ClassB, ClassC, ClassD 6

Παράδειγμα με κλήση μεθόδου στην ίδια κλάση: import java.util.*; public class Circle //methodos pou ypologizei epifaneia kyklou: public static double circlearea(double r) return Math.PI*r*r; // methodos pou ypologizei epifaneia daktyliou: public static double ringarea(double rin, double rout) double innerarea = circlearea(rin); double outterarea = circlearea(rout); return (outterarea innerarea); // H methodos main: public static void main(string [] args) Scanner input = new Scanner(System.in); System.out.println( Radius 1? ); double r1 = input.nextdouble(); System.out.println( Radius 2? ); double r2 = input.nextdouble(); double area = (r1 < r2)? ringarea(r1,r2) : ringarea(r2,r1); System.out.println( The area of the ring is: + area); 7