java:data_encapsulation

Differences

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

Link to this comparison view

java:data_encapsulation [2015/01/21 13:18]
gthanos created
java:data_encapsulation [2016/02/26 11:15]
Line 1: Line 1:
-====== Απόκρυψη δεδομένων και εσωτερικής υλοποίησης ====== 
- 
-Ένα από τα βασικά χαρακτηριστικά του Αντικειμενοστραφούς Προγραμματισμούς είναι η απόκρυψη των δεδομένων και της εσωτερικής υλοποίησης των κλάσεων σε άλλες κλάσεις που τις χρησιμοποιούν. Κατά κάποιο τρόπο, συνηθίζουμε να παρέχουμε ένα σύνολο από μεθόδους (interface),​ το οποίο μπορούν αν χρησιμοποιήσουν άλλοι προγραμματιστές προκειμένου να χρησιμοποιήσουν την κλάση μας. Ο λόγος που αποκρύπτουμε τα εσωτερικά δεδομένα είναι ότι αν δεν γίνεται απευθείας χρήση των εσωτερικών δεδομένων μία κλάσης ή βοηθητικών συναρτήσεων αυτής τότε η εσωτερική υλοποίηση της κλάσης μπορεί να αλλάξει,​ χωρίς όμως να πρέπει να αλλάξουν και οι υπόλοιπες κλάσεις που χρησιμοποιούν την κλάση αυτή. Η παραπάνω πρακτική συναντάται στην βιβλιογραφία ως **data encapsulation** ή **information hiding**. ​ 
- 
-Ακολουθώντας την παραπάνω πρακτική θα επαναορίσουμε την κλάση του ποδηλάτου,​ ώστε να υπακούει στον παραπάνω κανόνα. 
- 
-<code java> 
-public class Bicycle { 
-        ​ 
-    private int cadence; 
-    private int gear; 
-    private int speed; 
-        ​ 
-    public Bicycle(int startCadence,​ int startSpeed, int startGear) { 
-        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>​ 
  
java/data_encapsulation.txt · Last modified: 2016/02/26 11:15 (external edit)