Članovi klase (podatak - član, objekat - član, funkcija članica)
Uvod
Nakon što smo naučili razliku između klase i instance, sada ćemo detaljnije razmotriti komponente klase, koje se nazivaju članovi klase. Članovi klase uključuju podatke - članove (atribute), funkcije članice (metode) i objekte - članove. Razumevanje ovih elemenata je ključno za pravilno oblikovanje klasa i stvaranje instanci koje mogu vršiti određene zadatke.
Šta su članovi klase?
Članovi klase su sastavni delovi svake klase. Oni mogu biti različitih tipova i omogućavaju nam da opišemo kako objekat izgleda i kako se ponaša. Članovi klase uključuju:
- Podatke - članove (svojstva ili atribute),
- Objekte - članove (drugih klasa),
- Funkcije članice (metode ili akcije).
Svaka klasa može imati različite članove koji definišu njen identitet i ponašanje.
1. Podatak - član (atribut):
Podatak - član (ili atribut) predstavlja karakteristike objekta. To su promenljive koje svaka instanca klase može imati i čije vrednosti mogu varirati od objekta do objekta. Oni predstavljaju osobine objekta.
Primer 1:
class Auto {
public string marka;
public string model;
public int godinaProizvodnje;
}U ovom primeru, klasa Auto sadrži tri podatka - člana: marka, model, i godinaProizvodnje. Svaka instanca klase Auto može imati različite vrednosti za ove atribute.
Primer 2:
Ako kreiramo klasu Proizvod za web aplikaciju prodavnice, podaci-članovi bi mogli biti:
- Ime proizvoda (na primer, "Laptop"),
- Cena (na primer, "1000"),
- Opis (na primer, "Laptop sa 16GB RAM-a").
Ovi podaci-članovi sadrže informacije o svakom pojedinačnom proizvodu.
2. Funkcija članica (metoda):
Funkcija članica (ili metoda) predstavlja ponašanje objekta. To su funkcije koje se mogu pozivati nad instancom klase i omogućavaju objektu da izvršava određene akcije ili obrađuje podatke.
Drugim rečima, Funkcije članice (ili metode) definišu akcije koje objekat može da izvrši. To su funkcije koje možemo pozivati na instancama klase, kako bismo dobili neku radnju.
Primer 1:
Primer metode koja prikazuje informacije o automobilu:
class Auto {
public string marka;
public string model;
public int godinaProizvodnje;
public void PrikaziPodatke() {
Console.WriteLine("Marka: " + marka);
Console.WriteLine("Model: " + model);
Console.WriteLine("Godina proizvodnje: " + godinaProizvodnje);
}
}Metoda PrikaziPodatke je funkcija članica koja ispisuje atribute objekta.
Primer 2:
U klasi Korisnik, funkcije članice bi mogle biti:
- Prijava() – metoda kojom se korisnik prijavljuje na sajt,
- Odjava() – metoda kojom se korisnik odjavljuje sa sajta.
Funkcije članice omogućavaju objektu da izvršava radnje, kao što je prijavljivanje, dodavanje proizvoda u korpu, ili obavljanje kupovine.
3. Objekat - član:
Pored podataka i funkcija, klasa može sadržavati i druge objekte kao članove. Ovi objekti su instance drugih klasa, a njihovo korišćenje omogućava modeliranje složenijih struktura podataka.
Primer 1:
class Motor {
public int snaga;
}
class Auto {
public string marka;
public string model;
public Motor motor; // Objekat - član
}Ovde, klasa Auto ima član motor, koji je objekat klase Motor. To nam omogućava da u okviru jednog objekta automobila imamo i detalje o motoru, koristeći strukturu definisanu drugom klasom.
Primer 2:
Zamislite klasu Narudžbina koja sadrži objekat-član iz klase Korisnik. To znači da svaka narudžbina sadrži podatke o korisniku koji je napravio narudžbinu.
- Klasa Narudžbina može imati objekat-člana Korisnik, gde svaka narudžbina zna ko ju je napravio.
Time se omogućava da narudžbina sadrži sve relevantne informacije o korisniku kroz objekat-člana.
Pristup članovima klase:
Da bismo pristupili podacima - članovima ili pozvali funkcije članice, koristimo sintaksu tačke (.). Nakon kreiranja instance klase, članovima pristupamo na sledeći način:
Auto mojAuto = new Auto(); mojAuto.marka = "Toyota"; mojAuto.model = "Corolla"; mojAuto.godinaProizvodnje = 2020; mojAuto.PrikaziPodatke();
U ovom primeru, pristupamo atributima marka, model i godinaProizvodnje, dodeljujemo im vrednosti, a zatim pozivamo funkciju članicu PrikaziPodatke.
Enkapsulacija:
Enkapsulacija je važan princip u OOP-u, koji omogućava kontrolu pristupa članovima klase. Korišćenjem modifikatora pristupa (npr. public, private), možete odrediti koji članovi klase su dostupni spolja, a koji su skriveni.
Primer enkapsulacije:
class Auto {
private string marka;
private string model;
public void PostaviMarku(string m) {
marka = m;
}
public void PrikaziPodatke() {
Console.WriteLine("Marka: " + marka);
}
}Ovde su atributi marka i model privatni i mogu se menjati samo putem metode PostaviMarku, dok se podaci prikazuju pomoću metode PrikaziPodatke.
Zadaci 1:
- Kreirati klasu Racun sa podacima - članovima brojRacuna, stanje i funkcijom članicom PrikaziStanje.
- Kreirati klasu Banka koja ima objekat - član racun.
- Napisati program koji kreira objekat klase Banka, postavlja stanje na računu i prikazuje informacije o računu.
Zadaci 2:
- Osmisliti klasu za Korisnika web aplikacije. Definisati podatke-članove (npr. ime, email) i funkcije članice (npr. prijava, odjava).
- Pokušajtt dodati objekat-člana iz klase Narudžbina. Kako bi korisnik mogao da ima listu narudžbina?
- Napisati kako bi funkcije članice funkcionisale u praksi (npr. šta bi se desilo kada korisnik pokuša da se prijavi ili odjavi?).
Zaključak:
Članovi klase su ključni za definisanje kako objekti funkcionišu u objektno orijentisanom programiranju. Podaci-članovi predstavljaju osobine objekta, objekti-članovi omogućavaju korišćenje drugih klasa unutar klase, dok funkcije članice omogućavaju izvršavanje akcija nad objektima.