java:variables

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:variables [2015/07/07 18:08]
gthanos [Μεταβλητές στην γλώσσα Προγραμματισμού Java]
java:variables [2017/02/11 12:56] (current)
doufexi [Μεταβλητές στην γλώσσα Προγραμματισμού Java]
Line 2: Line 2:
  
 Οι μεταβλητές στην γλώσσα προγραμματισμού Java διακρίνονται σε δύο βασικές κατηγορίες:​ Οι μεταβλητές στην γλώσσα προγραμματισμού Java διακρίνονται σε δύο βασικές κατηγορίες:​
-  * **βασικοί τύποι (//​primitive data types//)**: Ως βασικοί τύποι δεδομένων ορίζονται οι τύποι δεδομένωνοι οποίοι καταλαμβάνουν προκαθορισμένο αριθμό bytes στην μνήμη και είναι προκαθορισμένοι από τον compiler της γλώσσας. Κοινοί τύποι είναι byte, char, integer, long, float, double κλπ. Ανάλογοι τύποι δεδομένων απαντώνται και σε άλλες γλώσσες προγραμματισμού,​ όπως οι **C/​C++**. +  * **βασικοί τύποι (//​primitive data types//)**: Ως βασικοί τύποι δεδομένων ορίζονται οι τύποι δεδομένων οι οποίοι καταλαμβάνουν προκαθορισμένο αριθμό bytes στην μνήμη και είναι προκαθορισμένοι από τον compiler της γλώσσας. Κοινοί τύποι είναι byte, char, int(integer), long, float, double κλπ. Ανάλογοι τύποι δεδομένων απαντώνται και σε άλλες γλώσσες προγραμματισμού,​ όπως οι γλώσσες ​**C/​C++**. 
-  * **αναφορικοί τύποι (//​reference types//)**: Σε αυτή την κατηγορία ανήκουν όλοι οι τύποι δεδομένων οι οποίοι ορίζονται μέσα από μία κλάση και υλοποιούνται με χρήση αντικειμένων. Ο λόγος που καλούνται αναφορικοί τύποι είναι ότι οι μεταβλητή κάθε αντικειμένου στην Java δεν περιέχει το αντικείμενο καθ'​ αυτό, αλλά ένα δείκτη (αναφορά-reference) στο αντικείμενο. Το αντικείμενο βρίσκεται σε μία διαφορετική περιοχή της μνήμης,​ όπου δεσμεύεται η απαραίτητη μνήμη από τον κατασκευαστή του αντικειμένου κατά την αρχικοποίηση του και αποδεσμεύεται η μνήμη από τον μηχανισμό Garbage Collection κατά την καταστροφή του.+  * **αναφορικοί τύποι (//​reference types//)**: Σε αυτή την κατηγορία ανήκουν όλοι οι τύποι δεδομένων οι οποίοι ορίζονται μέσα από μία κλάση και υλοποιούνται με χρήση ​[[oop:​introduction|αντικειμένων]]. Ο λόγος που καλούνται αναφορικοί τύποι είναι ότι οι μεταβλητή κάθε αντικειμένου στην Java δεν περιέχει το αντικείμενο καθ'​ αυτό, αλλά ένα δείκτη (αναφορά-reference) στο αντικείμενο. Το αντικείμενο βρίσκεται σε μία διαφορετική περιοχή της μνήμης,​ όπου δεσμεύεται η απαραίτητη μνήμη από τον κατασκευαστή του αντικειμένου κατά την αρχικοποίηση του και αποδεσμεύεται η μνήμη από τον μηχανισμό ​[[java:​jre#​Garbage Collection|Garbage Collection]] κατά την καταστροφή του.
  
-<WRAP tip 80% round center>​Κάθε κλάση στην Java απεικονίζει ένα διαφορετικό τύπο δεδομένων. Μπορούμε να έχουμε τόσους τύπους δεδομένων,​ όσα και οι διαφορετικές πιθανές κλάσεις στην Java. Επομένως,​ ο αριθμός των δυνατών τύπων δεδομένων στην Java είναι άπειρος.</​WRAP>​ +<WRAP tip 80% round center>​Κάθε κλάση στην Java απεικονίζει ένα διαφορετικό τύπο δεδομένων. Μπορούμε να έχουμε τόσους τύπους δεδομένων,​ όσα και οι διαφορετικές πιθανές κλάσεις στην Java. Επομένως,​ ο αριθμός των δυνατών τύπων δεδομένων στην Java είναι άπειρος. 
- +</​WRAP>​
-Η γλώσσα προγραμματισμού Java διαμορφώνει τις παρακάτω κατηγορίες μεταβλητών με βάση το σημείο στο οποίο ορίζονται. Οι παρακάτω διάκριση ισχύει τόσο για βασικές μεταβλητές,​ όσο και για αναφορικές μεταβλητές:​ +
-  * **Instance Variables (non-static class fields):** Η συγκεκριμένη κατηγορία μεταβλητών είναι εκείνη που συναντούμε συνήθως στα [[java:​class_fields|πεδία των κλάσεων]]. Οι μεταβλητές αυτές είναι διαφορετικές για κάθε αντικείμενο της κλάσης και αποθηκεύουν την κατάσταση του αντικειμένου σε κάθε χρονική στιγμή. +
-  * **Static Variables (static class fields):** Οι [[java:​static_keyword|στατικές μεταβλητές]] αποτελούν και αυτές [[java:​class_fields|πεδία της κλάσης]]. Η διαφορά από τις **Instance Variables** είναι ότι δεν ανήκουν σε επιμέρους αντικείμενα,​ αλλά στην κλάση. Αυτό πρακτικά σημαίνει ότι η τιμή των μεταβλητών αυτών είναι κοινή για όλα τα αντικείμενα της κλάσης. +
-  * **Τοπικές μεταβλητές (local-variables):​** τοπικές μεταβλητές σε μεθόδους (σε αναλογία με τις τοπικές μεταβλητές στην γλώσσα C). +
-  * **Παράμετροι (parameters):​** παράμετροι σε μεθόδους ή κατασκευαστές (σε αναλογία με τις παραμέτρους συναρτήσεων στην γλώσσα C) +
- +
-Σχετικά με την ονοματολογία των πεδίων της κλάσης μπορείτε να ανατρέξετε [[java:​class_fields#​Ονοματολογία των πεδίων (μεταβλητών) της κλάσης | εδώ ]].+
  
 ===== Βασικοί Τύποι Δεδομένων ​ ===== ===== Βασικοί Τύποι Δεδομένων ​ =====
- +/* 
-Ως βασικοί τύποι δεδομένων (//​primitive data types//) ορίζονται οι τύποι δεδομένων που είναι ορισμένοι σε κάθε γλώσσα προγραμματισμού και δεν χρειάζεται να τους ορίσουν οι προγραμματιστές. Εκτός των βασικών τύπων δεδομένων στην java μπορούμε να ορίσουμε δικούς μας τύπους μέσω κλάσεων,​ τους λεγόμενους //reference types//.+Ως βασικοί τύποι δεδομένων (//​primitive data types//) ορίζονται οι τύποι δεδομένων που είναι ορισμένοι σε κάθε γλώσσα προγραμματισμού και δεν χρειάζεται να τους ορίσουν οι προγραμματιστές. Εκτός των βασικών τύπων δεδομένων στην java μπορούμε να ορίσουμε δικούς μας τύπους μέσω κλάσεων,​ τους λεγόμενους //reference types//​. ​*/
  
 Οι βασικοί τύποι δεδομένων στην Java σε αναλογία με την γλώσσα προγραμματισμού C είναι οι εξής: Οι βασικοί τύποι δεδομένων στην Java σε αναλογία με την γλώσσα προγραμματισμού C είναι οι εξής:
Line 43: Line 36:
 |  String (or any object) ​ |  null  | |  String (or any object) ​ |  null  |
 |  boolean ​ |  false  | |  boolean ​ |  false  |
- 
-==== Κυριολεκτικά (literals) ==== 
- 
-=== Κυριολεκτικά αλφαριθμητικών (strings) === 
- 
-Τα κυριολεκτικά αλφαριθμητικών ορίζονται με διπλά εισαγωγικά. Ένα παράδειγμα ορισμού **String** μπορείτε να δείτε παρακάτω:​ 
- 
-<code java> 
-String str = "this is a string";​ 
-</​code>​ 
- 
-Κυριολεκτικά χαρακτήρων ορίζονται με απλά εισαγωγικά ως εξής: 
- 
-<​code>​ 
-char c = '​a';​ 
-</​code>​ 
- 
-Οι χαρακτήρες στην Java καταλαμβάνουν 2 bytes και έχουν κωδικοποίηση UTF-16. Μπορείτε να γράψετε χαρακτήρες με χρήση της //unicode escape// μορφής τους, όπως παρακάτω 
- 
-<code java> 
-char c = '​1';​ 
-char d = '​\u0031';​ // equals char '​1';​ 
-String str = "​S\u00ED Se\u00F1or";​ // equals "Sí Señor"​ in spanish 
-</​code>​ 
- 
-Επίσης ορίζονται οι ειδικοί χαρακτήρες 
-  * ''​\b''​ (backspace) 
-  * ''​\t''​ (tab) 
-  * ''​\n''​ (line feed) 
-  * ''​\f''​ (form feed) 
-  * ''​\r''​ (carriege return) 
-  * ''​\"''​ (double quote) 
-  * ''​\'''​ (single quote) 
-  * ''​\\''​ (backslash) 
- 
-=== Κυριολεκτικά ακεραίων αριθμών (int) === 
- 
-  * **Δεκαδικές τιμές** ​ (π.χ. ''​int decVal = 26;''​) 
-  * **Δεκαεξαδικές τιμές:​** (π.χ. ''​int hexVal = 0x1a;''​) 
-  * **Δυαδικές τιμές:​** (π.χ. ''​int binVal = 0b11010;''​) 
- 
-=== Κυριολεκτικά αριθμών κινητής υποδιαστολής (float) === 
- 
-Τα κυριολεκτικά αριθμών κινητής υποδιαστολής είναι τύπου double. ​ 
- 
-<code java> 
-double d = 0.14768; ή double d = 0.14768L; 
-</​code>​ 
-Εάν ένα κυριολεκτικό είναι τύπου float θα πρέπει να τελειώνει σε //F// ή //f//, δηλ. 
-<code java> 
-float f = 0.14768f; ή float f = 0.14768F; 
-</​code>​ 
- 
-==== Χρήση χαρακτήρων '​_'​ (underscore) σε αριθμητικά κυριολεκτικά ==== 
- 
-Μπορούμε να χρησιμοποιήσουμε χαρακτήρες //​underscore//​ σε αριθμητικά κυριολεκτικά,​ όπως παρακάτω:​ 
- 
-<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;​ 
-</​code>​ 
- 
-Δεν μπορείτε να χρησιμοποιήσετε //​underscores//​ 
-  * στην αρχή ενός αριθμού ή στο τέλος του. 
-  * πριν ή μετά την υποδιαστολή. 
-  * πριν τον χαρακτήρα '​F'​ ή '​L'​. 
- 
- 
- 
- 
  
  
-   ​| ​[[java:arrays ​| Πίνακες ]]  |+Προηγούμενο: ​[[java:comments | Σχόλια ]] | [[:​toc ​| Περιεχόμενα ]]   | Επόμενο: [[java:​literals | Κυριολεκτικά ​]]  |
  
java/variables.1436292526.txt.gz · Last modified: 2016/02/26 11:15 (external edit)