java:data_encapsulation

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 Both sides next revision
java:data_encapsulation [2015/01/21 13:45]
gthanos [Τύποι πεδίων της κλάσης]
java:data_encapsulation [2015/01/21 13:55]
gthanos
Line 52: Line 52:
 ===== Τύποι πεδίων της κλάσης ===== ===== Τύποι πεδίων της κλάσης =====
  
-Μία κλάση μπορεί να διαθέτει **primitive** (βασικούς) τύπους δεδομένων (πχ. int, long, char, double, float κλπ) ή **reference** τύπους δεδομένων. **Reference** τύποι δεδομένων είναι οι μη βασικοί τύποι δεδομένων που αναφέρονται σε άλλες κλάσεις. Για παράδειγμα,​ ας πούμε ότι στο παραπάνω παράδειγμα θέλουμε να προσθέσουμε την θέση του ποδηλάτου. Η θέση του ποδηλάτου μπορεί να προσδιοριστεί από την παρακάτω κλάση ''​Coordinates''​.+Μία κλάση μπορεί να διαθέτει **primitive** (βασικούς) τύπους δεδομένων (πχ. int, long, char, double, float κλπ) ή **reference** τύπους δεδομένων. **Reference** τύποι δεδομένων είναι οι μη βασικοί τύποι δεδομένων που αναφέρονται σε άλλες κλάσεις. Για παράδειγμα,​ ας πούμε ότι στο παραπάνω παράδειγμα θέλουμε να προσθέσουμε την θέση του ποδηλάτου. Η θέση του ποδηλάτου μπορεί να προσδιοριστεί από την παρακάτω κλάση ''​Coordinates'' ​που προσδιορίζει την θέση με βάση το γεωγραφικό ύψος και πλάτος.
  
 <code java> <code java>
Line 58: Line 58:
     private double latitude;     private double latitude;
     private double longitude;     private double longitude;
 +    ​
 +    public void Coordinates(double lat, double long) {
 +        latitude = lat;
 +        longitude = long;
 +    }
     ​     ​
     public double getLatitude() {     public double getLatitude() {
Line 77: Line 82:
  
 <code java> <code java>
 +public class Bicycle { 
 +         
 +    private int cadence; 
 +    private int gear; 
 +    private int speed; 
 +    public Coordinates coordinates;​ 
 +         
 +    public Bicycle(int startCadence,​ int startSpeed, int startGear, int lat, int log) { 
 +        coordinates = new Coordinates(lat,​long);​ 
 +        gear = startGear;​ 
 +        cadence = startCadence;​ 
 +        speed = startSpeed;​ 
 +    } 
 +         
 +    public int getCadence() { 
 +        return cadence; 
 +    } 
 +         
 +    public void setCadence(int newValue) { 
 +        cadence = newValue; 
 +    } 
 +         
 +    public int getGear() { 
 +        return gear; 
 +    } 
 +         
 +    public void setGear(int newValue) { 
 +        gear = newValue; 
 +    } 
 +         
 +    public int getSpeed() { 
 +        return speed; 
 +    } 
 +         
 +    public void applyBrake(int decrement) { 
 +        speed -= decrement;​ 
 +    } 
 +         
 +    public void speedUp(int increment) { 
 +        speed += increment;​ 
 +    } 
 +}
 </​code>​ </​code>​
  
 +Η κλάση ''​Bicycle''​ επομένως περιέχει εκτός από **primitive** πεδία και ένα **reference** πεδίο το πεδίο ''​coordinates''​. Εδώ θα πρέπει να παρατηρήσουμε δύο πράγματα. 
 +  - Στην 1η γραμμή του κατασκευαστή τη συνάρτησης bicycle συναντούμε ''​coordinates = new Coordinates(lat,​long);''​. 
 +  - Το πεδίο ''​coordinates''​ ορίζεται ως **public** και όχι ως **private** (γιατί;​).
  
  
java/data_encapsulation.txt · Last modified: 2016/02/26 11:15 (external edit)