1 / 26

Paketi

Paketi. Paketi. Način grupisanja međusobno vezanih klasa i interfejsa Način organizovanja klasa u grupe Paketi sadrže klase povezane zajedničkom svrhom. Paketi. Paketi su korisni iz sledećih razloga: Omogućavaju organizaciju klasa u jedinice (units) Smanjuju problem konflikta naziva

morgan
Download Presentation

Paketi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Paketi

  2. Paketi • Način grupisanja međusobno vezanih klasa i interfejsa • Način organizovanja klasa u grupe • Paketi sadrže klase povezane zajedničkom svrhom

  3. Paketi • Paketi su korisni iz sledećih razloga: • Omogućavaju organizaciju klasa u jedinice (units) • Smanjuju problem konflikta naziva • Omogućavaju bolju zaštitu • Mogu se koristiti za identifikaciju klasa

  4. Paketi • Paketi mogu sadržati druge pakete • Svaki nivo predstavlja malo određenije grupisanje klasa • Biblioteka klasa u Javi sadržana je u paketu nazvanom java • Sledeći nivo uključuje io, net, util i awt • Java.lang

  5. Korišćenje paketa • Mehanizmi korišćenja klase koja je u nekom paketu: • Klase iz java.lang paketa su automatski dostupne • Korišćenje klase iz drugog paketa • Korišćenje klasa iz uvezenih paketa (komanda import) • Bezimeni, default paket

  6. Korišćenje paketa • Da bi se pozvala klasa iz drugog paketa mora se koristiti pun naziv klase naziv_paketa.naziv_klase npr:java.awt.Font f = newjava.awt.Font(); • Korisno je za klase koje se koriste jednom ili dva puta u celom programu

  7. Korišćenje paketa • Komandom import se uvoze klase iz paketa • Uvoz individualne klase (import java.awt.Font) • Uvoz celog paketa klasa (import java.awt.*) • Neophodno je navesti svaki nivo hijerarhije (import java.awt.image.*) • import se nalazi na vrhu datoteke pre definicije klase

  8. Konflikti naziva • Nakon uvoza klase ona se može koristiti bez naziva paketa import java.awt.* //kod Font f = new Font(); • Slučaj više klasa sa istim nazivom iz različitih paketa import java.awt.*; (sadrži klasu Font) import fon.graphics.*; (sadrži klasu Font)

  9. Konflikti naziva • Java prevodilac neće prevesti sledeći kod Fontfont = newFont(); • Rešenje je u eksplicitnom navođenju punog naziva klase java.awt.FontjFont = newjava.awt.Font(); fon.graphics.FontfFont= newfon.graphics.Font();

  10. Kreiranje paketa • Odabiranje naziva paketa java.lang.String • Kreiranje strukture foldera IMT.alati.alatiZaKopanje • Dodavanje klase u paket package IMT.alati.alatiZaKopanje

  11. Primer package kolekcija; publicclass Lista { private ElementListe koren; publicvoid Dodaj(Object o) { koren = new ElementListe(o, koren); } //kod }

  12. Primer package kolekcija; class ElementListe { privateObject sadrzaj; private ElementListe sledeci; ElementListe (Object o, ElementListe el){ sadrzaj = o; sledeci = el; } //kod }

  13. Struktura Java programa

  14. IKlijent.java package klijent; publicinterface IKlijent { String PrikaziKlijenta(); }

  15. FizickoLice.java package klijent; publicclass FizickoLice implements IKlijent { private String mIme; private String mPrezime; public FizickoLice() {} public FizickoLice(String aIme, String aPrezime){ mIme = aIme; mPrezime = aPrezime; } public String PrikaziKlijenta() { return mIme + " " + mPrezime; } }

  16. PravnoLice.java package klijent; publicclass PravnoLice implements IKlijent { private String mNaziv; public PravnoLice(){} public PravnoLice(String aNaziv){ mNaziv = aNaziv; } public String PrikaziKlijenta() { return mNaziv; } }

  17. Racun.java package racun; import klijent.*; publicabstractclass Racun { protecteddouble mStanje; protected IKlijent mKlijent; public Racun(){} public Racun(IKlijent aKlijent) { mKlijent = aKlijent; } public Racun(IKlijent aKlijent, doubleaStanje){ mKlijent = aKlijent; mStanje = aStanje; }

  18. publicdouble Uplata(doubleaIznos){ mStanje += aIznos; return mStanje; } publicdouble Stanje() { return mStanje; } publicabstractdouble Isplata(double aIznos); public String PrikaziKlijenta() { return mKlijent.PrikaziKlijenta(); } }

  19. TekuciRacun.java package racun; import klijent.*; publicclass TekuciRacun extends Racun { privatedouble mDozvoljeniMinus; public TekuciRacun() {} public TekuciRacun(IKlijent aKlijent) { super(aKlijent); } public TekuciRacun(IKlijent aKlijent, doubleaStanje) { super(aKlijent, aStanje); } public TekuciRacun(IKlijent aKlijent, doubleaStanje, doubleaDozvoljeniMinus){ super(aKlijent, aStanje); mDozvoljeniMinus = aDozvoljeniMinus; }

  20. publicdoubleIsplata(doubleaIznos) throws SecurityException { if (mStanje - aIznos < mDozvoljeniMinus) thrownew SecurityException("Prekoracen je dozvoljeni minus."); mStanje -= aIznos; return mStanje; } }

  21. ZiroRacun.java package racun; import klijent.*; publicclass ZiroRacun extends Racun{ public ZiroRacun(){} public ZiroRacun(IKlijent pKlijent){ super(pKlijent);} public ZiroRacun(IKlijent pKlijent, double pStanje) { super(pKlijent, pStanje); }

  22. publicdoubleIsplata(double pIznos) throws SecurityException{ if (mStanje < pIznos) thrownew SecurityException("Nema dovoljno sredstava na racunu."); mStanje -= pIznos; return mStanje; } }

  23. MainClass.java import klijent.FizickoLice; import klijent.IKlijent; import klijent.PravnoLice; import racun.*; publicclass MainClass { publicstaticvoid main(String[] args) { IKlijent pravLice = new PravnoLice("FON"); Racun racunPravLica = new ZiroRacun(pravLice, 1000); System.out.println("Klijent: " + racunPravLica.PrikaziKlijenta()); System.out.println("Stanje: " + racunPravLica.Stanje());

  24. System.out.println("\nUplata: 500"); racunPravLica.Uplata(500); System.out.println("Stanje posle uplate: " + racunPravLica.Stanje()); try{ System.out.println("\nIsplata: 1200"); racunPravLica.Isplata(1200); System.out.println("Stanje posle isplate: " + racunPravLica.Stanje()); } catch(Exception e){ System.out.println(e.getMessage()); }

  25. IKlijent fizLice = new FizickoLice(“Nikola", “Krivokuca"); Racun racunFizLica = new TekuciRacun(fizLice, 100, 50); System.out.println("Klijent: " + racunFizLica.PrikaziKlijenta()); System.out.println("Stanje: " + racunFizLica.Stanje()); System.out.println("\nUplata: 500"); racunFizLica.Uplata(500); System.out.println("Stanje posle uplate: " + racunFizLica.Stanje()); try{ System.out.println("\nIsplata: 1000"); racunFizLica.Isplata(1000); System.out.println("Stanje posle isplate: " + racunFizLica.Stanje()); } catch(Exception e){System.out.println(e.getMessage());} }}

  26. Izlaz Klijent: FON Stanje: 1000.0 Uplata: 500 Stanje posle uplate: 1500.0 Isplata: 1200 Stanje posle isplate: 300.0 Klijent: Nikola Krivokuca Stanje: 100.0 Uplata: 500 Stanje posle uplate: 600.0 Isplata: 1000 Prekoracen je dozvoljeni minus.

More Related