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

Similar documents
CSCE3193: Programming Paradigms

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

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

PROGRAMIRANJE. Amir Hajdar

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

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

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Vežbe - XII nedelja PHP Doc

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

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.

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

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

Objektno orjentirano programiranje

VB komande. Programiranje 1

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

VRIJEDNOSTI ATRIBUTA

Računarske osnove Interneta (SI3ROI, IR4ROI)

Programiranje III razred

VDSL modem Zyxel VMG1312-B10A/B30A

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

Nasleđivanje i izvedene klase u jeziku C++

Programski jezik JAVA PREDAVANJE

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

Izrada VI laboratorijske vježbe

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

Uvod u relacione baze podataka

Uputstvo za korišćenje logrotate funkcije

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

Prva recenica. Druga recenica.

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

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

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

Java IMI PMF KG OOP 09 AKM. Izuzeci

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

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

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

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

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

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

1. Java is a... language. A. moderate typed B. strogly typed C. weakly typed D. none of these. Answer: B

VHDLPrimeri Poglavlje5.doc

Full file at

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

F I N A L E X A M I N A T I O N

CHETTINAD COLLEGE OF ENGINEERING & TECHNOLOGY JAVA

Sberbank Business Online na Mozilla FireFox

Visoka tehnička škola Niš

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

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

Aspektno programiranje u Javi. AOP + AspectJ

11. Iznimke i tokovi (exceptions and streams)

FDK API Manual for Java. FDK API Manual for Java. June FN Pricing

PROGRAMIRANJE. Objekt-orjentirano programiranje (OOP)

RAČUNARSKI PRAKTIKUM II

TEHNIKA I INFORMATIKA U OBRAZOVANJU

NIZOVI.

Accurate study guides, High passing rate! Testhorse provides update free of charge in one year!

16. Sigurnije programiranje

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

Crash Course in Java. Why Java? Java notes for C++ programmers. Network Programming in Java is very different than in C/C++

Objektno orijentirano programiranje

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

Desktop IKONE START MENI. TASK BAR traka zadataka RADNA POVRŠINA

John Cowell. Essential Java Fast. How to write object oriented software for the Internet. with 64 figures. Jp Springer

Serijalizacija u.net okruženju

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

Naredbe za kontrolu toka

OBJECT ORIENTED PROGRAMMING TYm. Allotted : 3 Hours Full Marks: 70

CAD u građevinarstvu. v.prof.dr. Samir Lemeš. Predavanja za predmet CAD u građevinarstvu. Politehnički fakultet Univerziteta u Zenici, 2018.

S.E. Sem. III [CMPN] Object Oriented Programming Methodology

More on Exception Handling

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

OSNOVE PROGRAMIRANJA

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

Java IMI PMF KG OOP 09 AKM. Objekti i klase

Class Libraries and Packages

CS 113 PRACTICE FINAL

1. An operation in which an overall value is computed incrementally, often using a loop.

EXCEPTIONS. Objectives. The try and catch Statements. Define exceptions. Use try, catch and finally statements. Describe exception categories

CS 61B Data Structures and Programming Methodology. July 3, 2008 David Sun

Full file at Chapter 2 - Inheritance and Exception Handling

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

1.0 Libraries Technical Overview

CS 11 java track: lecture 3

Programiranje III razred

EXCEPTIONS. Java Programming

KURSORI BAZE PODATAKA U ORACLE 11g

Deo J. VBA Objects, Properties, Methods, Events,... PROJEKTOVANJE KLASNIH MODULA... Objekti Svojstva. Metode. Dogadjaji KLASE.

Language Features. 1. The primitive types int, double, and boolean are part of the AP

Numbers Implicit This Static Methods and Fields Packages Access Modifiers Main Overloading Exceptions Etc.

UE 2I002 (ex LI230) : éléments de programmation par objets avec Java TD10 - Exceptions

I pledge by honor that I will not discuss this exam with anyone until my instructor reviews the exam in the class.

Marko Milošević.

The Sun s Java Certification and its Possible Role in the Joint Teaching Material

