1 / 29

Strukture podataka i algoritmi

Strukture podataka i algoritmi. Uvod u programski jezik Java. Agenda. Klase, tipovi i objekti Metodi Upravljanje tokom Nizovi Nasleđivanje i polimorfizam Izuzeci Interfejsi i apstraktne klase. Klase, tipovi i objekti. Klase i objekti. Glavni “ učesnici ” u Java program u su objekti

verda
Download Presentation

Strukture podataka i algoritmi

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. Strukture podataka i algoritmi Uvod u programski jezik Java

  2. Agenda • Klase, tipovi i objekti • Metodi • Upravljanje tokom • Nizovi • Nasleđivanje i polimorfizam • Izuzeci • Interfejsi i apstraktne klase

  3. Klase, tipovi i objekti

  4. Klase i objekti • Glavni “učesnici” u Java programu suobjekti • Objekat predstavlja instancu klase koja određuje tip podataka koje objekat sadrži • Promenljive (sadrže podatke) i metodi (definišu ponašanje klase) [〈modifikator_klase〉] class 〈ime_klase〉 [extends 〈ime_nadklase〉] [implements 〈interface_1〉, 〈interface_2〉, ...] { // definicije metoda i promenljivih }

  5. Klase i objekti classOsoba { // definicije promenljivih... // definicije metoda... } • Modifikatori klasa: • abstract • final • public • bez modifikatora

  6. Tipovi • Osnovni tipovi podataka • boolean • char • byte • short • int • long • float • double

  7. Objekti • Instanciranje objekta određene klase 〈naziv_objekta〉 = new 〈naziv_klase〉([parametar, parametar, ...]); • Konstruktor myPoint = new Point (3,6); • Podrazumevane vrednosti

  8. Primer publicclassOsoba { // promenljive: protected String Ime; protectedintStarost; protectedOsobaMajka; privatebooleanozenjen; publicdoublevisina = 2.6; // direktna inicijalizacija publicstaticfinalint MAX_VISINA = 3; // konstanta // Definicije metoda... }

  9. Metodi

  10. Metodi • Deklarisanje metoda: [〈modifikatori〉]〈tip_pov_vred〉〈naziv〉([〈parametri〉]) { // telo metoda ... } • Potpis metoda • Ime metoda • Broj, tip i redosled parametara

  11. Modifikatori metoda • Modifikatori metoda: • private • protected • public • bez modifikatora • Dodatni modifikatori • abstract • final • static

  12. Konstruktor • Poseban tip metoda za inicijalizaciju [modifikatori] 〈naziv_konstruktora〉 ([〈parametri〉]) { // Telo konstruktora... (inicijalizacija) } publicOsoba (String ime, int starost) { Ime = ime; Starost = starost; } .... Osoba novaOsoba = new Osoba(“Pera”, 24);

  13. Upravljanje tokom

  14. If iskaz if (〈boolean_expr〉) 〈true_statement〉 [elseif (〈boolean_expr〉) 〈else_if_statement〉] [else 〈else_statement〉] if (ocena == 5) System.out.println(“Pao je :(!"); else System.out.println(“Položio je :)");

  15. Switch iskaz public Namirnica VratiNamirnicu (int novac) { Namirnica namirnica; switch (novac){ case 25: namirnica = new Hleb (); break; case 40: namirnica = new Mleko(); break; default: namirnica = new Zvaka(); break; } return namirnica; }

  16. Petlje • For for ([〈inicijalizacija〉];[〈uslov〉];[〈increment〉]) { // telo petlje } for (inti = 0; i < 5; i++) System.out.println(“Vrednost brojaca:“ + i); • While while (〈uslov〉) { // telo petlje }

  17. Petlje • Do-While do { // telo petlje } while (〈uslov〉)

  18. Nizovi

  19. Niz • Uređena kolekcija promenljivih istog tipa • 0 , n-1 〈tip_niza〉[] 〈naziv〉 [= { 〈inic_vred0〉,〈 inic_vred1〉,...,〈inic_vred_N−1〉}]; new 〈 tip_niza 〉[〈velicina〉] int[] a = newint[10]; float[][] x = new float[8][10];

  20. Objektno-orijentisano programiranje

  21. Nasleđivanje class Telo { potected String Naziv; publicfloat Tezina; public String GetNaziv(){ return “Telo”; } } class Automobil extends Telo { publicint Brzina; public String GetNaziv(){ return “Automobil”; } }

  22. Polimorfizam • Polimorfizam = više oblika Telo t = new Telo(); Telo t = new Automobil(); System.out.println(t.GetNaziv());

  23. Izuzeci • Neočekivani događaji generisani u toku izvršavanja programa • “Bacanje” izuzetka: if (index > size()) { thrownew Exception("No element at index " + index); }

  24. Izuzeci publicvoid goShopping() throwsShoppingListTooSmallException, OutOfMoneyException { // telo metoda ... } • Priprema korisnika i Java kompajlera na eventualne greške • Nije potrebno obrađivanje izuzetka

  25. Obrada izuzetaka try 〈 blok_koda_1 〉 catch (〈 tip_izuzetka 〉 〈 promenljiva 〉) 〈 blok_koda_2〉 [catch (〈 tip_izuzetka 〉 〈 promenljiva 〉) 〈 blok_koda_3〉] ... [finally 〈 blok_koda_N 〉]

  26. Interfejsi • Ugovori • Samo definicije • Public metodi i promenljive • Ne može se instancirati

  27. Interfejsi // Interface za objekte koji mogu da se prodaju. publicinterface Sellable { //opis objekta public String description(); /* cena objekta */ publicint listPrice(); //najniža prihvatljiva cena publicint lowestPrice(); }

  28. Interfejsi publicclassCameraimplements Sellable { private String descr; // opis kamere privateint price; // cena privateboolean color; // true ako je kamera u boji public Camera(String desc, int p, boolean c) { descr = desc; price = p; color = c; } public String description() { return descr; } publicint listPrice() { return price; } publicint lowestPrice() { return price/2; } public boolean isColor() { return color; } }

  29. Apstraktne klase • Između interfejsa i konkretne klase • Može da ima tela metoda publicabstractclass Osoba { // apstraktni i konkretni metodi i promenljive } publicclass Student extends Osoba{ // implementacija }

More Related