1 / 20

Informacioni sistemi - vežbe -

Informacioni sistemi - vežbe -. Tema: Konstruktor metode, preklapanje metoda 23 .12.2004. Konstruktor metoda. M etod a koj a se automatski poziva pri kreiranju nove instance pomoću operatora new Osnovne karakteristike konstruktor metoda su:

Download Presentation

Informacioni sistemi - vežbe -

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informacioni sistemi- vežbe - Tema:Konstruktor metode, preklapanje metoda 23.12.2004.

  2. Konstruktor metoda • Metoda koja se automatski poziva pri kreiranju nove instance pomoću operatora new • Osnovne karakteristike konstruktor metoda su: • imaju uvek isti naziv kao i klasa za koju su definisani, • nemaju povratni tip

  3. Inicijalizacija pomoću konstruktora • Uloga konstruktor metode je da se obezbedi početna inicijalizacija objekata pri njihovom kreiranju. • Ako klasa ima konstruktor, Java ga automatski poziva pri stvaranju objekta, pre nego što korisnik može da mu pristupi • Ako se napravi klasa bez konstruktora, prevodilac će automatski napraviti podrazumevani (default) konstruktor

  4. Primer 1 public class Broj1 { Broj1( ) { System.out.println("Ovo je default konstruktor"); } public static void main(String[] args) { Broj1 b1 = new Broj1(); } izlaz: “Ovo je default konstruktor”

  5. Argumenti konstruktor metoda • Kao i svaka metoda, konstruktor može da ima argumente koji određuju kako će objekat biti napravljen • Argumenti konstruktora omogućavaju da se obezbede parametri za inicijalizaciju objekta

  6. Primer 2 public class Broj1 { Broj1(int i) { System.out.println("Pravi se " + i + "-ti broj"); } public static void main(String[ ] args) { Broj1 b1 = new Broj1(); //default konstruktor for(int i = 1; i <= 10; i++) new Broj1(i); } }

  7. Preklapanje konstruktor metoda I • Ukoliko je potrebno da se objekat napravi na više načina, koristi se više konstruktora • Svi imaju isto ime (ime klase), ali se razlikuju po argumentima • Isto ime metode se koristi sa drugačijim tipovima argumenata – preklapanje metoda (engl. overloading)

  8. Preklapanje konstruktor metoda II class Drvo { int visina; String vrsta; Drvo() { … } Drvo(int i) { … } Drvo(String s) { … } Drvo(int i, String s) { … } ... } Drvo d1 = new Drvo(); Drvo d2 = new Drvo(1); Drvo d3 = new Drvo(“Lipa”); Drvo d4 = new Drvo(1,”Kesten”); Drvo d5 = new Drvo (“Orah”,2);

  9. Razlikovanje preklopljenih metoda • Svaka preklopljena metoda mora da ima jedinstvenu listu tipova argumenata • Dovoljna je čak i razlika u poretku argumenata • void ispis(int i, String s) • void ispis(String s, int i)

  10. Preklapanje povratnih vrednosti • Razlika između metoda sa istim imenom se pravi na osnovu liste argumenata • Tip povratne vrednosti se ne može koristiti za razlikovanje metoda

  11. Primer 3 void f() int f() • međutim, metoda se može pozvati, a da se ignoriše povratna vrednost (pozivanje metode zbog sporednog efekta), ako povratna vrednost nije bitna • f() – koju metodu treba pozvati?

  12. Primer 4 – preklapanje metoda class Drvo { int visina; Drvo() { System.out.println("Sadjenje mladice"); visina = 0; } Drvo(int i) { System.out.println("Pravimo novo Drvo koje je visoko " + i + " metara"); visina = i; }

  13. Primer 4 - nastavak void info() { System.out.println("Drvo je visoko " + visina + " metara"); } void info(String s) { System.out.println(s + ": Drvo je visoko " + visina + " metara"); } public static void main(String[] args) { for(int i = 0; i < 5; i++) { Drvo d = new Drvo(i); d.info(); d.info("preklopljena metoda"); } new Drvo(); } }

  14. Rezervisana reč this • Ukoliko u okviru metode postoji potreba da se koristi referenca na tekući objekat, onda se koristi rezervisana reč this • this se koristi samo unutar metode i vraća referencu na objekat za koji je metoda pozvana

  15. Primer 5 public class Broj { int i; public Broj() { System.out.println("Ovo je default konstruktor"); } public Broj(int i) { System.out.println("Ovo je konstruktor koji inicijalizuje vrednost promenljive i na " + i); this.i = i; } public static void main (String[ ] args) { Broj b1 = new Broj(); b1.i = 20; System.out.println("b1.i = " + b1.i); Broj b2 = new Broj(5); System.out.println("b2.i = " + b2.i); } }

  16. Primer 6 – dopuna klase Drvo class Drvo { int visina; String vrsta; Drvo() { visina = 0; vrsta = new String(“Listopadno”); } Drvo(int visina) { this.visina = visina; vrsta = new String(“Listopadno”); }

  17. Primer 6 - nastavak Drvo(String vrsta) { visina = 0; this.vrsta = vrsta; } Drvo(int i, String s) { visina = i; vrsta = s; } }

  18. Primer 7 – Kreirati klasu Pravougaonik • Pravougaonik čije su stranice paralene koordinatnim osama, određen je tačkama koje predstavljaju donje levo i gornje desno teme. • Pravougaonik možemo kreirati tako što ćemo zadati • Donje levo i gornje desno teme • Donje levo teme, širinu i visinu • Četiri cela broja koji redom predstavljaju: x i y koordinatu donjeg levog i gornjeg desnog temena

  19. Primer 7 – pomoćna klasa Tacka class Tacka { int x; int y; Tacka(int x, int y){ this.x = x; this.y = y; } }

  20. Primer 7 - skica class Pravougaonik{ Tacka donjeLevo = Tacka(0,0); Tacka gornjeDesno = Tacka(0,0); Pravougaonik(Tacka dL, Tacka gD) { … } Pravougaonik(TackadL, int sirina, int visina) { … } Pravougaonik(int x1, int y1, int x2, int y2) { … } void info(){ … } }

More Related