Java: Modifikátory přístupu
Z MiS
				
				
				(Rozdíly mezi verzemi)
				
																
				
				
								
				|  (→Význam modifikátorů:  Podrobnější specifikace bez modif.) | m (→Běžné použití:  Drobná přeformulace nadpisu pro ujasnění.) | ||
| Řádka 20: | Řádka 20: | ||
| 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> | * 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 | ||
| − | ;  | + | ; 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. | ||
| − | ;  | + | ; 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
- Přístup pouze z dané třídy.
- Žádná jiná třída nemůže přistupovat.
-  protected
- Přístup mají navíc potomci třídy (subclass, třídy, které dědí tuto třídu).
- Viz OOP — dědičnost.
-  public
- Přístupnost z libovolné třídy.
- 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 private, ale třídy stejného balíčku mají vyjímku.)
Více viz: Dokumentace Javy.
Který modifikátor zvolit?
- Pro třídy
-  v jednoduchých projektech většinou používáme s modifikátorem public
- 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 private
- v objektovém programování by třída měla vždy své atributy upravovat sama (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.
-  privatepro pomocné metody, které nemají být přístupné z jiných tříd.
-  protectedpomocné metody, u kterých počítáme s tím, že by je mohly používat i odvozené třídy.
-  publicmetody rozhraní, kterými komunikujeme s dalšími třídami.