... ; ako je a n parno. ; ako je a n neparno

Third Year Diploma Courses in Computer Science & Engineering, Computer Engineering, Computer Technology & Information Technology Branch.

Programske paradigme Funkcionalna paradigma

CS 335 Lecture 02 Java Programming

Introduction to Computer Science I

Numeričke metode i praktikum

Transcription:

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

Packages API Application Programmer Interface Sve klase ponuđene u sklopu Java jezika, uključujući i kompajler (npr. Math klasa, System, itd.) Klase se nalaze u raznim direktorijima Klase koje se nalaze u svakoj direktoriji pojedinačno formiraju package Ime package -a se pravi spajanjem imena direktorije počeviši od određene root direktorije Packages primjeri Package Sadržaj java.applet Klase koje implementiraju applet-e java.awt Klase sa grafiku, prozore i GUI java.awt.event Klase koje podržavaju AWT* event handling java.awt.image Klase koje podržavaju rad sa slikama java.io Klase koje podržavaju rad sa input i outputima java.lang Osnovne komande poput Math klase (uvijek uključene) java.net Klase za rad u mrežnom okruženju java.util Razne korisne klase poput Date klase *Abstract Window Toolkit

Korištenje Packages Korištenje kroz direktan poziv package -a: x = java.lang.math.sqrt(3); Korištenje kroz import : //sve klase u paketu import package.name.*; //pojedinačna klasa u paketu import package.name.class_name; Korištenje Packages java.util.date d = new java.util.date(); java.awt.point p = new java.awt.point(1,2); java.awt.button b = new java.awt.button(); ili import java.util.date; import java.awt.*; Date d = new Date(); Point p = new Point(1,2); Button b = new Button();

