PROGRAMIRANJE. Amir Hajdar

Similar documents
Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

VRIJEDNOSTI ATRIBUTA

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

Java. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Programiranje III razred

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Objektno orjentirano programiranje

Vežbe - XII nedelja PHP Doc

Prva recenica. Druga recenica.

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

x y = z Zadaci - procedure

Classes. Classes. Classes. Class Circle with methods. Class Circle with fields. Classes and Objects in Java. Introduce to classes and objects in Java.

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

Računarske osnove Interneta (SI3ROI, IR4ROI)

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Strukture Klase i OOP

Java IMI PMF KG OOP 09 AKM. Objekti i klase

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Objektno orijentirano programiranje. Auditorne vježbe

VHDLPrimeri Poglavlje5.doc

Programski jezik JAVA PREDAVANJE

Sberbank Business Online na Mozilla FireFox

PROGRAMIRANJE. Objekt-orjentirano programiranje (OOP)

C++ minitutorial. Osnovni elementi i koncepti programskog jezika C++ uz primere

Variable Neighborhood Descent - VND (Metoda promenljivog spusta)

VDSL modem Zyxel VMG1312-B10A/B30A

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

Kada se pokrene forma da bude plave boje. Dugme Crtaj krugove da iscrtava slučajan broj N krugova istog poluprečnika r (1/4 visine forme) čiji su

