Izpitno vprašanje RAČ2PRA 300

Iz MaFiRaWiki

Vprašanje

Razloži pojme public/private/protected.

Odgovor

public, private, protected so v javi rezervirane besede, ki jih uporabljamo za nadzor dostopa. Uporabimo jih, da zožimo ali razširimo dostop do imen, definiranih v programu.

public

  • Do lastnosti lahko dostopajo vsi, od kjerkoli. Metodo lahko uporabljajo vsi.
  • Do komponente ali metode lahko dostopajo vsi razredi. Do njih lahko dostopa razred sam, podrazredi in razredi istega paketa.
  • Dostopamo z ukazom:
ime_objekta.lastnost
  • Imamo komponento
public int javnaLastnost; // v objektu MojObjekt

Kdorkoli naredi objekt vrste MojObjekt

MojObjekt x = new MojObjekt();

lahko dostopa do metode javnaLastnost z ukazom

x.javnaLastnost();

friendly dostop:

  • Če ne napišeš nič se privzame, da je to friendly dostop.
  • Do komponente ali metode lahko dostopa razred sam in razred istega paketa.
  • Če razredov ne razvrrščamo v paktete (so torej vsi v privzetem paketu, ne napišemo na začetku datoteke package ....) je ta dosto v bistvu enak dostopu public.

private

  • Do lastnosti ne more dostopati nihče, razen metode znotraj istega razreda.
  • Do metode ali komponente lahko dostopa samo razred v katerem je metoda ali komponenta definirana.
  • Imamo metodo
public int privatnaLastnost; // v objektu MojObjekt

Denimo, da nekdo naredi objekt vrste MojObjekt

MojObjekt x = new MojObjekt();

Pri poskusu dostopa do lastnosti privatnaLastnost

x.privatnaLastnost;

prevajalnik javi napako.


protected

  • Dostop imajo vsi razredi, ki so v istem paketu.
  • Do metode ali komponente lahko dostopa samo razred, v katerem je metoda ali komponenta definirana, in vsi podrazredi tega razreda.
  • Paket je skupina razredov, ki tvorijo smiselno celoto (npr.: paket razredov za delo z datotekami java.io, za delo z grafiko java.awt,...).


Dostop lahko omejimo tudi do razreda (class).

Glej tudi

Osebna orodja