User Tools

Site Tools


java:public_private_access_modifiers

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:public_private_access_modifiers [2018/02/04 06:44] gthanosjava:public_private_access_modifiers [2019/02/11 15:38] (current) – [Περιορισμός της πρόσβασης με τους προσδιοριστές public και private] gthanos
Line 14: Line 14:
  
 Σε αυτή την περίπτωση, ο μόνος τρόπος να προσπελαστούν τα δεδομένα της κλάσης **Point** από την κλάση **Rectangle** είναι μέσω των μεθόδων  Σε αυτή την περίπτωση, ο μόνος τρόπος να προσπελαστούν τα δεδομένα της κλάσης **Point** από την κλάση **Rectangle** είναι μέσω των μεθόδων 
-  * public int getX() +<code java> 
-  public int setX(int xPos) +  public int getX(); 
-  public int getY() +  public int setX(int xPos); 
-  public int setY(int yPos)+  public int getY(); 
 +  public int setY(int yPos)
 +</code>
  
 Ο παραπάνω περιορισμός δεν θα υπήρχε εάν τα πεδία της κλάσης **Point** είχαν οριστεί ως **public** αντί για **private**.  Ο παραπάνω περιορισμός δεν θα υπήρχε εάν τα πεδία της κλάσης **Point** είχαν οριστεί ως **public** αντί για **private**. 
- 
-<WRAP todo 80% center round> 
-Αλλάξτε τον προσδιοριστή πρόσβασης για τα πεδία της κλάσης **Point** από **private** σε **public**. Βγάλτε από τα σχόλια την μέθοδο που είναι στο τέλος της κλάσης και βάλτε σε σχόλια της αμέσως προηγούμενη μέθοδο. 
-</WRAP> 
  
 ===== Απόκρυψη δεδομένων και εσωτερικής υλοποίησης ===== ===== Απόκρυψη δεδομένων και εσωτερικής υλοποίησης =====
  
-Ένα από τα βασικά χαρακτηριστικά του Αντικειμενοστραφούς Προγραμματισμούς είναι η απόκρυψη των δεδομένων και της εσωτερικής υλοποίησης των κλάσεων στις υπόλοιπες κλάσεις που τις χρησιμοποιούν. Κατά κανόνα, συνηθίζουμε να παρέχουμε ένα σύνολο από μεθόδους, τις οποίες μπορούν να καλούν οι υπόλοιπες κλάσεις προκειμένου να χρησιμοποιήσουν την κλάση. Ο λόγος που συνήθως αποκρύπτουμε την εσωτερική υλοποίηση είναι ότι αν δεν γίνεται απευθείας χρήση των εσωτερικών δεδομένων μίας κλάσης ή των εσωτερικών μεθόδων αυτής, τότε η εσωτερική υλοποίηση της κλάσης μπορεί να αλλάξει, χωρίς η αλλαγή να επηρεάσει τις υπόλοιπες κλάσεις που χρησιμοποιούν την συγκεκριμένη κλάση. Επιπλέον, ο τρόπος χρήσης της κλάσης ελέγχεται από τον προγραμματιστή-δημιουργό της που ορίζει το σύνολο των public μεθόδων της. Η παραπάνω πρακτική συναντάται στην βιβλιογραφία ως **[[wp>Information_hiding|information hiding]]**.  +Ένα από τα βασικά χαρακτηριστικά του Αντικειμενοστραφούς Προγραμματισμούς είναι η απόκρυψη των δεδομένων και της εσωτερικής υλοποίησης των κλάσεων στις υπόλοιπες κλάσεις που τις χρησιμοποιούν. Κατά κανόνα, συνηθίζουμε να παρέχουμε ένα σύνολο από μεθόδους, τις οποίες μπορούν να καλούν οι υπόλοιπες κλάσεις προκειμένου να χρησιμοποιήσουν την κλάση. Ο λόγος που συνήθως αποκρύπτουμε την εσωτερική υλοποίηση είναι ότι αν δεν γίνεται απευθείας χρήση των εσωτερικών δεδομένων μίας κλάσης ή των εσωτερικών μεθόδων αυτής, τότε η εσωτερική υλοποίηση της κλάσης μπορεί να αλλάξει, χωρίς η αλλαγή να επηρεάσει τις υπόλοιπες κλάσεις που χρησιμοποιούν τη συγκεκριμένη κλάση. Επιπρόσθετα, ο τρόπος χρήσης της κλάσης ελέγχεται από το δημιουργό της που ορίζει το σύνολο των public μεθόδων της. Η παραπάνω πρακτική συναντάται στην βιβλιογραφία ως **[[wp>Information_hiding|information hiding]]**.  
  
 <WRAP todo 80% center round> <WRAP todo 80% center round>
Line 37: Line 35:
 </WRAP> </WRAP>
  
-|Προηγούμενο: [[:java:objectsΔημιουργία Αντικείμενων ]] |  [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:this_operator | O τελεστής this ]]|+|Προηγούμενο: [[:java:arraysΠίνακες ]] |  [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:this_operator | O τελεστής this ]]|
java/public_private_access_modifiers.1517726682.txt.gz · Last modified: 2018/02/04 06:44 by gthanos