26
proleće/leto 2008

proleće/leto 2008

Embed Size (px)

DESCRIPTION

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”. - PowerPoint PPT Presentation

Citation preview

proleće/leto 2008

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 16

NizoviNizovi

Stanje u memoriji posle inicijalizacije:

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

Dejan Živković Programski jezici 26

StringoviStringovi

Ostali metodi klase String