Java: Modifikátory přístupu

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Doplněno/spojeno se stránkou OOP)
m (Běžné použití: Drobná přeformulace nadpisu pro ujasnění.)
 
(Nejsou zobrazeny 3 mezilehlé verze od 1 uživatele.)
Řádka 1: Řádka 1:
 
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Java]]
 
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Java]]
  
Upravují přístup k metodám a atributům třídy.
+
Upravují přístup k metodám a atributům třídy. Říkají, kdo (které třídy) mohou volat metody resp. přistupovat k atributům třídy.
 +
 
 +
== Význam modifikátorů ==
  
 
; <code>private</code>
 
; <code>private</code>
* Přístupnost pouze ze tříd ve stejném balíčku.
+
* Přístup pouze z dané třídy.
 
* Žádná jiná třída nemůže přistupovat.
 
* Žádná jiná třída nemůže přistupovat.
* Implicitní volba (zvoleno automaticky, když neuvedeme).
 
 
; <code>protected</code>
 
; <code>protected</code>
* Přístup mají navíc potomci třídy (třídy, které jsou potomky viz [[Dědičnost v OOP]].
+
* Přístup mají navíc potomci třídy (''subclass'', třídy, které dědí tuto třídu).
 +
* Viz [[Objektově orientované programování|OOP — dědičnost]].
 
; <code>public</code>
 
; <code>public</code>
* Přístupnost z libovolné třídy
+
* Přístupnost z libovolné třídy.
 
* Libovolné třídy mohou přistupovat k tomuto atributu/metodě.
 
* Libovolné třídy mohou přistupovat k tomuto atributu/metodě.
 +
; Žádný modifikátor
 +
* Pokud neuvedeme žádný modifikátor, mají přístup jen třídy ve stejném balíčku (''package'').
 +
* (Je to tedy významově podobné jako <code>private</code>, ale třídy stejného balíčku mají vyjímku.)
  
 
Více viz: [http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html Dokumentace Javy].
 
Více viz: [http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html Dokumentace Javy].
 +
 +
== Který modifikátor zvolit? ==
 +
 +
; Pro třídy
 +
* v jednoduchých projektech většinou používáme s modifikátorem <code>public</code>
 +
* vyjímečně bez modifikátoru, když se jedná o pomocnou třídu, kterou nemá být vidět mimo náš balíček
 +
 +
; Pro atributy
 +
* běžně bychom s atributy měli pracovat, jako by byly <code>private</code>
 +
* v objektovém programování by třída měla vždy své atributy upravovat sama ([[Objektově_orientované_programování#Rysy_OOP|zapouzdření ~ ''encapsulation'']])
 +
* Často se ale atributy uvádí bez modifikátoru, čímž jsou teoreticky přístupné ze tříd daného balíčku.
 +
 +
; Pro metody
 +
* Zde využijeme všechny varianty modifikátorů. Je třeba rozhodnout, jaký přístup pro danou metodu chceme.
 +
* <code>private</code> pro pomocné metody, které nemají být přístupné z jiných tříd.
 +
* <code>protected</code> pomocné metody, u kterých počítáme s tím, že by je mohly používat i odvozené třídy.
 +
* <code>public</code> metody rozhraní, kterými komunikujeme s dalšími třídami.

Aktuální verze z 1. 12. 2015, 14:15


Upravují přístup k metodám a atributům třídy. Říkají, kdo (které třídy) mohou volat metody resp. přistupovat k atributům třídy.

Význam modifikátorů

private
protected
public
Žádný modifikátor

Více viz: Dokumentace Javy.

Který modifikátor zvolit?

Pro třídy
Pro atributy
Pro metody
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje