Pojam klase i instance
Uvod
Nakon što smo identifikovali objekte koji će se koristiti u odgovarajućoj sekvenci za rešavanje problema, sledeći korak je razumevanje osnovnih pojmova u objektno orijentisanom programiranju (OOP): klasa i instanca. Ovi pojmovi su ključni za implementaciju rešenja u kodu.
Pojam klase:
Klasa je definicija ili šablon za kreiranje objekata. To je kao nacrt ili recept. Klasa opisuje šta svaki objekat (instanca klase) može da sadrži (atributi) i šta može da radi (metode).
Klasa je, u suštini, "planski nacrt" ili "plan" za stvaranje objekata koji će delovati u skladu sa tim nacrtom.
Primer iz stvarnog života:
Zamislite da pravimo tortu. Pre nego što napravimo tortu, koristimo recept (klasu) koji nam govori koji sastojci su potrebni (osobine) i koji koraci treba da se prate (akcije). Svaka torta napravljena po receptu će imati iste osnovne karakteristike, ali može se razlikovati u detaljima (npr. ukrasima).
U OOP-u, klasa je taj "recept" ili "plan" koji koristimo da napravimo više objekata sa sličnim osobinama.
Primer klase u C#-u:
class Knjiga {
string naslov;
string autor;
void PrikaziPodatke() {
// Kod koji prikazuje informacije o knjizi
}
}Ovo je primer klase Knjiga, koja opisuje šta bi objekat tipa knjiga mogao da sadrži (atributi: naslov, autor) i šta bi mogao da radi (metoda: PrikaziPodatke).Pojam instance:
Instanca je konkretan objekat koji je stvoren na osnovu klase. Kada definišemo klasu, zapravo pravimo nacrt, ali objekat (instanca) se ne kreira sve dok ne pozovemo klasu i kreiramo instancu.
Na primer, možemo imati mnogo različitih knjiga, a svaka od tih knjiga je instanca klase Knjiga.
Primer stvaranja instance:
Knjiga mojaKnjiga = new Knjiga();
Ovde je mojaKnjiga konkretna instanca klase Knjiga. Ova instanca ima svoje atribute kao što su naslov i autor, koji mogu biti različiti od drugih instanci klase Knjiga.
Razlika između klase i instance:
- Klasa je apstraktni koncept ili nacrt koji definiše skup karakteristika i ponašanja.
- Instanca je stvarni, konkretni objekat napravljen prema tom nacrtu.
Možete imati mnogo instanci jedne klase, a svaka instanca može imati različite vrednosti atributa.
Primer iz stvarnog života:
Ako je klasa "recept za tortu", onda je svaka napravljena torta instanca tog recepta. Sve torte su pravljene po istom receptu, ali su različite. Svaka torta (instanca) može imati različite ukrase ili veličinu, ali osnove su iste.
Atributi i metode:
Svaka klasa može imati atribute (takođe zvane polja) koji predstavljaju karakteristike objekta i metode koje predstavljaju ponašanje objekta.
Primer:
class Knjiga {
string naslov = "Na Drini ćuprija";
string autor = "Ivo Andrić";
void PrikaziPodatke() {
Console.WriteLine("Naslov: " + naslov);
Console.WriteLine("Autor: " + autor);
}
}Instanca klase:Knjiga mojaKnjiga = new Knjiga(); mojaKnjiga.PrikaziPodatke();
U ovom primeru, klasa Knjiga definiše atribute naslov i autor, dok instanca mojaKnjiga koristi te atribute i metode definisane u klasi.
Veza između klase, instance i objekta:
Često pravimo klase za razne objekte, kao što su korisnici, proizvodi,
ili narudžbine. Kada kreiramo instancu klase, to znači da pravimo pravi,
konkretni objekat koji možemo koristiti u aplikaciji.
- Objekat je konkretna instanca klase.
- Klasa je skup uputstava za kreiranje objekata.
- Kada koristimo klasu da kreiramo objekat, tada dobijamo instancu te klase ( objekat date klase ).
Još jedan primer klase i instance (ovaj put u web aplikaciji) :
-
Klasa korisnika: Definiše šta je korisnik, koje osobine korisnik ima (ime, email) i koje radnje može da izvrši (prijava, odjava).
- Instanca korisnika: Kada se novi korisnik registruje na sajt, mi pravimo instancu te klase. Na primer, korisnik "Ana" sa emailom "ana@gmail.com" je konkretna instanca klase "Korisnik".
Zapamtite:
Klasa je šablon ili plan koji koristimo za definisanje objekata, dok je instanca konkretan objekat napravljen na osnovu klase.
Dodatni zadaci:
- Definisati klasu Auto koja sadrži atribute marka, model i godinaProizvodnje.
- Kreirati dve instance klase Auto sa različitim vrednostima atributa.
- Napisati metodu koja prikazuje podatke o automobilu i pozvati je za svaku instancu.