18
OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 3 – DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18

OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

PREDAVANJE 3 – DEFINICIJA KLASE U JAVI

Miloš Kovačević

Đorđe Nedeljković

1 /18

Page 2: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

OSNOVNI KONCEPTI

- Polja

- Konstruktori

- Metode

- Parametri

- Povratne vrednosti

- Dodela vrednosti

2 /18

Page 3: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

DEMO – AUTOMAT ZA PRODAJU GSP KARATA

3

- Otvoriti projekat naive-ticket-machine u folderu chapter02

- Demonstracija mogućnosti aparata za prodaju karata

/18

Page 4: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

OSNOVNA STRUKTURA KLASE

- Interakcija sa objektom u BlueJ-u omogućava shvatanje njegovog ponašanja

- Pogled u izvorni kod klase otkiva kako je ponašanje implementirano

- Sve Java klase imaju istu strukturu unutrašnje implementacije

4

public class TicketMachine

{

// unutrašnjost klase izostavljena

}

public class ImeKlase

{

Polja

Konstruktori

Metode

}

Zaglavlje klase

TicketMachine

Sadržaj

klase

/18

Page 5: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

SINTAKSA I SEMANTIKA

- Sitaksa jezika definiše pravila po kojima se reči jezika ređaju u ispravne rečenice u datom jeziku

- Ispravno ≠ smisleno

- Primer: Pera jede Javu u procesoru. – sintaksno ispravno, ali besmisleno

- Sintaksa programskog jezika definiše koje kombinacije simbola i ključnih reči jezika (naredbi) predstavljaju ispravne delove programskog koda

- Semantika se bavi značenjem jezičkih konstrukcija (delova programskog koda)

- Sintaksno ispravan program nije nužno i korektan program

5 /18

Page 6: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

DEFINICIJA KLASE U JAVI

- Početak i kraj klase: { },

- Jednoredni komentari: //

- Komentari omogućavaju lakše čitanje koda

- Naziv klase se po konvenciji piše velikim početnim slovom

- Višerečni nazivi klase pišu se spojeno, svako prvo slove nove reči veliko

- Primer: TicketMachine, KompleksniBroj, KasikaBagera, RadniNalog, ...

- Čitljivost koda je jedan od primarnih ciljeva dobrog dizajna

6

public class TicketMachine

{

// unutrašnjost klase izostavljena

}

/18

Page 7: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

POLJA

- Polja skladište vrednosti svojstava objekata (polje implementira svojstvo)

- Vrednosti svih polja u objektu definišu njegovo stanje

- Sintaksa za polja:

7

public class TicketMachine

{

private int price;

private int balance;

private int total;

//Ostalo izostavljeno

}

private int price;

modifikator

vidljivostitip

ime polja

public class ImeKlase

{

Polja

Konstruktori

Metode

}

separator

/18

Page 8: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

KONSTRUKTORI

- Konstruktori su metode koje se pokreću prilikom kreiranja objekta iz klase

- Moraju da se zovu isto kao i klasa (sintaksa jezika)

- Konstruktor inicijalizuje vrednosti polja (postavlja objekat u početno stanje)

- Često od spolja primaju parametre kojima se vrši inicijalizacija

8

public class ImeKlase

{

Polja

Konstruktori

Metode

}

public TicketMachine(int ticketCost)

{

price = ticketCost;

balance = 0;

total = 0;

}

separator

/18

Page 9: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

PROSLEĐIVANJE PODATAKA PREKO PARAMETARA

9 /18

Page 10: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

DODELA VREDNOSTI

- Vrednosti se skladište u polja kroz naredbu dodele vrednosti:

promeljiva = izraz;

- Primer:

price = ticketCost;

obim = 2*r*pi;

suma = 0;

...

- Nakon dodele prethodna vrednost promenljive se briše

10/18

Page 11: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

METODE

- Metode implementiraju ponašanje objekata

- Metode se sastoje od zaglavlja (potpis) i tela

- Potpis metode govori o nameni metode (šta radi), a telo o implementaciji (kako radi)

- Metoda getPrice() vraća vrednost polja price – aksesor metoda11

public class ImeKlase

{

Polja

Konstruktori

Metode

}

public int getPrice()

{

return price;

}

povratni tip ime metode

lista parametara

(ovde prazna)

početak i kraj tela metode

return naredba

modifikator

vidljivost

/18

Page 12: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

METODE

- Metode mogu da menjaju stanje objekta (dodeljuju nove vrednosti poljima)

- Metoda insertMoney(int amount) menja stanje – metoda mutator

12

public class ImeKlase

{

Polja

Konstruktori

Metode

}

public void insertMoney(int amount)

{

balance = balance + amount;

}

povratni tip

ime metode tip parametra

modifikator

vidljivost

naredba dodele

polje kome se

menja vrednost

parametar

/18

Page 13: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

KONSTRUKTORI

- Konstruktor = specijalna metoda

- Sintaksa za konstruktore odstupa od sintakse za metode u dva elementa:

- Ime konstruktor metode mora da bude isto kao i ime klase

- Ne deklariše se povratni tip podatka jer se podrazumeva da konstruktor vraća novi objekat

13

public class ImeKlase

{

Polja

Konstruktori

Metode

}

public TicketMachine(int ticketCost)

{

price = ticketCost;

balance = 0;

total = 0;

}

public void insertMoney(int amount)

{

balance = balance + amount;

} /18

Page 14: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

SINTAKSA - TEST

14

public class Proizvod

{

private cena;

public Proizvod()

{

cena = 300

}

public int dajCenu

{

return Cena;

}

public class Proizvod

{

private int cena;

public Proizvod()

{

cena = 300;

}

public int dajCenu()

{

return cena;

}

}

/18

Page 15: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

TIPOVI PODATAKA

- Primitivni i objektni (klasni)

- Primitivni tipovi – tipovi podatka kod kojih se u promeljivoj skladišti vrednost

15

ime tipa opis Primer

Celi brojevi

byte

short

int

long

8-bitni ceo broj

16-bitni ceo broj

32-bitni ceo broj

64-bitni ceo broj

25

138

-5432

178468187687L

Realni brojevi

float

double

pokretni zarez – jednostruka tačnost

pokretni zarez – dvostruka tačnost

3.14f

3.14

Ostali

char

boolean

jedan karakter – 16 bita

logička vrednost (true ili false)

’m’

true

/18

Page 16: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

TIPOVI PODATAKA – STRING KLASA

- Objekti klase String predstavljaju proizvoljne nizove alfanumeričkih znakova

- Primer: ”Ovo je string”, ”strana br. 100 ”, ” @*[ ];&% ”, …

- Primer dodele vrednosti:

String ime = ”Петар Петровић”;

- Konkatenacija stringova

4 + 5

═ 9

“mena" + “džment"

═ “menadžment"

"Rezultat: " + 6

═ „Rezultat: 6"

"# " + price + " cents"

═ "# 500 cents" 16/18

Page 17: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

ŠTAMPANJE

17

public void printTicket()

{

// Simulate the printing of a ticket.

System.out.println("##################");

System.out.println("# The BlueJ Line");

System.out.println("# Ticket");

System.out.println("# " + price + " cents.");

System.out.println("##################");

System.out.println();

// Update the total collected with the balance.

total = total + balance;

// Clear the balance.

balance = 0;

}

/18

Page 18: OBJEKTNO ORIJENTISANO PROGRAMIRANJEPROGRAMIRANJE PREDAVANJE 3 –DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode

TEST

System.out.println(5 + 6 + "hello");

System.out.println("hello" + 5 + 6);

18

11hello

hello56

/18