Dejan Živković Programski jezici 2
Stvaranje objekata klaseStvaranje objekata klase
Primer:
ČlanPorodice sin = new ČlanPorodice("Nikola",20);ČlanPorodice otac = new ČlanPorodice("Petar",52);
Dejan Živković Programski jezici 3
Stvaranje objekata klaseStvaranje objekata klase
otac
52
“Petar”ime
uzrast
prikaži
“Smorić”prezime
verzija()
sin
20
“Nikola”ime
uzrast
prikaži
Dejan Živković Programski jezici 4
Korišćenje polja i metodaKorišć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
Dejan Živković Programski jezici 5
Korišćenje polja i metodaKorišć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(...);
Dejan Živković Programski jezici 6
Nadjačavanje metoda u Nadjačavanje metoda u izvedenim klasamaizvedenim 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
Dejan Živković Programski jezici 7
Službena reč Službena reč supersuper
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
Dejan Živković Programski jezici 8
NizoviNizovi
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
Dejan Živković Programski jezici 9
NizoviNizovi
Niz a od 100 celobrojnih elemenata (promenljivih):
53 -7 563 37…….
a[0] a[1] a[2] ……. a[99]
Dejan Živković Programski jezici 10
NizoviNizovi
Definisanje nizova
tip[] ime-niza;
Primer:
int[] a;a = new int[100];
Dejan Živković Programski jezici 11
NizoviNizovi
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
Dejan Živković Programski jezici 12
NizoviNizovi
Korišćenje elemenata nizova:
ime-niza[indeks]
indeks – celobrojni literal ili izraz
Dejan Živković Programski jezici 13
NizoviNizoviPrimer:
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]; ...}
Dejan Živković Programski jezici 14
NizoviNizovi
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
Dejan Živković Programski jezici 15
NizoviNizovi
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};
Dejan Živković Programski jezici 17
NizoviNizovi
Nizovi čiji su elementi objektnih tipova
Auto[] parking = new Auto[5];
To je niz čiji elementi sadrže reference na objekte klase Auto:
Dejan Živković Programski jezici 18
NizoviNizovi
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:
Dejan Živković Programski jezici 19
NizoviNizovi
Višedimenzionalni nizovi su nizovi nizova
-433 344 1 0…….
a[0] a[1] a[2] ……. a[63]
3 -71 63 7…….
a[0] a[1] a[2] ……. a[63]
5 -7 1562 371…….
a[0] a[1] a[2] ……. a[63]
0
1
2
Dejan Živković Programski jezici 20
NizoviNizovi
Dvodimenzionalni niz
-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]
5 -7 1562 371…….
a[0][0] a[0][1] a[0][2] ……. a[0][63]
Dejan Živković Programski jezici 21
NizoviNizovi
Primeri:int[][] a = new int[3][64];double[][] temp = new double[10][365];Zgrada[][] blok = new Zgrada[4][5];
Dejan Živković Programski jezici 22
NizoviNizovi
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();
Dejan Živković Programski jezici 23
StringoviStringovi
Nizovi znakova između " i "Stringovi nisu primitivne vrednosti,
već objekti klase StringPrimeri: 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"};
Dejan Živković Programski jezici 24
StringoviStringovi
Operator + za spajanje stringovaPrimeri: 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
Dejan Živković Programski jezici 25
StringoviStringovi
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); //falseif(s1.equals(s2)) //true if(s1.equals(s2)) //true
Top Related