Inzeráty

Java poskytuje celou řadu modifikátory přístupu nastavit úroveň přístupu pro třídy, proměnné, metody a konstruktory. Čtyři úrovně přístupu jsou –

  • viditelné pro balíček, výchozí. Nejsou potřeba žádné modifikátory.
  • viditelné pouze pro třídu (soukromé).
  • viditelné pro svět (veřejné).
  • viditelné pro balení a všechny podtřídy (chráněné).,

Default Access Modifier – žádné klíčové slovo

Default access modifier znamená, že explicitně nevyhlašujeme modifikátor přístupu pro třídu, pole, metodu atd.

proměnná nebo metoda deklarovaná bez jakéhokoli modifikátoru řízení přístupu je k dispozici jakékoli jiné třídě ve stejném balíčku. Pole v rozhraní jsou implicitně veřejné statické finále a metody v rozhraní jsou ve výchozím nastavení veřejné.,

Příklad:

Proměnné a metody mohou být deklarovány bez jakékoliv modifikátory, jako v následujících příkladech −

String version = "1.5.1";boolean processOrder() { return true;}

Soukromý Přístup Modifikátor – Soukromé

Metody, proměnné, konstruktory, které jsou prohlášeny za soukromé lze přistupovat pouze v rámci uvedené třídy sám.

Private access modifier je nejvíce omezující úroveň přístupu. Třída A rozhraní nemohou být soukromé.

proměnné, které jsou deklarovány jako soukromé, lze přistupovat mimo třídu, pokud jsou ve třídě přítomny metody veřejného getru.,

použití soukromého modifikátoru je hlavní způsob, jakým se objekt zapouzdří a skryje data z vnějšího světa.

příklad

následující třída používá Private access control –

zde je proměnná formátu třídy Logger soukromá,takže pro jiné třídy neexistuje způsob, jak přímo načíst nebo nastavit její hodnotu.

abychom tuto proměnnou zpřístupnili vnějšímu světu, definovali jsme dvě veřejné metody: getFormat (), který vrací hodnotu formátu, a setFormat(řetězec), který nastavuje její hodnotu.,

Public Access Modifier-Public

třída, metoda, Konstruktor, rozhraní atd. deklarovaná veřejnost může být přístupná z jakékoli jiné třídy. Proto jsou pole, metody, bloky deklarované uvnitř veřejné třídy přístupné z jakékoli třídy patřící do vesmíru Java.

Pokud je však veřejná třída, ke které se snažíme přistupovat, v jiném balíčku, musí být veřejná třída stále importována. Kvůli dědičnosti třídy jsou všechny veřejné metody a proměnné třídy zděděny jeho podtřídy.,

Příklad:

následující funkce používá public access control −

public static void main(String arguments) { // ...}

main() metoda aplikace musí být veřejné. V opačném případě to nemohlo být voláno interpretem Java (například java) pro spuštění třídy.

Modifikátor Protected Access – Chráněný

Proměnné, metody a konstruktory, které jsou prohlášeny za chráněné v nadřazené třídě může být přístupné pouze podtřídy v jiné balení, nebo libovolné třídy v balíčku chráněné členy třídy.

chráněný modifikátor přístupu nelze použít na třídu a rozhraní., Metody, pole mohou být prohlášeny za chráněné, metody a pole v rozhraní však nelze prohlásit za chráněné.

chráněný přístup dává podtřídě šanci použít pomocnou metodu nebo proměnnou a zároveň zabraňuje tomu, aby se třída, která není ve spojení, pokusila použít.

Příklad:

následující nadřazené třídy používá protected access control, aby jeho dítě třídy přepsat openSpeaker() metoda −

class AudioPlayer { protected boolean openSpeaker(Speaker sp) { // implementation details }}class StreamingAudioPlayer extends AudioPlayer { boolean openSpeaker(Speaker sp) { // implementation details }}

Tady, pokud budeme definovat openSpeaker() metoda jako soukromé, pak by neměly být přístupné z jakékoli jiné třídy, jiné než AudioPlayer., Pokud ji definujeme jako veřejnou, pak by byla přístupná celému vnějšímu světu. Naším záměrem je však tuto metodu vystavit pouze podtřídě, proto jsme použili chráněný modifikátor.

Řízení Přístupu a Dědičnost

následující pravidla pro zděděné metody jsou prosazovány −

  • Metody prohlásil veřejné v nadřazené třídě také musí být veřejné, ve všech podtříd.

  • metody deklarované jako chráněné v podtřídě musí být buď chráněny, nebo veřejné v podtřídách; nemohou být soukromé.,

  • metody vyznávané v soukromí nejsou zděděny vůbec, takže pro ně neexistuje žádné pravidlo.

java_modifier_types.htm
Inzeráty