ΣΕΜΙΝΑΡΙΟ JAVA 2 η ιάλεξη
ΕΙΣΑΓΩΓΙΚΑ ΓΙΑ ΤΟΝ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗ ΠΡΟΓ/ΣΜΟ Περισσότερος έλεγχος ροής ρογράµµατος Enumerators Εισαγωγή στον αντικειµενοστραφή ρογραµµατισµό Παραδείγµατα
ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ 4/ Εναλλακτικές switch / case Χρήση όταν έχουµε ακέραιους και enum, µ ορεί να αντικαταστήσει το ολλα λό else if. εν µ ορεί να το αντικαταστήσει λήρως. Χρησιµο οιεί µόνο ροκαθορισµένες τιµές Κάθε «ερί τωση» ρέ ει να τερµατίζεται οριστικά (break) αλλιώς συνεχίζεταιη εκτέλεση και στις άλλες ερι τώσεις. Ορίζεται ροαιρετκά και µία catch-all ερί τωση για ότι δεν εµ ί τει στις συγκεκριµένες ερι τώσεις. for... each Εφαρµόζεται σε σύνολα / ίνακες / κλ Ε αναλαµβάνει τη διαδικασία για κάθε τιµή του «συνόλου» εν υ άρχει εγγύηση για τη σειρά ου λαµβάνονται τα στοιχεία α ό το σύνολο Προσοχή δεν µ ορείτε να τη χρησιµο οιήσετε όταν: Πρέ ει να µεταβάλετε κά οιο α ό τα στοιχεία του συνόλου Θέλετε να «διατρέξετε» δύο ίνακες «αράλληλα» Μόνο ρος τα εµ ρός ε ανάληψη και µε βήµα 1.
ΠΑΡΑ ΕΙΓΜΑΤΑ SWITCH / FOR EACH //======================== Ex. #1 int x = Math.round(8*(float) (8*(float)Math.random()); switch(x) { case 1: System.out.println("One"); case 2: System.out.println("Two"); case 3: case 4: case 5: System.out.print( Too "); System.out.println("Low"); default: System.out.println("High"); //================ Ex. #1 int[] i = new int[] { 1,3,5,7,9,2,4,6,8 ; for (int j : i) { System.out.println //================ Ex. #2 ("Pare ena ari8mo: " + j); String s = "Kalo paradeigma?"; for (char c : s.tochararray()) { System.out.println(c);
ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ 5/ Περισσότερες δυνατότητες break Σε βρόχο (while, do/while, for) Τερµατίζει την εκτέλεση του βρόχου στον ο οίο βρίσκεται Για βρόχους ο ένας µέσα στον άλλο αφορά µόνο αυτόν στον ο οίο βρίσκεται το break Σε switch Τερµατίζει το switch Σε switch µέσα σε βρόχο ή το αντίστροφο, τερµατίζει ότι το εριέχει continue Σε βρόχο Τερµατίζει την τρέχουσα ε ανάληψη, όχι τον βρόχο Χρησιµο οιούνται ε ειδή: Κάνουν το ρόγραµµα ιο ευανάγνωστο Α λο οιούν τον κώδικα σε ολλές ερι τώσεις Α οτελούν µοναδική λύση σε ιο σύγχρονες δοµές κώδικα return Τερµατίζει κά οια µέθοδο (υ ορουτίνα ή συνάρτηση) Παρέχει την ε ιστρεφόµενη τιµή (α οτέλεσµα) της συνάρτησης
ΠΑΡΑ ΕΙΓΜΑΤΑ BREAK / CONTINUE //======================== Ex. #1 while (a < 0) { x += a; y = f(x); if (y == a) continue; z = g(x, y); //======================== Ex. #2 for (int i=0; i<n; i++) { x = f(x); y = g(x); if (y < eps) //======================== Ex. #3 for (String s : stringset) { if (s.equals("hello")) //================ Ex. #4 for (int i=0; i<n; i++) { x = f(i) if (x == A) switch (i) { case 1: // Do something case 2: // Do something else default: // Do the rest
ΠΑΡΑ ΕΙΓΜΑ #1 ΕΝΕΡΓΕΙΑΚΗ ΚΡΙΣΗ 1/ Υ ορουτίνα ου: Να έχει για αράµετρο το λήθος των εριοχών Ν Οι εριοχές αριθµούνται α ό 1 έως Ν Η τελευταία εριοχή µε α/α ίσο µε Ν έχει τα κεντρικά γραφεία της ΕΗ Υ οθέτουµε βήµα Μ, ο ότε η ενέργεια διακό τεται διαδοχικά στις εριοχές α ό την 1 και ανά Μ α ό τις εριοχές ου δεν είχαν διακο ή ακόµα Μετά το Ν θεωρούµε ότι η αρίθµιση ε αναλαµβάνεται Tip: ηµιουργείστε έναν ίνακα ου να «θυµάται» σε κάθε εριοχή αν έγινε ήδη διακο ή. Γίνεται µε ίνακα boolean, αλλά και µε ίνακα ακεραίων. Με βάση την αρα άνω υ ορουτίνα: Ζητάµε το µικρότερο M (> 1) για το ο οίο η εριοχή Ν θα διακο εί τελευταία (το Μ=1 είναι άντα λύση)
10 ΠΑΡΑ ΕΙΓΜΑ #1 ΕΝΕΡΓΕΙΑΚΗ ΚΡΙΣΗ 2/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 0 1 2 3 4 5 6 7 8 9 1 * * 4 * * 7 * * 10 - - - - - - * * 5 * * 9 - - - - * * 6 * - - - * 3 * - - * 8 **2 Μ=3 count
ΆΣΚΗΣΗ - THE HOUSE OF SANTA CLAUS Ξεκινώντας α ό το 1 να διατρέξουµε τις λευρές του σχήµατος όλες και α ό µία φορά. Ζητάµε όλες τις δυνατές διαδροµές Μεθοδολογία Brute force Άλλη Έξοδος ένα String ου δείχνει τη σειρά των κορυφών:.χ. 153125432 Να δοθούν στατιστικά: όσες φορές η κάθε κορυφή ήταν τελευταία στη διαδροµή Πόσες φορές η κάθε κορυφή κατείχε κά οια θέση στη διαδροµή 4 0 3 4 5 3 1 2 2 1
OOP ΣΤΗΝ JAVA 1/ Κλάση / Αντικείµενο => Ένα αρχείο Μέθοδοι (υ ορουτίνες / ενέργειες) Κλήση (δεν χαλάει τις αραµέτρους) Overloading / Method Signature Constructors Χαρακτηριστικά Ιδιότητες (get/set) Γιατί; Έλεγχος ροσβασιµότητας (µόνο get ή µόνο set) Έλεγχος α όδοσης σωστών τιµών Συνδυασµός µεταβολών.χ.??? Συναγόµενη ιδιότητα α ό άλλα χαρακτηριστικά Έτσι Ε ιτυγχάνεται και οµοιοµορφία στη λειτουργία Εναλλακτικά για λογικές µεταβλητές µ ορεί να είναι is αντί για get.
OOP ΣΤΗΝ JAVA 2/ Περιορισµός ρόσβασης / Α όκρυψη δεδοµένων private Πρόσβαση µόνο µέσα α ό την κλάση packet Πρόσβαση µόνο µέσα α ό τις κλάσεις του «ακέτου» public Πρόσβαση α ό ο οιαδή οτε κλάση
ΛΕΞΙΛΟΓΙΟ Αγγλικά Ελληνικά Ε εξήγηση instance στιγµιότυ ο reference αναφορά method µέθοδος Υ ορουτίνα ή συνάρτηση ου σχετίζεται µε (ανήκει σε) ένα αντικείµενο attribute χαρακτηριστικό property class object object oriented ιδιότητα κλάση αντικείµενο αντικειµενοστραφής