Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Слични документи
3.Kontrlne (upravlja~ke) strukture u Javi

Tutoring System for Distance Learning of Java Programming Language

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

PowerPoint Presentation

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]

Slide 1

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Tutoring System for Distance Learning of Java Programming Language

PowerPoint Presentation

Microsoft Word - 11 Pokazivaci

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Класе комбинација презентације (Хортона) и к о бајаги скрипте (Ово је прича коју врло радо причам) нови тип података: дефинишу могуће вредности подата

Uvod u računarstvo 2+2

Inženjering informacionih sistema

Računarski praktikum I - Vježbe 09 - this, static

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Funkcije predavač: Nadežda Jakšić

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

Zadatak 011 Razmotrite sljedeći primjer. package hr.fer.oopj.primjeri.p011; public class Main { } public static void main(string[] args) { obrada(2.71

Microsoft Word - CAD sistemi

Tutoring System for Distance Learning of Java Programming Language

Slide 1

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

12 Stanje

Projekti šabloni

PowerPoint Presentation

Primenjeno programiranje - Vežbe

070-ALIP2-udzbenik.indb

Primenjeno programiranje - vezbe GUI i baze podataka

P11.3 Analiza zivotnog veka, Graf smetnji

Funkcije predavač: Nadežda Jakšić

Dijagrami sekvenci

Univerzitet u Beogradu Mašinski fakultet Konstrukcija i tehnologija proizvodnje letelica PODEŠAVANJE PROGRAMSKOG PAKETA CATIA V5 Miloš D. Petrašinović

1 NOVO U MNG CENTRU!!! OVLADAJTE TEHNOLOGIJOM IZRADE JAVA EE APLIKACIJA KORIŠ C ENJEM ORACLE ADF-A O - Otkrijte brzinu razvoja aplikacija sa ADF-om -

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Microsoft PowerPoint - C-4-1

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Microsoft PowerPoint - Topic04-Serbian.ppt

Microsoft PowerPoint - DAC.ppt [Compatibility Mode]

PROMENLJIVE, TIPOVI PROMENLJIVIH

Slide 1

PowerPoint Presentation

Računarski praktikum I - Vježbe 11 - Funktori

PowerPoint Presentation

Microsoft PowerPoint - GR_MbIS_12_IDEF

Classroom Expectations

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

PowerPoint Presentation

UNIVERZITET UKSHIN HOTI PRIZREN FAKULTET RAČUNARSKIH NAUKA PROGRAM: TIT - BOS NASTAVNI PLAN-PROGRAM SYLLABUS Nivo studija Bachelor Program TIT-Bos Aka

INDIKATOR SVJETLA FUNKCIJE TIPKI 1. Prikazuje se temperatura i parametri upravljanja 2. Crveno svjetlo svijetli kad grijalica grije 3. Indikator zelen

Slide 1

Microsoft Word - Java_introduction_NEW_SYLLABUS.doc

ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Microsoft PowerPoint - Timer0 16F887.ppt [Compatibility Mode]

UVOD - OD JAVE DO C# ELEMENTARNE RAZLIKE Veliki broj Java/C# razlika su uglavnom preimenovane ključne reči i razlike u konvencijama imenovanja. Neke o

Programski jezik C

Modem i lokalna mreža Vodič za korisnika

P1.2 Projektovanje asemblera

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Посебни услови пружања TOTAL GROUP услуге

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

Strukture predavač: Nadežda Jakšić

Sveucilište u Zagrebu

Datum: 20

Apache Maven Bojan Tomić

PowerPoint Presentation

KATALOG ZNANJA IZ INFORMATIKE

TEORIJA SIGNALA I INFORMACIJA

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

PowerPoint Presentation

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Писање и превођење модула

Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić

Универзитет у Београду Економски факултет Катедра за економску политику и развој Јавне финансије 2018/19 УПУТСТВО ЗА ПРИЈАВЉИВАЊЕ НА Е-КУРС ИЗ ПРЕДМЕТ

PowerPoint Presentation

PowerPoint Presentation

Model podataka

PowerPoint Presentation

Microsoft Word - eg_plan_mart2007.doc

1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме

СТАРТ - СТОП ПАРКИНГ СИСТЕМ КОРИСНИЧКО УПУТСТВО страна 1 од 12

Objektno orijentirano modeliranje

Baze podataka MySQL Community Server i MySQL Workbench

1

Microsoft Word - MODULI AGENDA.docx

Programiranje 1

Vjezbe

Programski jezik JAVA PREDAVANJE

PowerPoint Presentation

03 SUBP

PowerPoint Presentation

Pojačavači

Транскрипт:

OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 5 OBJEKTI U INTERAKCIJI Miloš Kovačević Đorđe Nedeljković 1 /25

OSNOVNI KONCEPTI - Abstrakcija - Modularizacija - Objektne reference - Klasni dijagram - Objektni dijagram - Kreiranje objekata - Interakcija između objekata (eksterni pozivi metoda) - Interni pozivi metoda 2 /25

DEMO DIGITALNI SAT Otvoriti projekat clock-display u folderu chapter03 - Na displeju sati i minuti - Sati idu od 0 do 11 3 /25

KAKO NAPRAVITI PRIKAZ DIGITALNOG SATA jedan četvorocifreni displej?...ili dva dvocifrena displeja? povezani sa : 4 /25

ABSTRAKCIJA I MODULARIZACIJA - Abstrakcija je pojednostavljena predstava modela koja zanemaruje detalje a fokusira se na suštinska svojstva i ponašanja - Primer: abstrakcija solitera je poliedar sa širinom, visinom, dužinom, brojem stanara i adresom - Modularizacija je proces podele celine u dobro definisane delove, koji se mogu posmatrati nezavisno i koji interaguju po unapred definisanim pravilima - Primer1: zgrada može da se podeli na spratove, a spratovi na stanove, spratovi i stanovi definišu se detaljnije, kao i veze između njih - Primer2: lego kocke određenih profila (svaki profil definisan kao nezavisna celina) kombinacija različitih kocki daje različite modele (zgrada) 5 /25

MODULARIZACIJA Prikaz se realizuje korišćenjem dve nezavisne komponente (modula) istog tipa: dvocifreni displej Svaki displej broji od 00 do XY, gde se XY može podesiti (npr. do 24 ili 60) Zašto prikaz nije realizovan kao četvorocifreni displej? Kako bi se realizovao sat koji pokazuje i sekunde u oba slučaja? Korišćenjem dvocifrenog displeja jednostavno se dograđuje funkcionalnost sata (na sate i minute se dodaju sekunde) povezani sa : U slučaju da je sat monolitan ne bi mogli da iskoristimo nijedan njegov deo za novi prikaz 6 /25

IMPLEMENTACIJA DVOCIFRENOG DISPLEJA public class NumberDisplay { private int limit; private int value; // konstruktori izostavljeni // metode izostavljene 7 /25

IMPLEMENTACIJA SATA public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; // konstruktori izostavljeni // metode izostavljene Primer abstrakcije model prikaza sata pojednostavljen, uočeni suštinski delovi Svaki objekat klase ClockDisplay sastoji se od dva objekta klase NumberDisplay Polja hours i minutes su objektnog tipa (nisu primitivni tipovi) 8 /25

PRIMITIVNI I OBJEKTNI TIPOVI int i; 21 primitivni tip (čuva vrednost promenljive) NekaKlasa objekat; objektni tip (čuva referencu na objekat) referenca = adresa u memoriji gde počinje struktura koja čuva podatke o stanju objektu 9 /25

OBJEKTNI DIJAGRAM SISTEMA 24, 11 60, 3 Objektni dijagram pokazuje veze između objekata i njihova stanja u nekom trenutku rada programa 10/25

KLASNI DIJAGRAM SISTEMA Klasni dijagram opisuje statičku strukturu programa (koje klase čine sistem i kakav je odnos između njih, koji su delovi u sistemu i kakav je odnos između delova) 11/25

IMPLEMENTACIJA DVOCIFRENOG DISPLEJA public class NumberDisplay{ private int limit; private int value; public NumberDisplay (int rollover){ limit = rollover; value = 0; // start at 0 // metode izostavljene 12/25

IMPLEMENTACIJA DVOCIFRENOG DISPLEJA public class NumberDisplay{ private int limit; private int value; //... public void increment(){ value = (value + 1) % limit; // videti dalje u BlueJ-u % - operator računa celobrojni ostatak, npr. 5 % 2 je 1 / - celobrojno deljenje kada su leva i desna strana celobrojni tipovi, npr. 5 / 2 je 2 Može li increment() da se implementira drugačije? 13/25

IMPLEMENTACIJA DVOCIFRENOG DISPLEJA public class NumberDisplay{ private int limit; private int value; //... public void increment(){ value = value + 1; if(value == limit){ value = 0; 14/25

SKRAĆENA NOTACIJA public void increment(){ value++ ; // umesto value = value + 1 if(value == limit){ value = 0; total = total + price; balance = balance price; može i: total += price; balance -= price; 15/25

SKRAĆENA NOTACIJA - OPERATORI - Umesto A = A op B može A op= B - Primeri: - a = a +5 jednako je a += 5 - b = b / c jednako je b /= c - d = d * (2 + e) jednako je d *= (2 + e) - Umesto a = a + 1, može a += 1, ali je najbolje a ++ - Slično, za a = a 1, može a = 1, ali je nabjolje a 16/25

IMPLEMENTACIJA SATA OBJEKAT SADRŽI DRUGE OBJEKTE public class ClockDisplay{ private NumberDisplay hours; private NumberDisplay minutes; //... poziv konstruktora klase NumberDisplay public ClockDisplay(){ hours = new NumberDisplay(24); minutes = new NumberDisplay(60); // ostala inicijalizacija //... 17/25

IMPLEMENTACIJA SATA OBJEKAT KREIRA DRUGE OBJEKTE hours = new NumberDisplay(24); minutes = new NumberDisplay(60); stvarni parametar formalni parametar 24, 0 public NumberDisplay (int rollover){ limit = rollover; value = 0; // start at 0 60, 0 Polja hours i minutes su objektnog tipa (nisu primitivni tipovi kao što je npr. int) 18/25

POZIVANJE METODA EKSTERNO ZVANJE public class ClockDisplay{ private NumberDisplay hours; private NumberDisplay minutes; private String displaystring; //... private void updatedisplay(){ displaystring = hours.getdisplayvalue() + ":" + minutes.getdisplayvalue(); //... eksterni poziv metode nad objektom koristi notaciju sa tačkom 19/25

POZIVANJE METODA NOTACIJA SA TAČKOM public class NumberDisplay{ poziv metode hours.getdisplayvalue() ime objekta ime javne metode iz klase objekta private int limit; private int value; //... public String getdisplayvalue(){ if(value < 10) { return "0" + value; else { return "" + value; //... modifikator vidljivosti za javnu metodu 20/25

POZIVANJE METODA NOTACIJA SA TAČKOM Objekti mogu da pozivaju metode nad objektima drugih klasa samo ako su u tim klasama deklarisane kao javne (public) Interakcija između objekata obavlja se kroz međusobno pozivanje metoda private NumberDisplay hours; private NumberDisplay minutes; private String displaystring; //... public void timetick(){ minutes.increment(); metode moraju biti deklarisane kao javne (public) u klasi NumberDisplay if(minutes.getvalue() == 0){ hours.increment(); updatedisplay(); 21/25

POZIVANJE METODA INTERNI POZIV private NumberDisplay hours; private NumberDisplay minutes; private String displaystring; //... public ClockDisplay(){ hours = new NumberDisplay(24); minutes = new NumberDisplay(60); updatedisplay(); public void timetick(){ minutes.increment(); if(minutes.getvalue() == 0){ hours.increment(); updatedisplay(); interni poziv metode iz iste klase interni poziv metode iz iste klase 22/25

POZIVANJE METODA INTERNI POZIV - Ukoliko se metoda zove isključivo interno, onda se deklariše kao private (updatedisplay u klasi ClockDisplay) - Ukoliko se metoda deklariše kao private, ne mogu je pozivati objekti drugih klasa u notaciji sa tačkom (od spolja) - Privatne metode implementiraju funkcionalnosti koje su potrebne za rad drugih metoda, pa se na ovaj način skraćuje kod - Javne metode, kao i privatne se mogu pozivati interno ako je to potrebno 23/25

TEST ŠTA JE NA IZLAZU? int a; int b; a = 42; b = a; a = a + 1; System.out.println(b); Student a; Student b; a = new Student("Pera"); b = a; a.promeniime("mika"); System.out.println(b.dajIme()); 24/25

TEST ŠTA JE NA IZLAZU? b = a; Student a; Student b; int a; 42 int b; 42 25/25