public static void main(string []args) { System.out.println("Hello World"); /* prints Hello World */

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

NEKE OBJEKTNE OSOBINE ORACLE PL/SQL 9i JEZIKA (usporedba sa OOPL jezicima C++, Eiffel i Java)

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

6. SWITCH IZRAZ I PETLJE

Visoka tehnička škola Niš

JavaScript i HTML DOM

Računarska grafika-vežbe. 3 JavaFX animacija i interakcija

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

Broj Pitanje Bodovi 1. Navedi osnovne razloge uvođenja objektno orjentiranog pristupa? 2. Što je klasa u programskom jeziku?

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

Algoritmi i programiranje

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Nasleđivanje i izvedene klase u jeziku C++

modifier returnvaluetype methodname(list of parameters) { // Method body; }

BAZE PODATAKA. SQL Opis podataka. Neđeljko Lekić Irena Orović

Numeričke metode i praktikum

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Aspektno programiranje u Javi. AOP + AspectJ

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

16. Sigurnije programiranje

Računarski praktikum 4

Zadatci Small Basic za 7. Razred ( programa)

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta

BBM 102 Introduction to Programming II Spring 2017

PARALELNO PROGRAMIRANJE

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Cjenovnik usluga informacionog društva

Projektovanje Namenskih Računarskih Struktura 1. Sistemi zasnovani na Androidu

Scheme je funkcionalni jezik moderna varijanta jezika LISP-a, s dodacima iz Algola (lokalni doseg identifikatora).

4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7

Jezik Baze Podataka SQL. Jennifer Widom

IBM Endpoint Manager. Maja Kehić. security

GUI - događaji (Events) i izuzeci. Bojan Tomić

VB komande. Programiranje 1

Objektno orijentirano programiranje

CJENOVNIK OGLAŠAVANJA ZA ROTIRAJUĆE BANNERE NA NASLOVNICI

Uvod u relacione baze podataka

Dežurni nastavnik: Kolokvijum traje 1.5 sat, prvih sat vremena nije dozvoljeno napuštanje kolokvijuma. Upotreba literature nije dozvoljena.

Lekcija 09 Sakrivanje podataka, statički članovi, preklapanje funkcija i operatora. Miljan Milošević

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

Cascading Style Sheets (CSS)

OSNOVE PROGRAMIRANJA

NIZOVI.

WEB PROGRAMIRANJE PHP

/*#include <iostream> // Prvi zadatak sa integralnomg ispita

Distribuirani procesi Vježbe 01 Uvod i. threadovi

Java i Internet programiranje

Uputstvo za korišćenje logrotate funkcije

Marko Milošević.

VIŠESTRUKO NASLJEĐIVANJE - SAN ILI JAVA 8?

Programiranje III razred

Programske paradigme Funkcionalna paradigma

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

ZAVOD ZA AUTOMATIKU I PROCESNO RAČUNARSTVO FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SVEUČILIŠTE U ZAGREBU OO SIMSCRIPT. Dinko Korunić

Iskočni okviri (eng. popup boxes)

DETERMINATION OF THE CHARACTERISTIC PARAMETERS IN THE GENERAL COLLINEAR SPACES IN THE GENERAL CASE UDC (045)=20

Informacija, logika i jezici. M. Bagić Babac, M. Kušek. Skripta: Jezici za označavanje sadržaja. Preddiplomski studij. Računarstvo

Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE)

Transcription:

PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This

Klase i objekti u Javi Java je potpun OO jezik za programiranje i sve je bazirano na klasama Sve što želimo uraditi mora imati definisano svoje stanje i način ponašanja Objekti se kreiraju od klasa koje definišu logičku grupu podataka i metoda koje se mogu vršiti nad podacima Klasa: Krug Krug centar poluprecnik obim() povrsina()

Klase (Krug) class ImeKlase [extends ImeSuperKlase] { [atributi] [metode] public class Krug { // implementacija Krug klase Atributi ( fields ) public class Krug { public double x, y; //koordinate centra public double r; //poluprecnik Atributi su instance varijable

Metode Klase bez metoda nemaju veliku svrhu nemogu vršiti interakciju sa sistemom Metode su definisane odmah nakon definisanih atributa public class Krug{ public double x, y; // centar kruga public double r; // poluprecnik kruga public double obim(){ return 2*3.14*r; public double povrsina(){ return (3.14*r^2); Primjena klase Krug Specifikacijom klase Krug, definisiali smo novi data tip ( data abstraction ) i možemo kreirati objekte i koristiti ih u aplikaciji Definicija se vrši preko: Krug KrugA; Krug KrugB; KrugA i KrugB još uvijek ne postoje ( null reference )

Primjena klase Krug KrugA i KrugB nastaju kada ih kreiramo uz pomoć ključne riječi new KrugA=new Krug(); KrugB=new Krug(); 1 2 Primjena klase Krug Garbage collection: KrugA = new Krug; KrugB = new Krug; KrugA = KrugB; KrugA KrugB 1 2 Krug 1 će biti naknadno uništen putem mehanizma garbage collection jer se više ne koristi

Pristupanje atributima i metodama ImeObjekta.ImeVarijable; ImeObjekta.ImeMetode(parametri); Krug KrugA = new Krug(); KrugA.x = 1.0; KrugA.y = 0.0; KrugA.r = 2.0; Pristupanje atributima i metodama Zadatak: Izračunati obim kružnice i povrsinu kruga poluprečnika 2.... Krug KrugA = new Krug(); double povrsinakruga; double obimkruga;... KrugA.r = 2.0; povrsinakruga = KrugA.povrsina(); obimkruga = KrugA.obim();...

Klasa Krug Kako bi zaštitili atribute klase, najčešće koristimo metode da mijenjamo vrijednosti atributa, kao i da ih upotrebljavamo (SET i GET metode) Upotrebljavamo SET i GET metode za Krug klasu: KrugA.setX(1.0); KrugA.getR(); Kada kreiramo objekte, inicijalna vrijednost se treba pretpostaviti da je nepoznata, tj. trebamo inicijalizirati objekt Klasa Krug metode SET i GET public class Krug{ public double x,y,r; public double setx(double inx){x = inx; public double sety(double iny){y = iny; public double setr(double inr){r = inr; public double getx(){return x; public double gety(){return Y; public double getr(){return r;

Klasa Krug Krug x:double y:double r:double getx():double gety():double getr():double setx(double) sety(double) setr(double) obim():double povrsina():double Klasa Krug public class Krug { public double x,y,r; public double setx(double inx){x = inx; public double sety(double iny){y = iny; public double setr(double inr){r = inr; public double getx(){return x; public double gety(){return Y; public double getr(){return r; public double obim(){ return 2*3.14*r; public double povrsina(){ return (3.14*r^2);

Klasa Krug public static void main(string [] argc){ Krug KrugA = new Krug(); double povrsinakruga; double obimkruga; KrugA.setX(1.0); KrugA.setY(1.5); KrugA.setR(2.0); obimkruga = KrugA.obim(); povrsinakruga = KrugA.povrsina(); System.out.println( Obim kruga poluprecnika + KrugA.getR() + = + obimkruga); System.out.println( Povrsina kruga poluprecnika + KrugA.getR() + = + povrsinakruga); Inicijaliziranje objekata Objekte je često potrebno inicijalizirati i to vršimo preko konstruktora ( constructors ) Konstruktor je specijalna metoda koja se automatski poziva kod kreiranja objekata Konstruktor ima isto ime kao i klasa i ne vraća vrijednost koristeći return komandu Klasa može imati jedan ili više konstruktora ali se moraju razlikovati po broju ili tipu parametara

Konstruktor - primjer public class Krug{ public double x,y,r; public Krug(){ x=0.0; y=0.0; r=1.0; public Krug(double inx, double iny){ x = inx; y = iny; public Krug(double inx, double iny, double inr){ x = inx; y = iny; r = inr; Krug KrugA = new Krug(1.0, 1.5, 2.0); Krug KrugB = new Krug(1.0, 1.3); Krug KrugC = new Krug(); Konstruktor - primjer Krug x:double y:double r:double Krug() Krug(double, double) Krug(double, double, double) getx():double gety():double getr():double setx(double) sety(double) setr(double) obim():double povrsina():double

Polymorphism Polymorphism definisanje metoda sa istim imenom a različitim (tipovima) argumentima Npr. Konstruktori Koncept poznat kao method overloading Logika je različita jer se koriste različiti argumenti Primjer: Napisati program koji nalazi maksimum 2 broja ili teksta (string-a). Napisati 2 metode za svaku od operacija. Polymorphism - primjer class Uporedi{ public static int max(int a, int b){ if(a > b) return a; else return b; public static String max(string a, String b){ if(a.compareto(b) > 0) return a; else return b;

Polymorphism - primjer public static void main(string args[]){ String s1 = Kompjuter ; String s2 = Telefon ; int a = 10; int b = 20; System.out.println(max(a, b)); System.out.println(max(s1, s2)); Izvršenje: 20 Telefon This ključna riječ This se može koristiti u slučaju da parametri funkcije imaju isto ime kao i atributi klase Primjer: public class Krug{ public double x,y,r; public Krug(double x, double y){ this.x = x; this.y = y; public Krug(double x, double y, double r){ this.x = x; this.y = y; this.r = r;

Statičke varijable Static varijable se (najčešće) kreiraju u slučaju potrebe za zajedničkom varijablom za sve kreirane objekte Statičkim varijablama se pristupa: ImeKlase.ImeVarijable Primjer: public class Krug{ public double x,y,r; public static int brojkrugova=0; public Krug(double x, double y, double r){ this.x = x; this.y = y; this.r = r; brojkrugova++; public static void main(string args[]){ Krug KrugA = new Krug(1.2, 1.5, 3.0); Krug KrugB = new Krug(1.0, 1.3, 2.0); System.out.println(Krug.brojKrugova) //broj krugova je 2! Statičke metode Static metode (najčešće) grupišu metode koje ne zavise od varijabli klase (eg. Matematičke funkcije) Statičkim metodama se pristupa: ImeKlase.ImeMetode([paramteri]) Primjer: Math.sin(ugao) Ograničenja: Statička metoda može pozivati samo statičku metodu Statička metoda ima pristup samo statičkim varijablama Statička metoda ne može koristiti ključne riječi this i super