This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
java:class_fields [2018/02/23 18:05] gthanos |
java:class_fields [2020/02/20 14:25] (current) gthanos |
||
---|---|---|---|
Line 5: | Line 5: | ||
Οι κανόνες ονοματολογίας των μεταβλητών στην Java συνοψίζονται στα εξής: | Οι κανόνες ονοματολογίας των μεταβλητών στην Java συνοψίζονται στα εξής: | ||
- | - Τα ονόματα των μεταβλητών είναι case-sensitive. Κάθε μεταβλητή μπορεί να ξεκινά με ένα γράμμα της αλφαβήτου (κεφαλαίο ή μικρό), τον χαρακτήρα '\$' ή τον χαρακτήρα '_'. //Αποφύγετε όμως οι μεταβλητές σας να ξεκινούν με τους χαρακτήρες '\$' ή '_' εκτός αν συντρέχει ισχυρός λόγος//. | + | - Τα ονόματα των μεταβλητών είναι case-sensitive. Κάθε μεταβλητή μπορεί να ξεκινά με ένα γράμμα της αλφαβήτου (κεφαλαίο ή μικρό), τον χαρακτήρα '$' ή τον χαρακτήρα '_'. //Αποφύγετε όμως οι μεταβλητές σας να ξεκινούν με τους χαρακτήρες '$' ή '_' εκτός αν συντρέχει ισχυρός λόγος//. |
- | - Οι υπόλοιποι χαρακτήρες των μεταβλητών σας μπορεί να είναι γράμματα (κεφαλαία και μικρά), αριθμοί και οι χαρακτήρες '$', '_'. //Αποφύγετε στην ονοματολογία σας μεταβλητές που έχουν μόνο ένα γράμμα (π.χ. int s, double c) εκτός και εάν πρόκειται για μεταβλητές δείκτες που χρησιμοποιούνται σε επανάληψη (π.χ for, while)// . | + | - Οι υπόλοιποι χαρακτήρες των μεταβλητών σας μπορεί να είναι γράμματα (κεφαλαία και μικρά), αριθμοί και οι χαρακτήρες '$', '_'. //Αποφύγετε στην ονοματολογία σας μεταβλητές που έχουν μόνο ένα γράμμα (π.χ. int s, double c) εκτός και εάν πρόκειται για μεταβλητές δείκτες που χρησιμοποιούνται σε επανάληψη (π.χ for, while)//. |
- Αν το όνομα της μεταβλητής σας αποτελείται από μία λέξη τότε γράψτε την λέξη αυτή με μικρά γράμματα (π.χ. role, colour, speed). Εάν η μεταβλητή σας περιέχει δύο λέξεις ενώστε τις λέξεις αυτές κάνοντας το πρώτο γράμμα κάθε λέξης κεφαλαίο (π.χ. adminRole, brighterColour, maxSpeed, maxSpeedTest). | - Αν το όνομα της μεταβλητής σας αποτελείται από μία λέξη τότε γράψτε την λέξη αυτή με μικρά γράμματα (π.χ. role, colour, speed). Εάν η μεταβλητή σας περιέχει δύο λέξεις ενώστε τις λέξεις αυτές κάνοντας το πρώτο γράμμα κάθε λέξης κεφαλαίο (π.χ. adminRole, brighterColour, maxSpeed, maxSpeedTest). | ||
- Εάν η μεταβλητή σας ορίζεται ως σταθερά, δηλαδή χαρακτηρίζεται από το πρόθεμα **static final** (π.χ. static final double PI = 3.14159265359;), τότε χρησιμοποιήστε εξ ολοκλήρου κεφαλαία αντί για μικρά γράμματα. | - Εάν η μεταβλητή σας ορίζεται ως σταθερά, δηλαδή χαρακτηρίζεται από το πρόθεμα **static final** (π.χ. static final double PI = 3.14159265359;), τότε χρησιμοποιήστε εξ ολοκλήρου κεφαλαία αντί για μικρά γράμματα. | ||
Line 14: | Line 14: | ||
Μία κλάση μπορεί να διαθέτει | Μία κλάση μπορεί να διαθέτει | ||
- **[[java:variables|primitive]] (βασικούς) τύπους δεδομένων:** (πχ. int, long, char, double, float κλπ, σε αναλογία με τους τύπους δεδομένων της γλώσσας προγραμματισμού C) και | - **[[java:variables|primitive]] (βασικούς) τύπους δεδομένων:** (πχ. int, long, char, double, float κλπ, σε αναλογία με τους τύπους δεδομένων της γλώσσας προγραμματισμού C) και | ||
- | - **[[java:variables|reference]] τύπους δεδομένων**: τύπους δεδομένων οι οποίοι περιγράφονται από κλάσεις. | + | - **[[java:variables|reference]] τύπους δεδομένων**: σύνθετους τύπους δεδομένων οι οποίοι περιγράφονται από κλάσεις. |
Βασικούς τύπους δεδομένων συναντήσαμε στην [[java:class|κλάση Rectangle της προηγούμενης σελίδας]]. **Reference** τύποι δεδομένων είναι οι μη βασικοί τύποι δεδομένων που προδιαγράφονται από κλάσεις. Για παράδειγμα, ας πούμε ότι στο παραπάνω παράδειγμα θέλουμε να προσθέσουμε την θέση του ορθογώνιου παραλληλόγραμμου που ορίσαμε στην προηγούμενη παράγραφο στον χώρο. Η θέση του παραλληλογράμμου μπορεί να προσδιοριστεί από την παρακάτω κλάση **Point** η οποία περιγράφει ένα σημείο στο χώρο. Θεωρήστε ότι το σημείο προσδιορίζει την κάτω αριστερή γωνία του παραλληλογράμμου στον χώρο, όπως φαίνεται στο παρακάτω σχήμα. | Βασικούς τύπους δεδομένων συναντήσαμε στην [[java:class|κλάση Rectangle της προηγούμενης σελίδας]]. **Reference** τύποι δεδομένων είναι οι μη βασικοί τύποι δεδομένων που προδιαγράφονται από κλάσεις. Για παράδειγμα, ας πούμε ότι στο παραπάνω παράδειγμα θέλουμε να προσθέσουμε την θέση του ορθογώνιου παραλληλόγραμμου που ορίσαμε στην προηγούμενη παράγραφο στον χώρο. Η θέση του παραλληλογράμμου μπορεί να προσδιοριστεί από την παρακάτω κλάση **Point** η οποία περιγράφει ένα σημείο στο χώρο. Θεωρήστε ότι το σημείο προσδιορίζει την κάτω αριστερή γωνία του παραλληλογράμμου στον χώρο, όπως φαίνεται στο παρακάτω σχήμα. | ||
Line 21: | Line 21: | ||
<code java Point.java> | <code java Point.java> | ||
- | + | class Point { | |
- | public class Point { | + | int x; // x coordinate |
- | private int x; // x coordinate | + | int y; // y coordinate |
- | private int y; // y coordinate | + | |
- | + | public Point(int xPos, int yPos) { | |
- | public Point(int xPos, int yPos) { | + | x = xPos; |
- | x = xPos; | + | y = yPos; |
- | y = yPos; | + | } |
- | } | + | |
- | + | int getX() { | |
- | public int getX() { | + | return x; |
- | return x; | + | } |
- | } | + | |
- | + | void setX(int xPos) { | |
- | public void setX(int xPos) { | + | x = xPos; |
- | x = xPos; | + | } |
- | } | + | |
- | + | int getY() { | |
- | public int getY() { | + | return y; |
- | return y; | + | } |
- | } | + | |
- | + | void setY(int yPos) { | |
- | public void setY(int yPos) { | + | y = yPos; |
- | y = yPos; | + | } |
- | } | + | |
} | } | ||
</code> | </code> | ||
Line 52: | Line 51: | ||
<code java Rectangle.java> | <code java Rectangle.java> | ||
- | public class Rectangle { | + | class Rectangle { |
| | ||
// the Rectangle class has 3 fields | // the Rectangle class has 3 fields | ||
- | public int width; | + | int width; |
- | public int height; | + | int height; |
- | public Point origin; | + | Point origin; |
| | ||
// the Rectangle class has one constructor | // the Rectangle class has one constructor | ||
Line 66: | Line 65: | ||
} | } | ||
- | public void setWidth(int newWidth ) { | + | void setWidth(int newWidth ) { |
width = newWidth; | width = newWidth; | ||
} | } | ||
| | ||
- | public void setHeight(int newHeight ) { | + | void setHeight(int newHeight ) { |
height = newHeight; | height = newHeight; | ||
} | } | ||
| | ||
- | public void setOrigin(Point newOrigin) { | + | void setOrigin(Point newOrigin) { |
origin = newOrigin; | origin = newOrigin; | ||
} | } | ||
| | ||
- | public void getOrigin() { | + | Point getOrigin() { |
return origin; | return origin; | ||
} | } | ||
| | ||
- | public void setOrigin(int newX, int newY) { | + | void setOrigin(int newX, int newY) { |
origin.setX(newX); | origin.setX(newX); | ||
origin.setY(newY); | origin.setY(newY); | ||
} | } | ||
- | } | + | } |
</code> | </code> | ||
Line 92: | Line 91: | ||
<WRAP todo 80% center round> | <WRAP todo 80% center round> | ||
- | Μεταγλωττίστε τις δύο παραπάνω κλάσεις γράφοντας | + | Μεταγλωττίστε τις δύο παραπάνω κλάσεις στο τερματικό σας, γράφοντας |
<code> | <code> | ||
javac Point.java | javac Point.java |