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 seteri

Kako se vrši i šta predstavlja Enkapsulacija objekta u Javi. Sakrivanje atributa objekta. Upotreba Getera i Setera u klasi.

​VIDEO 4: Vidljivost podataka u klasi

​Razlika 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:

​​

Korišćenje Metode.

Možemo koristiti:

​Korišćenje postojeće Metode

Npr:
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.

Definisanje Metode.

Metoda se sastoji od naslovne linije i tela metode u kojoj se nalaze naredbe programa koje se u toj metodi izvršavaju:Definisanje metode u JAVA programskom jeziku
Slika 1: Definisanje metode u JAVA programskom jeziku

​Primer definisanje Metode.

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

Primer: Definisanje Metode za računanje rastojanja između dve tačke.

Slika 2: Objekti i metode u JAVI. Zadatak Tačke u ravni, metoda
Slika 2: Objekti i metode u JAVI. Zadatak Tačke u ravni, metoda "rastojanje"
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.

Zaglavlje 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

Objekti i metode u JAVI. Zadatak Tačke u ravni, metoda
Slika 3: Objekti i metode u JAVI. Zadatak Tačke u ravni, metoda "ispisi", kreirana u klasi Tacka

​Ova metoda ne prima parametre i ne vraća ništa iz metode
Kad se pozove ispisaće vrednosti koordinata i završiti sa radom, a program nastaviti na onom mestu gde je pozvana

 Pozivi metoda u Javi

Objekti i metode u JAVI. Zadatak Tačke u ravni, pozivanje metode
Slika 4: Objekti i metode u JAVI. Zadatak Tačke u ravni, pozivanje metode "ispisi()", kreirana u klasi Tacka

​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
Objekti i metode u JAVI. Zadatak Tačke u ravni, pozivanje metode
Slika 5: Objekti i metode u JAVI. Zadatak Tačke u ravni, pozivanje metode "rastojanje()", koja računa rastojanje između dve tačke

​Parametri koji su poslati u pozivu se redom kopiraju u parametre u definiciji metode i na taj način se prosleđuju metodi

Konstruktori klase

Dodajmo u klasi TackaObjekti i metode u JAVI. Zadatak Tačke u ravni, konstruktori klase Tacka
Slika 6: Objekti i metode u JAVI. Zadatak Tačke u ravni, konstruktori klase 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.
Objekti i metode u JAVI. Zadatak Tačke u ravni, pozivanje konstruktori klase Tacka prilikom kreiranja objekata
Slika 7: Objekti i metode u JAVI. Zadatak Tačke u ravni, pozivanje konstruktori klase Tacka prilikom kreiranja objekata

​Pošto smo sada koordinate zadali kroz konstruktor, iskomentarisali smo zadavanje koordinata direktno jer nije više potrebno
Ostala je samo naknadna promena koordinata za tačku A

Završetak aplikacije o tačkama

Objekti i metode u JAVI. Zadatak Tačke u ravni, ispis rezultata
Slika 8: Objekti i metode u JAVI. Zadatak Tačke u ravni, ispis rezultata

​Ostaje samo još da se ispiše izračunato rastojanje d

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 objektiKlasa 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:Objekti i metode u JAVI. Zadatak
Slika 9: Objekti i metode u JAVI. Zadatak "Kvadrati", klasa "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":

Objekti i metode u JAVI. Zadatak
Slika 10: Objekti i metode u JAVI. Zadatak "Kvadrati", klasa "Kvadrati"(Glavna klasa)
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
U nastavku se učitava stranica kvadrata:
System.out.println("Unesi a");
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();

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:Objekti i metode u JAVI. Zadatak
Slika 11: Objekti i metode u JAVI. Zadatak "Kvadrati", izvršenje aplikacije

​​Prethodno
​|< Klase i objekti
Sledeće
​​Nasleđivanje klasa>|

Srodni članci

Grafika u Javi
Podaci u Javi
Euklidov algoritam
Internet stvari
Trendovi u programiranju