programski jezik java - acs.uns.ac.rs · pdf fileprogramski jezik java osnovni koncepti...

Download Programski jezik Java - acs.uns.ac.rs · PDF fileProgramski jezik Java Osnovni koncepti programskog jezika Java Objektno programiranje – E2 Java

If you can't read please download the document

Upload: hoangthuan

Post on 05-Feb-2018

315 views

Category:

Documents


19 download

TRANSCRIPT

  • Programski jezik Java

    Osnovni koncepti programskog jezika Java

    Objektno programiranje E2

    Java

  • 2 / 59

    Sadraj

    Uvod Osnovni elementi Kompozicija i nasleivanje Rukovanje izuzecima Ulazno-izlazni podsistem Gotove klase

    Java

  • Uvod

    Java programski jezik razvijen 1995. godine James Gosling Sun Microsystems

    sada Oracle

    Sintaksa slina C/C++ jednostavniji objektni model

    3 / 59Java

  • Uvod

    Java virtual machine (JVM) interpretira Java bytecode

    zamena za mainski kod

    svi programi se kompajliraju u bytecode

    implementirane za skoro sve operativne sisteme mogu da se implementiraju direktno na hardveru omoguavaju nezavisnost od platforme

    4 / 59Java

  • Uvod

    Osobine Jave1. jednostavna, objektno orijentisana i lako prihvatljiva

    sintaksa2. robustna i sigurna3. nezavisna od platforme i portabilna4. visoke performanse izvravanja programa5. da se interpretira, poseduje niti i da je dinamika

    5 / 59Java

  • Uvod

    Performanse reputacija

    sporo izvravanje

    neoptimizovano koritenje memorije

    stvarnost od verzije 1.1

    ogromno poboljanje u performansama

    znatno manja razlika u odnosu na C/C++ pogotovo na dananjim raunarima

    6 / 59Java

  • Uvod

    Automatsko rukovanje memorijom garbage collector (GC)

    programer definie vreme kreiranja objekta

    GC sam unitava objekte kada vie nisu potrebni

    spreava curenje memorije u tradicionalnom smislu

    nepoznat trenutak pozivanja GC-a zagarantovano prilikom nedostatka memorije na heap-u

    skida teret rukovanja memorijom sa lea programera

    7 / 59Java

  • Uvod

    Java edicije Java Card

    aplikacije za smart kartice

    Java Platform, Micro Edition (Java ME ) aplikacije za okruenja sa ogranienim resursima

    Java Platform, Standard Edition (Java SE ) aplikacije za radne stanice

    Java Platform, Enterprise Edition (Java EE ) aplikacije u velikim distribuiranim sistemima

    Internet aplikacije

    8 / 59Java

  • 9 / 59

    Sadraj

    Uvod Osnovni elementi Kompozicija i nasleivanje Rukovanje izuzecima Ulazno-izlazni podsistem Gotove klase

    Java

  • Osnovni elementi

    Paket sadri grupu klasa, objedinjenu u istom prostoru

    imena svaka klasa pripada paketu

    neimenovani, podrazumevani paket (default package)

    U prvom redu klase, koji nije komentar, se definie paket kome pripada

    rezervisana re package

    package imePaketa;

    10 / 59Java

  • Osnovni elementi

    Paket ime paketa zajedno sa nazivom klase, daje njeno

    puno ime ukoliko se klasa TestNiz nalazi u paketu test, njeno puno

    ime e biti test.TestNiz

    rezervisana re import import test.TestNiz;

    import test.*;

    11 / 59Java

  • Osnovni elementi

    Paket ime paketa implicitno odreuje strukturu direktorijuma

    potovati pravila davanja imena kao i kod direktorijuma

    paketi obino poinju malim slovom

    paketi reprezentuju hijerarhiju svaki nivo hijerarhije se razdvaja takom

    rs.ac.uns.ftn.oop.figure

    viewer.elements controller.servlets

    primer kreiranja paketa

    12 / 59Java

  • Osnovni elementi

    Komentari //

    jednolinijski komentar

    /* */

    blok komentar

    /** */

    Javadoc komentar

    mehanizam za automatsko generisanje dokumentacije

    13 / 59Java

  • Osnovni elementi

    Klasa rezervisana re class

    poinje velikim poetnim slovom fajl u kome je smetena klasa

    mora imati isto ime kao i klasa case sensitive

    ekstenzija .java

    modifikator pristupa klasi public class ImeKlase { ... }

    modifikator pristupa elementa klase pie se uz svako polje i metodu

    14 / 59Java

  • Osnovni elementi

    Klasa jedna klasa = jedan fajl

    samo jedna public klasa moe postojati u jednom fajlu

    jedan fajl sadri kompletnu klasu

    sav kd se pie unutar klase sve je objekat

    osim primitivnih tipova

    byte, short, int, long, float, double, boolean, char primitivni tipovi poseduju wrappere

    pretvaraju ih u objekte

    15 / 59Java

  • Osnovni elementi

    Klasa ne postoje pokazivai

    svi objekti se prenose po adresi (referenci) svi primitivni tipovi se prenose po vrednosti

    ne postoji preklapanje operatora ne postoji destruktor

    GC obavlja posao

    16 / 59Java

  • Osnovni elementi

    Klasa izvriva

    ukoliko poseduje main metodu public static void main(String[] args) { ... }

    primer kreiranja klasezadatak 1

    U programskom jeziku Java napisati klase Krug i JSTrougao (jednakostranicni trougao). Osim potrebnih polja, klase treba da imaju metode koje racunaju obim, odnosno povrinu. Napisati test program koji testira funkcionalnost ovih klasa.

    17 / 59Java

  • Osnovni elementi

    Niz sekvenca objekata ili elemenata prostog tipa

    svi elementi su istog tipa pod jednim imenom za identifikaciju

    naziv niza

    operator indeksiranja [ ]

    referenca na niz int[] a

    int a[]

    18 / 59Java

  • Osnovni elementi

    Niz inicijalizacija niza

    int[] a = {1, 2, 3, 4, 5};

    samo na mestu definisanja niza

    int[] a = new int[5];

    bilo gde u kdu

    potrebno je dodatno zadati vrednosti elementima niza

    19 / 59Java

  • Osnovni elementi

    Niz length broj elemenata u nizu

    svaki niz poseduje ovaj lan

    moe se itati ali ne i menjati

    prvi element se nalazi na lokaciji 0 poslednji element je na lokaciji length 1

    RuntimeException ukoliko prekoraimo veliinu niza

    20 / 59Java

  • Osnovni elementi

    Niz java.util.Arrays.toString(niz)

    ispis niza

    primer nizovazadatak 2

    U programskom jeziku Java napisati klasu koja u okviru main metode kreira niz od 5 objekata klase Pravougaonik i pronalazi pravougaonik sa najveom povrinom

    21 / 59Java

  • 22 / 59

    Sadraj

    Uvod Osnovni elementi Kompozicija i nasleivanje Rukovanje izuzecima Ulazno-izlazni podsistem Gotove klase

    Java

  • Kompozicija i nasle ivanje

    Motivacija klasa bi trebalo da predstavlja korisnu jedinicu koda

    idealan sluaj

    potrebno je iskustvo i pronicljivost kako bi se napravio viekratno upotrebljiva klasa

    ponovno korienje kda je jedna od najveih prednosti OOP

    23 / 59Java

  • Kompozicija i nasle ivanje

    Kompozicija sastavljanje klasa od ve postojeih klasa

    esto se poredi sa relacijom ima auto ima motor

    vrlo je fleksibilna objekti lanovi su obino privatni

    nevidljivi drugim programerima

    promena unutranje strukture ne znai nunu promenu klijentske aplikacije

    24 / 59Java

  • Kompozicija i nasle ivanje

    Kompozicijaprimer kompozicijezadatak 3

    Napisati klasu PP3Prizma koja modeluje pravu pravilnu trostranu prizmu. Prizmu modelovati kao kompoziciju baze (objekat klase JSTrougao) i omotaa (objekat klase Pravougaonik). Klasa treba da sadri metode koje raunaju povrinu i zapreminu prizme. Napisati test program koji testira funkcionalnost klase.

    25 / 59Java

  • Kompozicija i nasle ivanje

    Nasleivanje nain kloniranja ve postojeih klasa

    izmena ili dodavanje sadraja

    nasleivanjem mi stvaramo novu klasu rezervisana re extends

    sadri sve lanove postojee klase i privatne lanove iako su oni skriveni i nedostupni

    kopira interfejs postojee klase sve poruke koje moemo poslati objektima postojee klase

    moemo poslati i objektima izvedene

    26 / 59Java

  • Kompozicija i nasle ivanje

    Nasleivanje jednostruko nasleivanje

    viestruko nasleivanje ne postoji u Javi mehanizam implementacije interfejsa

    redefinisanje metoda sve metode su virtuelne, nema posebne rezervisane rei

    tzv. late binding (dinamiko povezivanje koda)

    opciono @Override

    27 / 59Java

  • Kompozicija i nasle ivanje

    Nasleivanje polimorfizam

    prilikom nasleivanja i obrazovanja hijerarhije

    svaki izvedeni tip se moe posmatrati kao osnovni (kao neki od direktnih potomaka)

    obrnuto ne vai

    zabrana nasleivanja klase rezervisana re final

    28 / 59Java

  • Kompozicija i nasle ivanje

    Nasleivanje klasa java.lang.Object predak svih klasa

    napisanih u Javi implicitno nasleena tj svi objekti u javi imaju isti interfejs u

    osnovi, stoga su istog tipa odreena zajednika funkcionalnost tj znamo da moemo

    izvriti neke osnovne operacije clone()

    equals(Object obj)

    toString()

    hashCode()

    finalize()

    olakava rad GC-a jer uvek se zna kog je tipa klasa

    29 / 59Java

  • Kompozicija i nasle ivanje

    Nasleivanje apstraktna klasa

    abstract rezervisana re

    ne moe da se instancira moe da ima apstraktne metode

    ista rezervisana re kao i za apstraktnu klasu

    obino se prave za potrebe definisanja hijerarhije

    apstraktne metode mogu biti definisane iskljuivo u apstraktnoj klasi

    30 / 59Java

  • Kompozicija i nasle ivanje

    Nasleivanjeprimer nasleivanjazadatak 4

    Napisati apstraktnu klasu GeometrijskoTelo sa apstraktnim metodama za izraunavanje povrine, odnosno zapremine. Napisati klasu Kvadar koja nasleuje klasu GeometrijskoTelo i redefinie potrebne metode. Napisati klasu Kocka koja nasleuje klasu Kvadar.

    31 / 59Java

  • Kompozicija i nasle ivanje

    Nasleivanje interfejsi

    interface kljuna re

    unapreuju koncept apstrakcije implementiraju se od strane klasa

    nasleuju se ako elimo da pravimo novi interfejs

    jedna klasa m