Βασικά στοιχεία της Java προτάσεις, εκφράσεις, µεταβλητές, σταθερές, τελεστές Ορισµοί Πρόταση (statement) είναι µία απλή εντολή σε µία γλώσσα προγραµµατισµού. Γιαπαράδειγµα: int x=12; Έκφραση (expression) είναι µία πρόταση που σαν αποτέλεσµα παράγει µία τιµή. Για παράδειγµα: a=a+5; Μεταβλητή είναι µία θέση που µπορούν να αποθηκευτούν διάφορες πληροφορίες. Η τιµή µιας µεταβλητής µπορεί να αλλάξει πολλές φορές µέσα σε ένα πρόγραµµα. Υπάρχουν 3 είδη µεταβλητών στην Java. Οι µεταβλητές αντικειµένου ή µεταβλητές υπόστασης, οι µεταβλητές κλάσηςκαιοιτοπικέςµεταβλητές. Μια µεταβλητή αντικειµένου ορίζει µια ιδιότητα ενός αντικειµένου Μια µεταβλητή κλάσης ορίζει µια ιδιότητα µιας ολόκληρης κλάσης καιισχύειγιαόλατααντικείµενα. Η τοπική µεταβλητή χρησιµοποιείται στον ορισµό κάποιας µεθόδου και η εµβέλειά της περιορίζεται στη µέθοδο αυτή. 1
ήλωση µεταβλητής Για να χρησιµοποιήσω µία µεταβλητή πρέπει πρώτα να τη δηλώσω. Η δήλωση µιας µεταβλητής περιλαµβάνει τον τύπο πληροφοριών που αποθηκεύει και ακολουθεί το όνοµα της µεταβλητής. Για παράδειγµα: int i; String name; boolean answer; Θα µπορούσαµε επίσης να δώσουµε και αρχική τιµή στις µεταβλητές που δηµιουργούµε. int i = 9; String name = Petros ; boolean answer = true; Τα ονόµατα µεταβλητών µπορούν να αρχίζουν µε γράµµα ή κάποιο από τα σύµβολα _ ή $, δεν µπορούν να αρχίζουν µε αριθµό. Στη συνέχεια µπορούµε να χρησιµοποιούµε οποιοδήποτε συνδυασµό γραµµάτων ή αριθµών. Η java είναι case sensitive και αυτό σηµαίνει πως διαφοροποιεί τα κεφαλαία από τα πεζά γράµµατα και εποµένως το όνοµα Name και name δεν αναφέρεται στην ίδια µεταβλητή. Τύποι εδοµένων Στη java έχουµε 8 βασικούς τύπους δεδοµένων για την αποθήκευση ακεραίων αριθµών, αριθµών µε δεκαδικό µέρος, χαρακτήρων και τιµών boolean. Οι τύποι για την αποθήκευση ακεραίων είναι 4: byte (-128έως 127), short (-32768 έως 32767), int (-2147483648 έως 2147483647), long (-9.223.372.036.854.775.808 έως 9.223.372.036.854.775.807). Στις παρενθέσεις υπάρχει η µέγιστη και η ελάχιστη τιµή που µπορεί να πάρει ένας ακέραιος του αντίστοιχου τύπου. Οι αριθµοί µε δεκαδικό µέρος αποθηκεύονται σαν float και σαν double. Οτύπος char χρησιµοποιείταιγιανααποθηκεύσειγράµµατα, αριθµούς, σηµεία στίξης και άλλα σύµβολα. Και ο όγδοος βασικός τύπος είναι ο boolean που παίρνει τιµές true ή false. Πέρα από τους βασικούς τύπους δεδοµένων µία µεταβλητή µπορεί να έχει σαν τύπο της µία κλάση όπως στα παραδείγµατα που ακολουθούν: String name = Petros ; VolcanoRobot vr; Στο δεύτερο παράδειγµα η µεταβλητή vr αναφέρεται σε ένα αντικείµενο VolcanoRobot που µπορεί να µην υπάρχει ακόµα. (Θα εξηγηθεί όταν µιλήσουµε για αναφορές και αντικείµενα). 2
Σταθερές Ανητιµήµιάςµεταβλητήςδενχρειάζεταινααλλάζειποτέκατάτην διάρκεια εκτέλεσης του προγράµµατος τότε χρησιµοποιούµε αντί µεταβλητήςσταθερά. Γιαναδηλώσουµεµίασταθεράχρησιµοποιούµετηνλέξηκλειδί final πριναπότηδήλωσητηςσταθεράςκαιβάζουµεαρχικήτιµήστη σταθερά. Οι προγραµµατιστές της java συνηθίζουν να χρησιµοποιούν κεφαλαίους χαρακτήρες για τις τιµές των σταθερών και αυτό είναι µία σύµβαση που καλόν θα ήταν να χρησιµοποιούµε προκειµένου να διαβάζονται εύκολα τα προγράµµατά µας από άλλους. Παραδείγµατα σταθερών: final boolean ANSWER = true; final int NUMBER = 32895; Τελεστές Οι τελεστές είναι ειδικά σύµβολα που χρησιµοποιούνται για µαθηµατικές συναρτήσεις, για κάποιους τύπους προτάσεων εκχώρησηςκαιγιαλογικέςσυγκρίσεις. Οι αριθµητικοί τελεστές είναι αυτοί που χρησιµοποιούνται για να κάνουν βασικές αριθµητικές πράξεις και στη java και είναι 5: πρόσθεση + αφαίρεση πολλαπλασιασµός * διαίρεση / υπόλοιπο διαίρεσης % Η πράξη που χρειάζεται ιδιαίτερη προσοχή είναι η διαίρεση. Αν το αποτέλεσµα της διαίρεσης αποθηκευτεί σε έναν ακέραιο τότε το αποτέλεσµα της πράξης θα είναι η στρογγυλοποίηση του αριθµού στο ακέραιο µέρος. Οι τελεστές εκχώρησης είναι ο = και οι συνδυασµοί τελεστών εκχώρησης και αριθµητικών τελεστών. Για παράδειγµα x+=y ισοδυναµεί µε x=x+y x-=y ισοδυναµεί µε x=x-y x*=y ισοδυναµεί µε x=x*y x/=y ισοδυναµεί µε x=x/y x%=y ισοδυναµεί µε x=x%y 3
Μοναδιαίοι τελεστές Μοναδιαίοι τελεστές είναι οι τελεστές προσαύξησης ή µείωσης που αυξάνουν ή µειώνουν την τιµή µιας µεταβλητής κατά 1. x++; (αυξάνειτηντιµήτου x κατά 1) x--; (µειώνειτηντιµήτου xκατά 1) Οι τελεστές αυτοί είναι τελεστές προθέµατος και τελεστές επιθέµατος. Γιαπαράδειγµα: 1. int x,y,z; 2. x=12; 3. y=x++; 4. z=++x; Στηνγραµµή 3 το y γίνεταιίσοµετο x δηλαδήπαίρνειτηντιµή 12 και στη συνέχεια το x αυξάνεται κατά 1 και ισούτε τώρα µε 13. Στη συνέχεια στη γραµµή 4 το x αυξάνεται κατά 1 και η τιµή του είναι 14 ενώ το z παίρνει την τιµή του x αφού ολοκληρωθεί η προσαύξηση. Εποµένως η τιµή του z είναι 14. Ο τελεστής προθέµατος αυξάνει την τιµή της µεταβλητής και στη συνέχεια την χρησιµοποιεί. Αντίθετα ο τελεστής επιθέµατος αυξάνει τη µεταβλητή αφού εκείνη έχει προηγουµένως χρησιµοποιηθεί. Τελεστές σύγκρισης Οι τελεστές σύγκρισης χρησιµοποιούνται για να κάνουµε συγκρίσεις σε µεταβλητές. Οι τελεστές αυτοί χρησιµοποιούνται σε εκφράσεις και επιστρέφουν booleanτιµές. Τελεστές σύγκρισης είναι οι εξής: == ισότητας (επιστρέφει true αν οι µεταβλητές είναι ίσες)!= ανισότητας (επιστρέφει true αν οι µεταβλητές δεν είναι ίσες) < µικρότερο (επιστρέφει true αν η µεταβλητή στα αριστερά είναι µικρότερη) > µεγαλύτερο (επιστρέφει true αν η µεταβλητή στα αριστερά είναι µεγαλύτερη) <= µικρότερο ή ίσο (επιστρέφει true αν η µεταβλητή στα αριστερά είναι µικρότερη ή ίση µε την µεταβλητή στα δεξιά) >= µεγαλύτερο ή ίσο (επιστρέφει true αν η µεταβλητή στα αριστερά είναι µεγαλύτερη ή ίση µε την µεταβλητή στα δεξιά) 4
Λογικοί Τελεστές Οι λογικοί τελεστές χρησιµοποιούνται για να συνδυαστούν εκφράσεις που παράγουν λογικές τιµές. Χρησιµοποιούνται για τους λογικούς συνδυασµούς and, or, xor, και το λογικό not και είναι οι παρακάτω: &, &&: χρησιµοποιούνται για να εκφράσουν το λογικό and και επιστρέφουν true αν και οι δύο λογικές εκφράσεις είναι true., : χρησιµοποιούνται για να εκφράσουν το λογικό or και επιστρέφουν true αν τουλάχιστον µία από τις δύο λογικές εκφράσεις είναι true. ^ : χρησιµοποιείταιγιαναεκφράσειτολογικό xorκαιεπιστρέφει true µόνοανοιδύολογικέςεκφράσειςείναιηµία trueκαιηάλλη false.! : χρησιµοποιείταιγιαναεκφράσειτολογικό not καιεπιστρέφει true µόνοανηλογικήέκφρασηείναι false. Παρατήρηση: Γιατολογικό and καιτολογικό or χρησιµοποιούνται 2 τελεστές (&, && για το and και, για το or). Η διαφορά τους έγγειται στην εργασία που κάνει η Java για να αποτιµήσει την έκφραση. Έτσι αν χρησιµοποιήσουµε τον τελεστή && αποτιµάται αρχικά η αριστερή πλευράκαιανείναι false δενχρειάζεταινααποτιµηθείηδεύτερη. Οµοίως αν η έκφραση στα αριστερά του αποτιµηθεί σε true δεν υπάρχει λόγος να αποτιµηθεί η δεξιά πλευρά. Ο τελεστής + όταν χρησιµοποιείται µε συµβολοσειρές Οτελεστής +ότανχρησιµοποιείταισεσυµβολοσειρέςενώνειτις 2 συµβολοσειρές σε µία πρόταση. Για παράδειγµα: String name = Petros ; System.out.println( Your name is + name); Οι δύο παραπάνω γραµµές κώδικα δίνουν σαν αποτέλεσµα Your name is Petros 5
Προτεραιότητα τελεστών Η προτεραιότητα των τελεστών που έχουµε µάθει έως τώρα µε φθίνουσα σειρά έχει ως εξής: Μοναδιαίοι τελεστές Αριθµητικοί τελεστές Τελεστές σύγκρισης Λογικοί τελεστές Τελεστές εκχώρησης Σε τελεστές µε την ίδια προτεραιότητα ισχύει η προτεραιότητα της πράξης στα αριστερά. Οι τελεστές της ίδιας οµάδας δεν έχουν την ίδια προτεραιότητα. Για παράδειγµα η πρόσθεση έχει µικρότερη προτεραιότητα από τον πολλαπλασιασµό. Χρησιµοποιούµε παρενθέσεις αν δεν είµαστε βέβαιοι για την προτεραιότητα. Τα πρώτα προγράµµατα σε Java Εµφανίζει στην οθόνη το µήνυµα στα εισαγωγικά Εµφανίζει στην οθόνη τηλέξηπουτουδίνει κάθε φορά ο χρήστης Εµφανίζει στην οθόνη τις 3 λέξεις πουτουδίνεικάθεφοράο χρήστης 6
Το παρακάτω πρόγραµµα µετατρέπει τους 86 βαθµούς Fahrenheit σε Celsius και τους 33 βαθµούς Celsius σε βαθµούς Fahrenheit Αποτέλεσµα 7