Kreiranje sopstvenih Packages Svaka klasa mora biti u odgovarajućoj datoteci u direktoriji koja je propisno imenovana Prva linija koda mora biti: package ime_package; Nekoliko paketa mogu biti istoj direktoriji Klase u različitim direktorijama nemogu biti u istom paketu Java reference Manipulacija objektima se vrši preko koncepta referenci Npr: class Lik { public int x; y public int y; public Lik(int x, int y){ x this.x = x; this.y = y; public int getpovrsinu() { return x * y public String tostring() { return ("duzina= " + x + ", sirina= " + y); // Lik

Java reference (jednakost) Lik b1 = new Lik(3, 4); Lik b2 = new Lik(3, 4); if(b1 == b2) { System.out.println("Likovi su jednaki"); else { System.out.println("Naravno da likovi nisu jednaki!"); 4 b1 4 b2 Odgovor? 3 3 Java reference (jednakost) Rješenje: Potrebna nam je metoda koja će provjeriti da li su im osobine jednake. public boolean jednako(lik b) { if(x == b.x && y == b.y) return true; else return false;

Java reference (jednakost) Rješenje: Lik b1 = new Lik(3, 4); Lik b2 = new Lik(3, 4); if(b1.jednako(b2)) System.out.println("Likovi su jednaki"); else System.out.println("Naravno da likovi nisu jednaki!"); Java reference (kopiranje) Lik b1 = new Lik(3, 4); Lik b2 = new Lik(5, 8); b2 = b1; Šta se desilo sa likom b2? 4 b1 8 b2 4 b1 3 5 b2 3

Java reference (kopiranje) 2 načina kopiranje: 1. način: Lik b1 = new Lik(3, 4); Lik b2 = new Lik(b1.x, b1.y); 2. način: public Lik kopija(){ return new Lik(x, y); Lik b2 = b1.kopija(); Inheritance (nasljeđivanje) Inheritance omogućuje: Prilagođavanje klasa sa specifičnu upotrebu bez potrebe da se osnovna (superclass) redefiniše Modificirana klasa (subclass) može dodati metode i redefinisati prethodno definisane Subclass može dodati varijable ali ne može promijeniti već definisane

Inheritance (nasljeđivanje) Primjer: Klasa C je subclass-a klase B: class C extends class B{... Subclass-a je specijalizacija superclass-e Superclass-a je generalizacija subclass-e Inheritance (nasljeđivanje) Pravila: Privatnim varijablama i metodama ne možemo pristupiti u subclass-ama Javne (public) varijable i metode su dostupne u subclass-ama Varijablama i metodama se može pristupiti samo ako su u istom package-u kao i klasa Varijablama i metodama definisanim kao protected mogu pristupiti samo subclass-e i nijedna druga klasa

Inheritance (nasljeđivanje) Overriding : Subclass-a ima metodu istog imena ali različitu implementaciju, a broj i tip parametara se nije primjenio Overloading : Subclass-a (ili metoda u istoj klasi) ima metodu istog imena ali je broj parametara ili tip parametara ili oboje promjenjeno Inheritance (nasljeđivanje)

Inheritance (nasljeđivanje) Pravilna upotreba: Clock NoviSat; NoviSat = new PreciseClock(3,45,30); Nepravilna upotreba: PreciseClock NoviSat; NoviSat = new Clock(3,40); Razlog: Clock objekat ne može izvršiti sve zahtjeve PreciseClock klase Inheritance (nasljeđivanje) Konstruktori (superclass i subclass) Generalno pravilo: prvo se poziva konstruktor superclass-e, a zatim subclass-e Ako superclass-a nema konstruktor bez argumenata, subclass-a mora pozvati odgovarajući konstruktor iz superclass-e Npr. class C extends B { public C( ) { //mora biti prva komanda u subclass konstruktoru!!! super(b s konstruktor parametri);

Exceptions Exceptions (izuzetak) predstavaljaju slučajeve koje se nebi smjeli desiti (npr. dijeljenje s 0-om, pristup elementu van granica niza) Neki slučajevi se nemogu izbjeći (npr. nepostojanje datoteke, nestanak mrežne konekcije, pogrešan unos podataka, itd.) Mehanizam: Komanda throw e signalizira da se exception desila i e predstavlja exception objekat Komanda try/catch omogućava metodi da uhvati ( catch ) exception objekt e i spriječi dalji problem Exceptions try/catch Primjer: void m (){ try { implementacija m metode catch (ArrayIndexOutOfBoundsException ae) { //kod koji ce rijesiti problem Metoda m će se izvršiti osim ako se exception pojavi koji signalizira da se pristupilo van dimenzije niza!

Exceptions finally Kada se pojavi exception, kontrolu preuzima catch kod Ako u kodu postoji finally implementirano, tada se ono na kraju izvršava (čišćenje urađenog) Npr.: void m() { try { open window catch (Exception e) { finally { close window Rijetko se koristi jer hvata sve moguće exceptions! Exceptions Primjer: public class A { public static void main(string[] args) { int x=integer.parseint(args[0]); System.out.println("x= " +x); Izvršenje: java A.class 1 x= 1

Exceptions Primjer (nastavak): Izvršenje: java A.class test Exception in thread "main" java.lang.numberformatexception: test at java.lang.integer.parseint(integer.java:414) at java.lang.integer.parseint(integer.java:463) at A.main(A.java:5) Exceptions Primjer: public class A { public static void main(string[] args) { try{ /* u try kodu dolazi ono što pokušavamo izvršiti i ako uspijemo idemo na finally blok, a ako ne, onda na catch kod */ int x=integer.parseint(args[0]); System.out.println("x= " +x); //kraj try bloka

Exceptions catch (NumberFormatException e) { System.out.println("Izuzetak ispisan na standardni output: " + e.getmessage()); System.err.println("Izuzetak ispisan na error output: " + e.getmessage()); e.printstacktrace(); //kraj catch bloka Exceptions finally{/* posljednje čišćenje prije prenosa kontrole toka programa na drugi dio programa */ System.out.println ("Ovo se uvijek izvrsi!"); //kraj finally bloka //nastavak main metode System.out.println("Program nastavlja dalje."); int x=integer.parseint("1234"); System.out.println("x= " +x); //kraj main metode //kraj A klase