METODE I OBJEKTI U JAVA PROGRAMSKOM JEZIKU
PRIMERE IZ OVE OBLASTI MOŽETE NAĆI NA SLEDEĆOJ WEB STRANI: Klase i objekti - primeri
Video lekcije
VIDEO 1: Objekti i Metode u Javi |
VIDEO 2: Statičke promenljive i metode |
Metode kao sastavni deo objekta. Metode koje vraćaju i ne vraćaju vrednost. Definicija i pozivanje metoda. Pozivi metoda iz uvezenih klasa.
|
Statič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 3: 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 4: Vidljivost podataka u klasiRazlika između lokalnih podataka, definisanih u metodi i polja za klasu.
|
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
Ovde vidimo da je metoda rastojanje podvucena crveno(greška). To je zato što metoda treba da pripada objektu i da se pozove preko objekta glavne klase, a taj objekat nije kreiran Postoji samo klasa i metoda se onda mora vezati za samu klasu. To se postiže dodavanjem reči static |
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
Primer 2: Kvadrati
Tekst zadatka: Kreirati dva objekta koji predstavljaju kvadrate, uneti im stranice, a zatim izračunati njihove površine i rezultat ispisati na ekranu. Za opis kvadrata kreirati klasu po imenu kvadrat i u njoj napraviti metodu za računanje površine i ispisivanje rezultata.
Rešenje:
Kreirajmo nov projekat pod nazivom "Kvadrati" i posle prolaska kroz prozore za kreiranje novog projekta biće kreiran projekat pod nazivom "Kvadrati", koji će u sebi imati paket "kvadrati" i u paketu fajl Kvadrati.java. Unutar ovog fajla treba kreirati glavnu klasu.
Da bi mogli da kreiramo objekte, potrebno je u projekat dodati i novu klasu pod imenom "Kvadrat", u koju ćemo staviti sve atribute za kvadrat, kao i potrebne metode.
Postupak kreiranja novog projekta, detaljno je objašnjen u prethodnoj lekciji, kroz zadatak "GeometrijskiOblici": Klase i objekti
Kreirajmo nov projekat pod nazivom "Kvadrati" i posle prolaska kroz prozore za kreiranje novog projekta biće kreiran projekat pod nazivom "Kvadrati", koji će u sebi imati paket "kvadrati" i u paketu fajl Kvadrati.java. Unutar ovog fajla treba kreirati glavnu klasu.
Da bi mogli da kreiramo objekte, potrebno je u projekat dodati i novu klasu pod imenom "Kvadrat", u koju ćemo staviti sve atribute za kvadrat, kao i potrebne metode.
Postupak kreiranja novog projekta, detaljno je objašnjen u prethodnoj lekciji, kroz zadatak "GeometrijskiOblici": Klase i objekti
Klasa Kvadrat će u sebi imati potrebne atribute, stranicu a i površinu P, konstruktore sa i bez parametara, kao i metode za računanje površine i metodu za ispis podataka na ekranu. U nastavku je prikazana klasa koja opisuje kvadrat:
U klasi su prvo definisani atributi ili "polja klase", a i P, koji predstavljaju stranicu, odnosno površinu bilo kog kvadrata.
Zatim su kreirana dva konstruktora, prazan i drugi, koji prima stranicu kvadrata kao parametar. Treba napomenuti, da u jednoj klasi može biti više konstruktora i svi oni imaju isti naziv kao i klasa, dakle, u ovom slučaju "Kvadrat", ali se moraju međusobno razlikovati ili po tipu, ili po broju parametara.
Dalje, u klasi su definisane dve metode koje ne vraćaju nikakvu vrednost(tip povratne vrednosti void), prva koja izračunava površinu, a druga koja ispisuje rezultat. Kao što se može primetiti, obe metode pristupaju polju za klasu "P" i to govori da se polja za klasu ne moraju metodi, slati preko parametara, već su metodi direktno dostupni. Polja za klasu su inače, sastavni deo memorije samog objekta.
Ovako kreirana klasa će se upotrebiti u glavnoj klasi, po imenu "Kvadrati", prilikom kreiranja objekata, koji predstavljaju kvadrate, što se može videti na slici, prikazanoj u nastavku: Dakle, klasa "Kvadrati":
Zatim su kreirana dva konstruktora, prazan i drugi, koji prima stranicu kvadrata kao parametar. Treba napomenuti, da u jednoj klasi može biti više konstruktora i svi oni imaju isti naziv kao i klasa, dakle, u ovom slučaju "Kvadrat", ali se moraju međusobno razlikovati ili po tipu, ili po broju parametara.
Dalje, u klasi su definisane dve metode koje ne vraćaju nikakvu vrednost(tip povratne vrednosti void), prva koja izračunava površinu, a druga koja ispisuje rezultat. Kao što se može primetiti, obe metode pristupaju polju za klasu "P" i to govori da se polja za klasu ne moraju metodi, slati preko parametara, već su metodi direktno dostupni. Polja za klasu su inače, sastavni deo memorije samog objekta.
Ovako kreirana klasa će se upotrebiti u glavnoj klasi, po imenu "Kvadrati", prilikom kreiranja objekata, koji predstavljaju kvadrate, što se može videti na slici, prikazanoj u nastavku: Dakle, klasa "Kvadrati":
U main metodi glavne klase, u prva dva rada su kreirana dva objekta, prvog kvadrata i objekta za učitavanje klase Scanner:
Kvadrat k1 = new Kvadrat(); //Kreira se objekat koji predstavlja prvi kvadrat
Scanner ucitavac=new Scanner(System.in);//Kreira se objekat za ucitavanje podataka
Scanner ucitavac=new Scanner(System.in);//Kreira se objekat za ucitavanje podataka
U nastavku se učitava stranica kvadrata:
System.out.println("Unesi a");
k1.a = ucitavac.nextDouble(); //Ucitava stranicu prvog kvadrata
k1.a = ucitavac.nextDouble(); //Ucitava stranicu prvog kvadrata
Zatim se pozivaju medode za računanje površine, kao i za ispis rezultata za prvi kvadrat.
k1.povrsina();
k1.ispisi();
k1.ispisi();
Za drugi objekat k2, postupak se samo ponavlja na sličan način.
Posle pokretanja aplikacije i zahteva za unos, u primeru je uneto za prvi kvadrat a=23, a za drugi kvadrat a=45. Dobijeni su sledeći rezultati, koji su prikazani na sledećoj slici:
Sledeće
Nasleđivanje klasa >| |