OBJEKTNO ORIJENTISANO PROGRAMIRANJE - KLASE I OBJEKTI
Sledeće
Nasleđivanje klasa>| |
Jedna od ideja koja leži u osnovi objektno orijentisanog softvera je da se softver organizuje na način koji odgovara načinu razmišljanja objektno orijentisanog mozga. Umesto mašinskih instrukcija koje menjaju bitove u glavnoj memoriji, mi želimo "stvari" koje nešto "rade". Naravno da se na mašinskom nivou ništa nije promenilo, obrasci bitova se i dalje menjaju preko mašinskih instrukcija. Promena je u tome što mi ne moramo da razmišljamo na taj način.
Pitanje: Navedite nekoliko objekata.
Olovka, tastatura, cipele, sto
Pitanje: Šta je to što karakteriše neki objekat.
Pitanje: Navedite nekoliko objekata.
Olovka, tastatura, cipele, sto
Pitanje: Šta je to što karakteriše neki objekat.
- Objekat je napravljen od opipljivog materijala
- Objekat se ponaša kao celina, sastavljena od delova
- Objekat ima osobine
- Objekat može da čini neke stvari i na njemu mogu da se čine neke radnje.
- ima identitet (ponaša se kao celina)
- ima stanje (ima osobine koje se mogu menjati)
- ima ponašanje (može da čini neke stvari i nad njim se mogu vršiti neke radnje)
PRIMERE IZ OVE OBLASTI MOŽETE NAĆI NA SLEDEĆOJ WEB STRANI: Klase i objekti - primeri
Video lekcije
VIDEO 1: Klase i objekti u JAVIKlase i objekti, Java, programiranje, Objektno orijentisano programiranje, Tacke u ravni, Konstruktori, Metode objekta,
|
VIDEO 2: Objekti i Metode u JaviMetode kao sastavni deo objekta. Metode koje vraćaju i ne vraćaju vrednost. Definicija i pozivanje metoda. Pozivi metoda iz uvezenih klasa.
|
VIDEO 3: Statičke promenljive i metodeStatičke promenljive. Promenljive kao osobine klase. Statične metode. Razlika između promenljivih kao osobina objekta i statičnih promenljivih. Primer sa kvadratima i trouglovim
|
VIDEO 4: Enkapsulacija objekta. geteri i seteriKako se vrši i šta predstavlja Enkapsulacija objekta u Javi. Sakrivanje atributa objekta. Upotreba Getera i Setera u klasi.
|
VIDEO 5: Vidljivost podataka u klasi
Razlika između lokalnih podataka, definisanih u metodi i polja za klasu.
|
|
Složeni podaci-objekti
Za rezervisanje memorije objekta koristimo sledeći obrazac:
tip_podatka naziv_podatka=new konstruktor(parametri_konstruktora);
Za tip podatka se koristi naziv Klase kojoj pripada objekat. Npr. ako objekat pripada klasi Scanner onda bi definicija tog objekta koji ćemo nazvati ucitavac biti:
Scanner ucitavac=new Scanner(System.in);
Definisanje složenog podatka.
softverski objekti imitiraju objekte iz prirode, tako da i jedni i drugi imaju:
- Osobine
- Ponašanje
- Stanje
Klasa-kao opis objekta
Klasa objekta je zapravo opis svih objekata koji joj pripadaju, a to su objekti koji imaju iste:
- Osobine
- Ponašanje-opisano metodama
Definisanjem objekta mi smo ga kreirali po opisu (Klasi) i on će imati osobine i metode tamo navedene :
Metode klase Scanner
U klasi Scanner postoje navedene neke metode npr:
Softverski objekti imaju stanje. Deo memorije koju zauzima softverski objekat se koristi za promenljive koje sadrže vrednosti.
Softverski objekti imaju ponašanje. Deo memorije koju oni zauzimaju se troši za skladištenje metoda (programa) koji objektu omogućavaju da "nešto radi". Objekat nešto radi, kada se izvršava neki od njegovih metoda
- nextInt()-ova metoda preuzima sa standardnog ulaza podatak koji je korisnik otkucao na tastaturi, konvertuje ga u ceo broj.
- nextDouble()-ova metoda preuzima sa standardnog ulaza podatak koji je korisnik otkucao na tastaturi, konvertuje ga u realan broj.
- identitet (ponaša se kao celina)
- stanje (ima osobine koje se mogu menjati)
- ponašanje (može da čini neke stvari i nad njim se mogu vršiti neke radnje)
Softverski objekti imaju stanje. Deo memorije koju zauzima softverski objekat se koristi za promenljive koje sadrže vrednosti.
Softverski objekti imaju ponašanje. Deo memorije koju oni zauzimaju se troši za skladištenje metoda (programa) koji objektu omogućavaju da "nešto radi". Objekat nešto radi, kada se izvršava neki od njegovih metoda
Ako pretpostavimo da za objekat uzmemo početni dijalog prozor iz prikazane aplikacije
Na sledećoj slici je prikazana slika tog objekta u memoriji
Sa prikazane slike tog objekta u memoriji zaključujemo:
- Cigle na slici predstavljaju bajtove u memoriji, koju objekat zauzima.
- Ovaj objekat ima neke promenljive, sirinaDijaloga, visinaDijaloga i textUNaslovu, kao i neke metode koji kontrolišu njegovo ponašanje
- Softverski objekat se sastoji od promenljivih i metoda
Klasa objekta
- Klasa je skup objekata koji imaju zajedničku strukturu i ponašanje.
- Jedan objekat predstavlja primerak neke klase
- Skup zajedničkih osobina objekta i metoda koja predstavljaju ponašanje tih objekta su opisane u njihovoj klasi
Klase i objekti na primeru tačaka u ravni:
tekst zadatka: Kreirati 3 objekta koji predstavljaju tri tačke u ravni A,B,C. Premestiti tačku A u novi položaj A1.
§Prikazati koordinate tačaka posle premeštanja. Podaci tačaka su dati na slici.
§Prikazati koordinate tačaka posle premeštanja. Podaci tačaka su dati na slici.
Uočimo da sva tri objekta pripadaju istoj klasi jer imaju iste osobine x i y.To će biti 3 različite istance(objekata) iste klase
Stanje tačke A će se u toku programa promeniti, ali ne i osobine.
Da bi kreirali objekte prvo moramo da kreiramo klasu koja će da ih opisuje. Klasu ćemo nazvati Tacka. U njoj ćemo navesti zajedničke atribute x i y koje će imati sva 3 objekta.
Stanje tačke A će se u toku programa promeniti, ali ne i osobine.
Da bi kreirali objekte prvo moramo da kreiramo klasu koja će da ih opisuje. Klasu ćemo nazvati Tacka. U njoj ćemo navesti zajedničke atribute x i y koje će imati sva 3 objekta.
Klasa Tacka
Objekti i Metode
Metoda je skup naredbi, deo programa koji sam za sebe predstavlja zasebnu celinu i vrši određen zadatak, najčešće elementarni.
Razlikujemo:
Razlikujemo:
- Definisanje metode
- Korišćenje metode
Korišćenje Metode.
Možemo koristiti:
- metodu koja je već definisana u nekoj postojećoj klasi
- metodu koju sami kreiramo(definišemo)
Korišćenje postojeće Metode
Npr:
System.out.println("A("+A.x+","+A.y+")");
System.out.println("A("+A.x+","+A.y+")");
Ovde se poziva metoda println za objekat out, koji predstavlja prostor gde će tekst biti ispisan. To je standardni izlaz.
Posle naziva metode uvek stoje zagrade”( )”
One služe da metodi po potrebi pošaljemo jedan ili više podataka, parametra metode.
U ovom primeru, metodi se šalje jedan parametar koji predstavlja tekst koji će biti ispisan.
Ovaj tekst je dobijen nadovezivanjem više manjih tekstova unutar kojih se umeću vrednosti promenljivih.
Posle naziva metode uvek stoje zagrade”( )”
One služe da metodi po potrebi pošaljemo jedan ili više podataka, parametra metode.
U ovom primeru, metodi se šalje jedan parametar koji predstavlja tekst koji će biti ispisan.
Ovaj tekst je dobijen nadovezivanjem više manjih tekstova unutar kojih se umeću vrednosti promenljivih.
Definisanje Metode.
Metoda se sastoji od naslovne linije i tela metode u kojoj se nalaze naredbe programa koje se u toj metodi izvršavaju:
Primer definisanje Metode.
- Napravimo u prethodnom primeru metodu koja računa rastojanje između tačaka
- Formula po kojoj se izračunava rastojanje između tačaka 1 i 2, a čije su koordinate x1,y1 i x2,y2
- d=Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y1-y2,2))
Ovde su korišćene dve metode iz klase Math:
sqrt-koja računa kvadratni koren gde se potkorena veličina šalje kao parametar
pow- metoda koja izračunava stepen, čija se osnova i izložilac šalju kao parametri
sqrt-koja računa kvadratni koren gde se potkorena veličina šalje kao parametar
pow- metoda koja izračunava stepen, čija se osnova i izložilac šalju kao parametri
- Naredbe koje čine neku metodu se pišu u telu metode, između zagrada”{ }”
- postoji i zaglavlje metode
Primer: Definisanje Metode za računanje rastojanja između dve tačke.
Vidimo da je metoda dodata u glavnu klasu jer se ne odnosi na bilo koju tačku pojedinačno već na skup tačaka
Ova metoda izračuna rastojanje i onda izračunatu vrednos šalje pomoću naredbe return.
Ova metoda izračuna rastojanje i onda izračunatu vrednos šalje pomoću naredbe return.
Zaglavlje metode.
- public- modifikator privatnosti. Kad je public onda se metoda može pozvati iz druge klase
- double na drugom mestu. Ovo je tip povratne vrednosti. Vrednost koja se vraća iz metode je double rastojanje je naziv metode
Metode koje ne vraćaju vrednost.
Reč void na drugom mestu. Ovo je tip povratne vrednosti. Ako na ovom mestu stoji void tada metoda ne vraća ništa i nema naredbu return
Metode koja ispisuje podatke
Pozivi metoda u Javi
Konstruktori klase
- To su specijalne metode koje se pozivaju u trenutku kreiranja objekta Nemaju povratnu vrednost i kod njih se ne piše reč void na drugom mestu u zaglavlju Služe da daju početne vrednosti osobinama objekta.
- Mogu da budu bez i sa parametrima
- Nazivaju se isto kao i klasa u kojoj se nalaze
Dodajmo u klasi Tacka
Konstruktori sa parametrima
Koriste se kad unapred znamo podatke o objektu. Pošto ovde znamo unapred koordinate tačaka zamenićemo pozive praznih, sa pozivima konstruktora sa parametrima.
Završetak aplikacije o tačkama
Sledeće
Nasleđivanje klasa >| |