Java: Modifikátory přístupu

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Přidán běžný význam, opraveny chyby)
m (Běžné použití: Drobná přeformulace nadpisu pro ujasnění.)
 
(Není zobrazena 1 mezilehlá verze od 1 uživatele.)
Řádka 9: Řádka 9:
 
* Žádná jiná třída nemůže přistupovat.
 
* Žádná jiná třída nemůže přistupovat.
 
; <code>protected</code>
 
; <code>protected</code>
* Přístup mají navíc potomci třídy (subclass, třídy, které dědí tuto třídu).
+
* 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]].
 
* Viz [[Objektově orientované programování|OOP — dědičnost]].
 
; <code>public</code>
 
; <code>public</code>
Řádka 15: Řádka 15:
 
* Libovolné třídy mohou přistupovat k tomuto atributu/metodě.
 
* Libovolné třídy mohou přistupovat k tomuto atributu/metodě.
 
; Žádný modifikátor
 
; Žádný modifikátor
* Pokud neuvedeme žádný modifikátor, mají přístup třídy ve stejném balíčku (package).
+
* 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].
  
== Běžné použití ==
+
== Který modifikátor zvolit? ==
  
; Třídy
+
; Pro třídy
 
* v jednoduchých projektech většinou používáme s modifikátorem <code>public</code>
 
* 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
 
* vyjímečně bez modifikátoru, když se jedná o pomocnou třídu, kterou nemá být vidět mimo náš balíček
  
; Atributy
+
; Pro atributy
 
* běžně bychom s atributy měli pracovat, jako by byly <code>private</code>
 
* 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'']])
 
* 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.
 
* Často se ale atributy uvádí bez modifikátoru, čímž jsou teoreticky přístupné ze tříd daného balíčku.
  
; Metody
+
; Pro metody
 
* Zde využijeme všechny varianty modifikátorů. Je třeba rozhodnout, jaký přístup pro danou metodu chceme.
 
* 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>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>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.
 
* <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