OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 3 DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18
OSNOVNI KONCEPTI - Polja - Konstruktori - Metode - Parametri - Povratne vrednosti - Dodela vrednosti 2 /18
DEMO AUTOMAT ZA PRODAJU GSP KARATA - Otvoriti projekat naive-ticket-machine u folderu chapter02 - Demonstracija mogućnosti aparata za prodaju karata 3 /18
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 public class TicketMachine // unutrašnjost klase izostavljena Zaglavlje klase TicketMachine public class ImeKlase Polja Konstruktori Metode Sadržaj klase 4 /18
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
DEFINICIJA KLASE U JAVI public class TicketMachine // unutrašnjost klase izostavljena - 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 /18
POLJA - Polja skladište vrednosti svojstava objekata (polje implementira svojstvo) - Vrednosti svih polja u objektu definišu njegovo stanje public class ImeKlase Polja Konstruktori Metode public class TicketMachine private int price; private int balance; private int total; separator //Ostalo izostavljeno - Sintaksa za polja: modifikator vidljivosti tip ime polja private int price; 7 /18
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 public class ImeKlase Polja Konstruktori Metode public TicketMachine(int ticketcost) price = ticketcost; balance = 0; total = 0; separator 8 /18
PROSLEĐIVANJE PODATAKA PREKO PARAMETARA 9 /18
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
METODE - Metode implementiraju ponašanje objekata public class ImeKlase Polja Konstruktori Metode - Metode se sastoje od zaglavlja (potpis) i tela - Potpis metode govori o nameni metode (šta radi), a telo o implementaciji (kako radi) modifikator vidljivost povratni tip public int getprice() return price; ime metode početak i kraj tela metode lista parametara (ovde prazna) return naredba - Metoda getprice() vraća vrednost polja price aksesor metoda 11/18
METODE public class ImeKlase Polja Konstruktori Metode - Metode mogu da menjaju stanje objekta (dodeljuju nove vrednosti poljima) modifikator vidljivost povratni tip ime metode tip parametra public void insertmoney(int amount) balance = balance + amount; parametar naredba dodele polje kome se menja vrednost - Metoda insertmoney(int amount) menja stanje metoda mutator 12/18
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 public class ImeKlase Polja Konstruktori Metode public TicketMachine(int ticketcost) price = ticketcost; balance = 0; total = 0; public void insertmoney(int amount) balance = balance + amount; 13/18
SINTAKSA - TEST public class Proizvod private cena; public Proizvod() cena = 300 public class Proizvod private int cena; public Proizvod() cena = 300; public int dajcenu return Cena; public int dajcenu() return cena; 14/18
TIPOVI PODATAKA - Primitivni i objektni (klasni) - Primitivni tipovi tipovi podatka kod kojih se u promeljivoj skladišti vrednost ime tipa opis Primer Celi brojevi byte short int long Realni brojevi float double Ostali char boolean 8-bitni ceo broj 16-bitni ceo broj 32-bitni ceo broj 64-bitni ceo broj pokretni zarez jednostruka tačnost pokretni zarez dvostruka tačnost jedan karakter 16 bita logička vrednost (true ili false) 25 138-5432 178468187687L 3.14f 3.14 m true 15/18
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
ŠTAMPANJE 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; 17/18
TEST System.out.println(5 + 6 + "hello"); 11hello System.out.println("hello" + 5 + 6); hello56 18/18