Izpitno vprašanje DIRI2005 300

Iz MaFiRaWiki

Predmet Dopolnilno izobraževanje iz računalništva in informatike (DIRI)

Vprašanje

Razloži pojme: public / private / protected.

Odgovor

Omenjeni pojmi so preoblikovalci, ki določajo dostopnost, ki se določa razredom, spremenljivkam in postopkom. S preoblikovalci (modifiers) razreda spreminjamo nekatere splošne lastnosti razreda. Zapišemo jih pred rezervirano besedo class in imenom razreda. Spremenljivkam lahko (podobno kot razredom) določimo večje število preoblikovalcev, ki lahko določajo dostopnost in druge lastnosti spremenljivk. Preoblikovalci dostopnosti omogočajo izbiro razredov, ki lahko uporabljajo spremenljivke. Postopek pa je sestavljen iz nekaj preoblikovalcev, katerim sledijo še podatkovni tip, ki ga vrne postopek, ime postopka in blok s parametri oz. argumenti (npr. public static void main (String args[])).

public

Razrede jezika Java postavimo zaradi preglednosti najpogosteje v različne, smiselno imenovane pakete. Načeloma lahko posamezen razred paketa uporablja le druge razrede istega paketa. Temu se izognemo tako, da pred rezervirano besedo class in imenom razreda zapišemo preoblikovalec public. Tako označeni razred lahko uporabljajo tudi razredi drugih paketov. Preoblikovalca razreda sta tudi preoblikovalec abstract in final.

V primeru uporabe preoblikovalca public imajo dostop do tako najavljenega člena razreda vsi razredi v vseh paketih.

private

To oznako (spremenljivke ali postopka) uporabimo le v razredu, v katerem smo ga najavili. V vseh ostalih razredih in podrazredih pa je tako označeni člen neviden.

V spodnjem primeru želimo ustvarjenemu razredu Prvi spremeniti spremenljivko v razredu Drugi, zato prevajalnik javi napako:

class Prvi {

 private int x;

} class Drugi extends Prvi {

 void Postopek () {
    Prvi Moj_Prvi = new Prvi ();
    Moj_Prvi.x = 3;     //napaka 
 }

}

protected

Lastnost, ki ji dodamo preoblikovalec protected, lahko spreminjamo v samem razredu, podrazredih in razredih istega paketa (npr. paket java.applet je namenjen izdelavi programčkov). Predpostavimo, da imamo paket Ena in v njem razred Prvi z zaščiteno lastnostjo X. Izven paketa Ena postavimo razred Drugi, prek katerega želimo spremeniti zgoraj najavljeno spremenljivko. Program seveda ne deluje, saj ne moremo uporabljati zaščitene (protected) spremenljivke, tudi če lahko kreiramo objekt tipa Prvi.

Osebna orodja