This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:variables [2015/09/18 10:17] gthanos [Μεταβλητές στην γλώσσα Προγραμματισμού Java] |
java:variables [2016/02/17 09:38] gthanos [Χρήση χαρακτήρων '_' (underscore) σε αριθμητικά κυριολεκτικά] |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| Οι μεταβλητές στην γλώσσα προγραμματισμού Java διακρίνονται σε δύο βασικές κατηγορίες: | Οι μεταβλητές στην γλώσσα προγραμματισμού Java διακρίνονται σε δύο βασικές κατηγορίες: | ||
| - | * **βασικοί τύποι (// | + | * **βασικοί τύποι (// |
| * **αναφορικοί τύποι (// | * **αναφορικοί τύποι (// | ||
| <WRAP tip 80% round center> | <WRAP tip 80% round center> | ||
| - | Η γλώσσα προγραμματισμού Java διαμορφώνει τις παρακάτω κατηγορίες μεταβλητών με βάση το σημείο στο οποίο ορίζονται. Οι παρακάτω διάκριση ισχύει τόσο για βασικές μεταβλητές, | + | Επιπλέον, |
| - | * **Instance Variables (non-static class fields):** Η συγκεκριμένη κατηγορία μεταβλητών είναι εκείνη που συναντούμε συνήθως στα [[java: | + | * **Instance Variables (non-static class fields):** Η συγκεκριμένη κατηγορία μεταβλητών είναι εκείνη που συναντούμε συνήθως στα [[java: |
| * **Static Variables (static class fields):** Οι [[java: | * **Static Variables (static class fields):** Οι [[java: | ||
| * **Τοπικές μεταβλητές (local-variables): | * **Τοπικές μεταβλητές (local-variables): | ||
| Line 45: | Line 45: | ||
| ==== Κυριολεκτικά (literals) ==== | ==== Κυριολεκτικά (literals) ==== | ||
| + | |||
| + | Με τον όρο " | ||
| + | <code java> | ||
| + | boolean result = true; | ||
| + | char capitalC = ' | ||
| + | byte b = 100; | ||
| + | short s = 10000; | ||
| + | int i = 100000; | ||
| + | </ | ||
| === Κυριολεκτικά αλφαριθμητικών (strings) === | === Κυριολεκτικά αλφαριθμητικών (strings) === | ||
| Τα κυριολεκτικά αλφαριθμητικών ορίζονται με διπλά εισαγωγικά. Ένα παράδειγμα ορισμού **String** μπορείτε να δείτε παρακάτω: | Τα κυριολεκτικά αλφαριθμητικών ορίζονται με διπλά εισαγωγικά. Ένα παράδειγμα ορισμού **String** μπορείτε να δείτε παρακάτω: | ||
| - | |||
| <code java> | <code java> | ||
| String str = "this is a string"; | String str = "this is a string"; | ||
| </ | </ | ||
| + | Μπορείτε να παράγετε ένα νέο αλφαριθμητικό από την συνένωση δύο υφιστάμενων αλφαριθμητικών με χρήση του χαρακτήρα ' | ||
| + | <code java> | ||
| + | String greeting = "Hello " | ||
| + | </ | ||
| + | Μετά την εκτέλεση της παραπάνω εντολής η μεταβλητή // | ||
| + | |||
| + | === Κυριολεκτικά χαρακτήρων === | ||
| Κυριολεκτικά χαρακτήρων ορίζονται με απλά εισαγωγικά ως εξής: | Κυριολεκτικά χαρακτήρων ορίζονται με απλά εισαγωγικά ως εξής: | ||
| Line 60: | Line 75: | ||
| </ | </ | ||
| - | Οι χαρακτήρες στην Java καταλαμβάνουν 2 bytes και έχουν κωδικοποίηση UTF-16. Μπορείτε να γράψετε χαρακτήρες με χρήση της //unicode escape// μορφής τους, όπως παρακάτω | + | Οι χαρακτήρες στην Java καταλαμβάνουν 2 bytes και έχουν κωδικοποίηση UTF-16. Μπορείτε να αναθέσετε τιμές σε χαρακτήρες με χρήση της //unicode escape// μορφής τους, όπως παρακάτω: |
| <code java> | <code java> | ||
| Line 73: | Line 88: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| - | * '' | + | * '' |
| * '' | * '' | ||
| * '' | * '' | ||
| * '' | * '' | ||
| - | === Κυριολεκτικά ακεραίων αριθμών | + | === Κυριολεκτικά ακεραίων αριθμών === |
| - | | + | Τα κυριολεκτικά ακεραίων αριθμών είναι τύπου int εκτός εάν έχουν τον χαρακτήρα ' |
| - | * **Δεκαεξαδικές τιμές: | + | <code java> |
| - | * **Δυαδικές τιμές: | + | byte b = 100; |
| + | short s = 10000; | ||
| + | int i = 100000; | ||
| + | </ | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Εάν επιχειρήσετε να αναθέσετε σε μία μεταβλητή μία τιμή η οποία υπερβαίνει την χωρητικότητα της τότε θα λάβετε ένα μήνυμα λάθους από τον compiler, όπως παρακάτω | ||
| + | <code java> | ||
| + | byte b = 1000; | ||
| + | |||
| + | error: incompatible types: possibly lossy conversion from integer to byte. | ||
| + | byte b = 1000; | ||
| + | ^ | ||
| + | Δεν μπορείτε να αναθέσετε σε μία μεταβλητή τύπου byte την τιμή 1000, καθώς | ||
| + | το εύρος τιμών της είναι από -128 έως 127. | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Εάν θέλετε να αναθέσετε σε μία μεταβλητή τύπου long μία τιμή που είναι μεγαλύτερη από την μέγιστη τιμή της μεταβλητή int ή μικρότερη της ελάχιστης τιμή της int, τότε θα πρέπει να χρησιμοποιήσετε ένα κυριολεκτικό τύπου long, όπως δείχνουμε παρακάτω: | ||
| + | <code java> | ||
| + | long a = 2147483648878787L; | ||
| + | ή | ||
| + | long a = 2147483648878787l; | ||
| + | </ | ||
| + | Εάν παραλείψετε τον χαρακτήρα ' | ||
| + | < | ||
| + | error: integer number too large: 2147483648878787 | ||
| + | long a = 2147483648878787; | ||
| + | ^ | ||
| + | </ | ||
| + | |||
| + | Σε έναν ακέραιο αριθμό (byte, short, int, long) μπορείτε να αναθέσετε τιμές χρησιμοποιώντας κυριολεκτικά δεκαδικής, | ||
| + | |||
| + | | ||
| + | * **Δεκαεξαδικές τιμές: | ||
| + | * **Δυαδικές τιμές: | ||
| === Κυριολεκτικά αριθμών κινητής υποδιαστολής (float) === | === Κυριολεκτικά αριθμών κινητής υποδιαστολής (float) === | ||
| - | Τα κυριολεκτικά αριθμών κινητής υποδιαστολής είναι τύπου double. | + | Τα κυριολεκτικά αριθμών κινητής υποδιαστολής είναι τύπου double |
| <code java> | <code java> | ||
| - | double d = 0.14768; ή double d = 0.14768L; | + | double d = 0.14768; ή double d = 0.14768D; |
| </ | </ | ||
| - | Εάν ένα κυριολεκτικό είναι τύπου float θα πρέπει να τελειώνει σε //F// ή //f//, δηλ. | + | |
| + | <WRAP tip 80% center round> | ||
| + | **Δεν συνιστάται, | ||
| + | |||
| + | Εάν | ||
| + | * να χωρά σε μία μεταβλητή τύπου float. | ||
| + | * η τιμή να τελειώνει με τον χαρακτήρα ' | ||
| + | Δείτε το παρακάτω παραδειγμα: | ||
| + | <code java> | ||
| + | float d= 1288789.99999999999999999999; | ||
| + | |||
| + | Λαμβάνετε το παρακάτω μήνυμα λάθους, | ||
| + | error: possible loss of precision | ||
| + | float d= 1288789.99999999999999999999; | ||
| + | ^ | ||
| + | required: float | ||
| + | found: | ||
| + | </ | ||
| + | |||
| + | Αντίστοιχα, | ||
| + | <code java> | ||
| + | float d= 1288787879999999999999999999999999999999999999999999999999.99999999999999999999F; | ||
| + | |||
| + | error: floating point number too large | ||
| + | float d= 1288789999999999999999999999999999999999999999999999999999999.99999999999999999999F; | ||
| + | ^ | ||
| + | </ | ||
| + | |||
| + | |||
| + | </ | ||
| + | Εάν ένα κυριολεκτικό είναι τύπου float αντί για double, | ||
| <code java> | <code java> | ||
| float f = 0.14768f; ή float f = 0.14768F; | float f = 0.14768f; ή float f = 0.14768F; | ||
| Line 121: | Line 201: | ||
| - | | | [[java: | + | | Προηγούμενο: |