Uvod

U objektno orijentisanom programiranju veoma je važno da znamo ko sme da koristi određene delove koda.  

Zbog toga se koriste modifikatori pristupa. Oni određuju odakle se može pristupiti klasi, njenim promenljivama i metodama, kao i šta se dešava kada se iz klase prave objekti.


Primer klase i objekta:

class Ucenik
{
    public string Ime;
}
Ucenik u1 = new Ucenik();
Ucenik u2 = new Ucenik();
  • Ucenik je klasa,  u1 i u2 su objekti, a svaki objekat ima svoje podatke

Šta se dešava kada se napravi objekat?

Kada se izvrši naredba:

Ucenik u1 = new Ucenik();

dešava se sledeće:

  • U memoriji se rezerviše prostor za objekat
  • Kreira se novi objekat klase Ucenik
  • Svi članovi klase postaju deo tog objekta
  • Modifikatori pristupa određuju kojim članovima se može pristupiti preko objekta

Modifikatori pristupa

U Visual Studio 2010 (C# 4.0) koriste se sledeći modifikatori pristupa:

  • public

  • private

  • protected

  • internal

  • protected internal

Kratka objašnjenja sa primerima su sakrivena iza dugmića:

 

Član označen kao public je dostupan:

  • unutar klase

  • preko objekta

  • iz drugih klasa

  • iz drugih projekata

Primer:

class Ucenik
{
    public string Ime;
}
Ucenik u = new Ucenik();
u.Ime = "Milica";

Pošto je Ime javno, može se slobodno koristiti preko objekta u.

 

private članovi su dostupni samo unutar iste klase.
Oni postoje u objektu, ali im se ne može pristupiti spolja.

Primer:

class Racun
{
    private int stanje;

    public void Uplata(int iznos)
    {
        stanje += iznos;
    }

    public int PrikazStanja()
    {
        return stanje;
    }
}
Racun r = new Racun();
r.Uplata(500);
// r.stanje = 500; // nije dozvoljeno

Šta se dešava sa objektom?

  • Objekat r ima promenljivu stanje

  • Ali ta promenljiva je privatna

  • Može se menjati samo preko metoda klase

 

protected članovi su dostupni:

  • unutar iste klase

  • u klasama koje je nasleđuju

Primer:

class Vozilo
{
    protected int brzina;
}

class Auto : Vozilo
{
    public void PostaviBrzinu()
    {
        brzina = 100;
    }
}
Auto a = new Auto();
// a.brzina = 100; // nije dozvoljeno

Objašnjenje

  • Objekat a ima promenljivu brzina

  • Ali joj se ne može pristupiti direktno

  • Može se koristiti samo unutar nasledničke klase

 

internal članovi su dostupni svim klasama u istom projektu.

Primer:

internal class PomocnaKlasa
{
    public void Ispis()
    {
        Console.WriteLine("Interna klasa");
    }
}

Ako se u istom projektu napravi objekat:

PomocnaKlasa p = new PomocnaKlasa();
p.Ispis();

Ako se pokuša korišćenje u drugom projektu – to nije dozvoljeno.


protected internal modifikator

Ovaj modifikator kombinuje dva pravila:

  • dostupan je u istom projektu

  • dostupan je u nasledničkim klasama, čak i u drugim projektima

Primer:

class Zaposleni
{
    protected internal int plata;
}

Objekat ima promenljivu plata, ali njen pristup zavisi od mesta korišćenja.


Vežbe

Koristimo zadatke 97 i 98 iz priručnika za maturski ispit ......

 /*   ****  analiza zadatka se radi na času, a vi kod kuće pokušajte da uredite ove primere ****  */

Zadatak 1 - Dat je kod na C#-u kojim su kreirane tri klase u lancu nasleđivanja. 

public class Deda {
private double penzija;
protected string adresa;
public string ime;
}
public class Otac: Deda {
private double plata;
protected string struka;
}
public class Sin: Deda {
public int razred;
}

Imajući u vidu klasifikatore pristupa poljima klasa, odrediti polja koja će biti vidljiva unutar klase Sin:

 

Zadatak 2 - Dat je kod  kojim su kreirane tri klase u lancu nasleđivanja. Unutar svake klase deklarisan je po jedan private, public i protected atribut.

public class Deda {
private double penzija;
protected string adresa;
public string ime;
}
public class Otac: Deda {
private double plata;
protected string firma;
public string struka;
}
public class Sin: Otac {
private double prosek;
protected int razred;
public string skola;
}

Odrediti polja koja će biti vidljiva u kreiranom objektu s klase Sin:

 



Kako modifikatori utiču na objekte 

  • Objekat uvek sadrži sve članove klase

  • Modifikatori određuju  da li se tim članovima može pristupiti i odakle im se može pristupiti 

Drugim rečima: Modifikator pristupa ne utiče na postojanje člana u objektu, već na mogućnost njegovog korišćenja.


Uporedni pregled
Modifikator Pristup preko objekta Pristup u klasi Pristup u nasledniku
public da da da
private ne da ne
protected ne da da
internal da (isti projekat) da ne
protected internal da da da

...

Poslednja izmena: четвртак, 29. јануар 2026, 20:41