220 likes | 462 Views
Programiranje I. zima 2009/10. Klase i objekti. Metod: programska jedinica koja sadrži promenljive i naredbe za obavljanje jednog specifičnog zadatka
E N D
Programiranje I zima 2009/10
Klase i objekti • Metod: programska jedinica koja sadrži promenljive i naredbe za obavljanje jednog specifičnog zadatka • Objekat: programska jedinica koja sadrži promenljive i metode za predstavljanje apstraktnih ili konkretnih entiteta iz realnosti koja nas okružuje Programiranje I
Šta je objekat? Objekat je nešto što ima jedinstven identitet Sve je objekat: student, sto, stolica, taster, krug, kredit, ispit, ... Identitet objekta: Obeležja (atributi) objekta Mogućnosti (ponašanje) objekta Programiranje I
Šta je objekat? Obeležja (promenljive) Auto bela boja ugasi 4 vrata upali Mogućnosti (metodi) koči max brzina 200 km/s promeni brzinu Programiranje I
Šta je objekat? Programiranje I
Šta je klasa? Klasa objekata Klasa je opis objekata sa zajedničkim identitetom Klasa definiše obeležja i mogućnosti koje poseduju svi objekti klase Klasa definiše ,,mustru’’ kako izgledaju njeni pojedini objekti Programiranje I
Šta je klasa? Analogija tehnički nacrt zgrade = klasa izgrađena zgrada = objekat na osnovu jednog nacrta zgrade može se izgraditi više zgrada = na osnovu jedne klase može se konstruisati više objekata Programiranje I
Šta je klasa? Primer: class Zgrada { int brojSpratova; String boja; String adresa; . . . void okreči(...) { ... } void dozidaj(...) { ... } . . . } Programiranje I
Šta je klasa? Tri objekta klase Zgrada: Programiranje I
Šta je klasa? Primer: class ČlanPorodice { static String prezime; String ime; int uzrast; . . . } Programiranje I
Šta je klasa? U OOP se pišu klase, a objekti se ne pišu nego se konstruišu na osnovu klasa Format: modifikatori class ime-klase { //telo klase ... } Modifikatori nisu obavezni (public) Programiranje I
Šta je klasa? Terminologija instanca (primerak) klase = objekat te klase instanciranje klase = konstruisanje objekta te klase Java programi se sastoje isključivo od klasa, pa se sve mora nalaziti unutar klasa Programiranje I
Promenljive klasnog tipa Definicijom klase uvodi se novi tip podataka Vrednosti klasnog tipa su objekti odgovarajuće klase Ime klase može se koristiti za tip promenljive u naredbi deklaracije (kao i za tip parametra i tip rezultata nekog metoda) Programiranje I
Promenljive klasnog tipa Primer: publicclass Student { public String ime; publicdouble test1, test2, test3; publicdouble prosek() { return (test1 + test2 + test3)/3; } } Programiranje I
Promenljive klasnog tipa Nastavak primera: Student s; // promenljiva klasnog tipa Student . . . s = new Student(); // konstruisanje i dodela // objekta klase Student // promenljivoj s // Skraćeni oblik: // Student s = new Student(); Programiranje I
Promenljive klasnog tipa Promenljiva klasnog tipa ne sadrži sam objekat koji joj je dodeljen, nego referencu (pokazivač) na njega s Programiranje I
Promenljive klasnog tipa Korišćenje objekta: notacija sa tačkom Nastavak primera: s.ime = “Pera Perić”; s.test1 = 95; s.test2 = 55; s.test3 = 100; System.out.println(s.prosek()); Programiranje I
Promenljive klasnog tipa Nastavak primera: Programiranje I
Konstruisanje objekata Format: new ime-klase(lista-argumenata) Konstruktor: metod za inicijalizaciju konstruisanog objekta Ime konstruktora mora biti isto kao ime klase Konstruktor nema tip rezultata, čak ni void Programiranje I
Konstruisanje objekata Primer: publicclass KockaZaIgru { publicint broj; // broj koji je pao public KockaZaIgru() { // konstruktor bez parametara baci(); // poziv metoda baci() } public KockaZaIgru(int n) { // konstruktor sa parametrom broj = n; } publicvoid baci() { // ,,bacanje‘’ kocke broj = (int)(Math.random()*6) + 1; } } Programiranje I
Uklanjanje objekata Šta uraditi sa objektom koji nije više potreban u programu? Ručno uklanjanje nepotrebnih objekata je podložno greškama Nenamerno brisanje objekata (“viseći pokazivači”) Zaboravljeno brisanje objekata (“curenje memorije”) Automatsko uklanjanje objekata u Javi Programiranje I
Klase i objekti Primer: broj bacanja dve kocke dok se ne pokažu isti brojevi na obe kocke Programiranje I