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
Previous revision
java:data_encapsulation [2015/01/21 13:45]
gthanos [Τύποι πεδίων της κλάσης]
java:data_encapsulation [2015/01/21 13:56]
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η γραμμή του κατασκευαστή τη κλάσης ''​Βicycle''​ συναντούμε ''​coordinates = new Coordinates(lat,​long);''​. 
 +  - Το πεδίο ''​coordinates''​ ορίζεται ως **public** και όχι ως **private** (γιατί;​).
  
  
java/data_encapsulation.txt · Last modified: 2016/02/26 11:15 (external edit)