Professional Documents
Culture Documents
OOP - Metode U Javi (Compatibility Mode)
OOP - Metode U Javi (Compatibility Mode)
programiranje:
Metode u Javi
AUTOMOBIL
Metode
Svaka klasa moe imati odreena ponaanja koja se
mogu izraziti u obliku metode
definicija
definicij
a metoda u Javi vri se u okviru tela klase:
marka
model
godinaProizvodnje
registracija
upali()
ugasi()
kreni()
stani()
Metode
Pored toga to neto radi, metoda moe i
da vraa neku vrednost kao rezultat
izraunavanja (povratna vrednost metode)
Neke metode nemaju povratnu vrednost
Kada metoda ne vraa nikakvu povratnu
vrednost tip_povratne_vrednosti je
void,, a kada vraa
void
tip_povratne_vrednosti moe biti bilo
koji prost ili sloen tip podatka (int,
(int,
double, char, boolean, String,
String, ...)
Metoda moe da ima samo jednu povratnu
vrednost
Zadatak
primer kada metoda ne vraa vrednosti
Kreirajte::
Kreirajte
Metodu ukljuci koja ukljuuje televizor (postavlja vrednost atributa
ukljuen na TRUE)
Metodu iskljuci koja iskljuuje televizor (postavlja vrednost atributa
ukljuen na FALSE)
Class Televizor {
int jacinaTona = 0;
int trenutniProgram = 1;
boolean ukljucen = false;
void ukljuci () {
ukljucen = true;
}
void iskljuci () {
iskljuci = false;
}
}
void pojacajTon () {
jacinaTona = jacinaTona + 1;
}
void smanjiTon
smanjiTon () {
jacinaTona = jacinaTona - 1;
}
void iskljuciTon () {
jacinaTona = 0;
}
}
Zadatak
primer kada metoda vraa vrednosti
Dodati u klasu Televizor sledee metode:
Class Televizor {
int jacinaTona = 0;
int trenutniProgram = 1;
boolean ukljucen = false;
void promeniProgramNavise () {
trenutniProgram =
trenutniProgram + 1;
}
void ukljuci () {
ukljucen = true;
}
void promeniProgramNanize () {
trenutniProgram =
trenutniProgram - 1;
}
void iskljuci () {
iskljuci = false;
}
int vratiProgram () {
return trenutniProgram;
}
void pojacajTon () {
jacinaTona = jacinaTona + 1;
}
int vratiJacinuTona () {
return jacinaTona;
}
void pojacajTon () {
jacinaTona = jacinaTona - 1;
}
boolean daLiJeUkljucen () {
return ukljucen;
}
void iskljuciTon () {
jacinaTona = 0;
}
Void ispisiParametre () {
System.out.println (Jacina
tona je: +jacinaTona);
System.out.println (Trenutni
program je: +
trenutniProgram);
System.out.println (Televizor
je ukljucen: + ukljucen);
}
}
Pozivanje metode
Da bi metode mogle da se pozivaju, potrebno je
napraviti objekat, pa tek onda pozivati neku metodu
preko naziva objekta i naziva metode.
Nakon ispisivanja naziva metode koja se poziva moraju
se obavezno pisati zagrade ak i ako nema parametara
koji se predaju metodi
nazivobjekta.nazivMetode ()
Ako metoda ima povratnu vrednost prvo je potrebno
deklarisati promenljivu koja e primiti povratnu vrednost
metode, pa tek onda pozivati metodu. Tip promenljive
mora biti isti kao i tip povratne vrednosti metode
tip_promenljive naziv_promenljive
naziv_promenljive = nazivobjekta.nazivMetode ()
Promenljive
Promenljive predstavljaju neki identifikator (ime, slovo, izraz i sl)
koji je povezan sa nekom vrednou, pri emu se ta vrednost moe
menjati
Tip promenljive odredie vrednost koja se moe uneti u promenljivu
U zavisnosti od toga gde se deklariu
deklariu u kodu i kako se mo
mogu
gu
pozvati, postoje sledee vrste promenljivih:
Lokalne promenljive (ili samo promenljive) deklariu se u okvitu tela
metode
Atributi promenljive koje direktno pripadaju objektima neke klase;
definiu se u okviru tela te klase
Globalne promenljive promenljive koje ne pripadaju pojedinanim
objektima neke klase ve se koriste na nivou celog programa; deklariu
se na slian nain kao i atributi
Parametri sutinski parametri metoda predstavljaju promenljive;
deklariu se u zaglavlju metoda
Zadatak
pozivanje metoda
Iskoristiti klasu Televizor iz prethodnog primera.
Napraviti klasu TestTelevizor koji kreira jedan objekat
klase Televizor i poziva neke od njegovih metoda.
Najpre pozvati metodu ispisiParametre i uoi poetno
stanje objekta. Nakon toga pozivaj redom sledee
metode: ukljuci, pojacajTon,
promeniProgramNavise, daLiJeUkljucen i
vratiTrenutniProgram.
Posle svakog poziva metode, pozvati metodu
ispisiParametre i uoi promene u vrednosti atributa
Class Televizor {
int jacinaTona = 0;
int trenutniProgram = 1;
boolean ukljucen = false;
void ukljuci() {
ukljucen = true;
}
void iskljuci() {
iskljuci = false;
}
void pojacajTon() {
jacinaTona = jacinaTona + 1;
}
Void ispisiParametre() {
System.out.println (Jacina tona je:
+jacinaTona);
System.out.println (Trenutni
program je: + trenutniProgram);
System.out.println (Televizor je
ukljucen: + ukljucen);
}
Class TestTelevizor {
public static void main (String [ ]
args) {
Televizor t1 = new Televizor();
boolean uklj;
int prog;
void pojacajTon() {
jacinaTona = jacinaTona - 1;
}
t1.ispisiParametre();
t1.ukljuci();
t1.ispisiParametre();
void iskljuciTon() {
jacinaTona = 0;
}
t1.pojacanTon();
t1.ispisiParametre();
void promeniProgramNavise() {
trenutniProgram = trenutniProgram + 1;
}
void promeniProgramNanize() {
trenutniProgram = trenutniProgram - 1;
}
t1.promeniProgramNavise();
t1.ispisiParametre();
uklj = t1.daLiJeUkljucen();
System.out.println (Televizor je
ukljucen: + uklj);
int vratiProgram() {
return trenutniProgram;
}
prog = t1.vratiTrenutniProgram();
System.out.println (Na televiziji
ide program: + prog);
int vratiJacinuTona() {
return jacinaTona;
}
boolean daLiJeUkljucen() {
return ukljucen;
}
}
}
}
Zadatak
primer metoda sa parametrima
Class AutomatNovca {
double stanje = 5200.0;
void podigniIznos(double
podigniIznos(double iznos) {
stanje = stanje - iznos;
}
void uloziIznos(double
uloziIznos(double iznos) {
stanje = stanje + iznos;
}
double vratiStanje() {
return stanje;
}
void ispisiStanje() {
System.out.println (Trenutni iznos u automatu je: +stanje);
}
Class ProveraAutomataNovca {
public static void main (String [ ] args) {
AutomatNovca a1 = new AutomatNovca();
AutomatNovca a2 = new AutomatNovca();
a1. ispisiStanje();
a1. uloziIznos(1002.03);
a1. ispisiStanje();
a2. ispisiStanje();
a2. podigniIznos(234.55);
a2. ispisiStanje();
}
}
}
Primer vidljivost
vidljivostii promenljivih i naina prenosa parametara metode
Neka klasa Kalkulator ima dve metode saberi i obimKruga
obimKruga.. Prva
metoda dobija dva cela broja kao parametre i vraa rezultat sabiranja, dok
druga prima poluprenik kruga kao parametar i vraa obim kruga kao
rezultat. Klasa ima i atribut pi koji predstavlja vrednost odgovarajue
matematike konstante.
Class Kalkulator {
double pi = 3.14;
int saberi(
saberi(int
int a, int b) {
int rezultat
rezultat = a + b;
return rezultat;
}
double obimKruga(
obimKruga(double
double poluprecnik) {
double rezultat
rezultat = 2 * poluprecnik * pi;
return rezultat;
}
}
Preklapanje metoda
System.out.println (r1);
int r2;
r2 = k.saberi(12, 15);
System.out.println (r2);
}
}
}
Primer
Napraviti klasu Kalkulator i u njoj definisati dve globalne metode: saberi i oduzmi. Obe metode
primaju dva cela broja kao parametre, a vraaju rezultat operacije sabiranja odnosno oduzimanja.
Napravi klasu testKalkulator koja poziva ove dve metode.
Class Kalkulator {
static int saberi(
saberi(int
int x, int y) {
int rezultat
rezultat = x + y;
return rezultat;
}
static int oduzmi (int
(int x, int y) {
int rezultat
rezultat = x - y;
return rezultat;
}
}
Class TestKalkulator {
public static void main (String [ ] args) {
int x = 10;
int y = 5;
int r1;
r1 = Kalkulator.saberi(x, y);
System.out.println (r1);
int r2;
r2 = Kalkulator.saberi(x, y);
System.out.println (r2);
}
}
}
Konstante
Za definisanje konstanti u okviru neke klase koristi se rezervisana re final
final tip_vrednosti NAZIV_KONSTANTE = vrednost;
Prema nepisanom pravilu nazivi konstante se piu svim velikim slovima; ako
se naziv sastoji od vie rei one se odvajaju znakom donje crte
Konstantama se moraju dodeljivati vrednosti odmah prilikom definisanja jer
je to kasnije nemogue
Pozivanje konstante se vri na isti nain kao pozivanje atributa klase; jedina
razlika je u tome to konstanti nikada ne moe da se dodeli nova vrednost
Za neke konstante je neophodno da budu globalno vidljive pa se pored rei
final stavlja i re static
static final tip_vrednosti NAZIV_KONSTANTE = vrednost;