java:variables
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
java:variables [2016/02/18 11:22] – commented out repeated text, added "(κυρίως για λόγους αναγνωσιμότητας)", added toc link doufexi | java:variables [2017/01/25 14:13] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 2: | Line 2: | ||
Οι μεταβλητές στην γλώσσα προγραμματισμού Java διακρίνονται σε δύο βασικές κατηγορίες: | Οι μεταβλητές στην γλώσσα προγραμματισμού Java διακρίνονται σε δύο βασικές κατηγορίες: | ||
- | * **βασικοί τύποι (// | + | * **βασικοί τύποι (// |
* **αναφορικοί τύποι (// | * **αναφορικοί τύποι (// | ||
Line 44: | Line 44: | ||
| boolean | | boolean | ||
- | ==== Κυριολεκτικά (literals) ==== | ||
- | Με τον όρο " | + | | Προηγούμενο: |
- | <code java> | + | |
- | boolean result = true; | + | |
- | char capitalC = ' | + | |
- | byte b = 100; | + | |
- | short s = 10000; | + | |
- | int i = 100000; | + | |
- | </ | + | |
- | + | ||
- | === Κυριολεκτικά αλφαριθμητικών (strings) === | + | |
- | + | ||
- | Τα κυριολεκτικά αλφαριθμητικών ορίζονται με διπλά εισαγωγικά. Ένα παράδειγμα ορισμού **String** μπορείτε να δείτε παρακάτω: | + | |
- | <code java> | + | |
- | String str = "this is a string"; | + | |
- | </ | + | |
- | + | ||
- | Μπορείτε να παράγετε ένα νέο αλφαριθμητικό από την συνένωση δύο υφιστάμενων αλφαριθμητικών με χρήση του χαρακτήρα ' | + | |
- | <code java> | + | |
- | String greeting = "Hello " + " | + | |
- | </ | + | |
- | Μετά την εκτέλεση της παραπάνω εντολής η μεταβλητή // | + | |
- | + | ||
- | === Κυριολεκτικά χαρακτήρων === | + | |
- | Κυριολεκτικά χαρακτήρων ορίζονται με απλά εισαγωγικά ως εξής: | + | |
- | + | ||
- | < | + | |
- | char c = ' | + | |
- | </ | + | |
- | + | ||
- | Οι χαρακτήρες στην Java καταλαμβάνουν 2 bytes και έχουν κωδικοποίηση UTF-16. Μπορείτε να αναθέσετε τιμές σε χαρακτήρες με χρήση της //unicode escape// μορφής τους, όπως παρακάτω: | + | |
- | + | ||
- | <code java> | + | |
- | char c = ' | + | |
- | char d = ' | + | |
- | String str = " | + | |
- | </ | + | |
- | + | ||
- | Επίσης ορίζονται οι ειδικοί χαρακτήρες | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | + | ||
- | === Κυριολεκτικά ακεραίων αριθμών === | + | |
- | + | ||
- | Τα κυριολεκτικά ακεραίων αριθμών είναι τύπου 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) === | + | |
- | + | ||
- | Τα κυριολεκτικά αριθμών κινητής υποδιαστολής είναι τύπου double και όχι float. Αυτό πρακτικά σημαίνει ότι μπορείτε να αναθέσετε οποιαδήποτε τιμή σε μία μεταβλητή double χωρίς περιορισμούς. | + | |
- | + | ||
- | <code java> | + | |
- | double d = 0.14768; ή double d = 0.14768D; | + | |
- | </ | + | |
- | + | ||
- | <WRAP tip 80% center round> | + | |
- | **Δεν συνιστάται, | + | |
- | + | ||
- | Εάν για οποιονδήποτε λόγο θέλετε να αναθέσετε μία τιμή σε μία μεταβλητή τύπου float τότε αυτή θα πρέπει να έχει τα εξής χαρακτηριστικά: | + | |
- | * να χωρά σε μία μεταβλητή τύπου 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, θα πρέπει να τελειώνει σε //F// ή //f//, δηλ. | + | |
- | <code java> | + | |
- | float f = 0.14768f; ή float f = 0.14768F; | + | |
- | </ | + | |
- | + | ||
- | ==== Χρήση χαρακτήρων ' | + | |
- | + | ||
- | Μπορούμε να χρησιμοποιήσουμε χαρακτήρες // | + | |
- | + | ||
- | <code java> | + | |
- | long creditCardNumber = 1234_5678_9012_3456L; | + | |
- | long socialSecurityNumber = 999_99_9999L; | + | |
- | float pi = 3.14_15F; | + | |
- | long hexBytes = 0xFF_EC_DE_5E; | + | |
- | long hexWords = 0xCAFE_BABE; | + | |
- | long maxLong = 0x7fff_ffff_ffff_ffffL; | + | |
- | byte nybbles = 0b0010_0101; | + | |
- | long bytes = 0b11010010_01101001_10010100_10010010; | + | |
- | </ | + | |
- | + | ||
- | Δεν μπορείτε να χρησιμοποιήσετε // | + | |
- | * στην αρχή ενός αριθμού ή στο τέλος του. | + | |
- | * πριν ή μετά την υποδιαστολή. | + | |
- | * πριν τον χαρακτήρα ' | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | | Προηγούμενο: | + | |
java/variables.1455794579.txt.gz · Last modified: 2016/02/18 11:23 (external edit)