260 likes | 357 Views
Programski jezici. proleće/leto 2008. Stvaranje objekata klase. Primer: Č lan P orodice sin = new Č lan P orodice ( " Nikola " ,20); Č lan P orodice otac = new Č lan P orodice ( " Petar " ,52);. sin. prezime. “Smorić”. verzija(). otac. prikaži. prikaži. ime. ime. “Petar”.
E N D
Programski jezici proleće/leto 2008
Stvaranje objekata klase • Primer: ČlanPorodice sin = new ČlanPorodice("Nikola",20); ČlanPorodice otac = new ČlanPorodice("Petar",52); Programski jezici
sin prezime “Smorić” verzija() otac prikaži prikaži ime ime “Petar” “Nikola” uzrast uzrast 52 20 Stvaranje objekata klase Programski jezici
Korišćenje polja i metoda • Objektna i klasna polja (kao i metodi) se koriste pomoću tačka-notacije • Ispred imena polja se navodi • Ime klase za klasna polja • Ime objektne promenljive konkretnog objekta za objektna polja Programski jezici
Korišćenje polja i metoda • Primer: ČlanPorodice sin = new ČlanPorodice("Nikola",20); ČlanPorodice otac = new ČlanPorodice("Petar",52); System.out.println(ČlanPorodice.prezime); otac.uzrast = 50; System.out.println(sin.ime); ČlanPorodice.verzija(...); otac.prikaži(...); sin.prikaži(...); Programski jezici
Nadjačavanje metoda u izvedenim klasama • Izvedena klasa nasleđuje sve metode (i polja) svoje bazne klase • Definisanje metoda u izvedenoj klasi koji ima isti potpis kao metod u baznoj klasi se naziva nadjačavanje (predefinisanje, overriding) metoda • Za objekte bazne i izvedene klase se ispravno pozivaju odgovarajući metodi sa istim imenom Programski jezici
Službena reč super • super služi za pozivanje metoda iz bazne klase (koji je nadjačan) u izvedenoj klasi • super služi za pozivanje konstruktora bazne klase u konstruktoru izvedene klase • Primer: Deca.java Programski jezici
Nizovi • Objekti koji predstavljaju nizove promenljivih istog tipa (primitivnog ili objektnog) • Pojedinačne promenljive niza se nazivaju elementi niza • Svaki element niza ima redni broj koji se naziva indeks elementa • Indeksi niza počinju od 0, ne od 1 Programski jezici
53 -7 563 37 ……. a[0] a[1] a[2] ……. a[99] Nizovi • Niz a od 100 celobrojnih elemenata (promenljivih): Programski jezici
Nizovi • Definisanje nizova tip[] ime-niza; • Primer: int[] a; a = new int[100]; Programski jezici
Nizovi • Skraćeni oblik: int[] a = new int[100]; float[] b = new float[20]; Auto[] parking = new Auto[5]; • Istovremena inicijalizacija: int[] dum = {31,28,31,30,31,30,31,31,30,31,30,31}; • Nizovi imaju fiksnu dužinu koja se ne može menjati Programski jezici
Nizovi • Korišćenje elemenata nizova: ime-niza[indeks] indeks–celobrojni literal ili izraz Programski jezici
Nizovi • Primer: public static void main(String[] args) { int[] brojač = new int[10]; String[]godDoba={“prolece”,“leto”,“jesen”,“zima”}; ... brojač[5] = 2*i+1; brojač[10] = 17; //greška int x = brojač[i+j]; String s = godDoba[3]; ... } Programski jezici
Nizovi • Svaki niz ima definisano konstantno polje length koje sadrži dužinu niza (broj elemenata) • Primer: int[] brojač = new int[10]; String[]godDoba={“prolece”,“leto”,“jesen”,“zima”}; ... System.out.println(brojač.length); //10 System.out.println(godDoba.length); //4 Programski jezici
Nizovi • Nizovi čiji su elementi primitivnih tipova int[] a = new int[5]; for (int i = 0; i < a.length; i++) a[i] = i; // int[] a = {1,2,3,4,5}; Programski jezici
Nizovi • Stanje u memoriji posle inicijalizacije: Programski jezici
Nizovi • Nizovi čiji su elementi objektnih tipova Auto[] parking = new Auto[5]; To je niz čiji elementi sadrže reference na objekte klase Auto: Programski jezici
Nizovi • Niz referenci na objekte se mora “ručno” inicijalizovati: for (int i = 0; i < parking.length; i++) parking[i] = new Auto(); • Stanje u memoriji posle inicijalizacije: Programski jezici
5 -7 1562 371 0 ……. a[0] a[1] a[2] ……. a[63] 1 -433 344 1 0 ……. a[0] a[1] a[2] ……. a[63] 2 3 -71 63 ……. 7 a[0] a[1] a[2] ……. a[63] Nizovi • Višedimenzionalni nizovi su nizovi nizova Programski jezici
5 -7 1562 371 ……. a[0][0] a[0][1] a[0][2] ……. a[0][63] -433 344 1 0 ……. a[1][0] a[1][1] a[1][2] ……. a[1][63] 3 -71 63 7 ……. a[2][0] a[2][1] a[2][2] ……. a[2][63] Nizovi • Dvodimenzionalni niz Programski jezici
Nizovi • Primeri: int[][] a = new int[3][64]; double[][]temp = new double[10][365]; Zgrada[][] blok = new Zgrada[4][5]; Programski jezici
Nizovi • Elementi višedimenzionalnih nizova se koriste preko svojih indeksa (kao i kod jednodimenzionalnih nizova ) • Primeri: a[0][12] = 17; System.out.println(temp[i][j]); Zgrada[1][3] = new Zgrada(); Programski jezici
Stringovi • Nizovi znakova između " i " • Stringovi nisu primitivne vrednosti, već objekti klase String • Primeri: String s = "Ovo je neki tekst"; String s = new String("Ovo je neki tekst"); String t = ""; //prazan string String t = new String(); //prazan string String a = null; String[] boje={"crvena","plava","zelena","zuta"}; Programski jezici
Stringovi • Operator + za spajanje stringova • Primeri: String s = "Ovo je cas " + "iz Jave"; String s1 = "Ovo je cas "; String s2 = "iz Jave"; s1+= s2; //s1 = s1 + s2 int x = 23; System.out.println("Vrednost x je: " + x); //automatski 23 → "23", pa spajanje stringova Programski jezici
Stringovi • Metod equals za poređenje da li dva stringa imaju isti sadržaj: s1.equals(s2) • Primeri: String s1="Zdravo"; String s1=new String("Zdravo"); String s2="Zdravo"; String s2=new String("Zdravo");//novi string if(s1 == s2) //true if(s1 == s2); //false if(s1.equals(s2)) //true if(s1.equals(s2)) //true Programski jezici
Stringovi • Ostali metodi klase String Programski jezici