190 likes | 349 Views
PROGRAMSKI JEZIK JAVA. JAR. Op šti oblik komande za kreiranje JAR fajla je: jar cf jar-file input-file(s) Gdje: c – ukazuje na to da želimo kreirati JAR fajl f – ukazuje na to da želimo da rezultat izvršenja komande smjestimo u neki fajl, a ne na standardni izlaz
E N D
JAR • Opšti oblik komande za kreiranje JAR fajla je: • jar cf jar-file input-file(s) • Gdje: • c – ukazuje na to da želimo kreirati JAR fajl • f – ukazuje na to da želimo da rezultat izvršenja komande smjestimo u neki fajl, a ne na standardni izlaz • jar-file– ime koje želimo dodijeliti izlaznom fajlu (sa ekstenzijom .jar) • input-file(s) – je lista jednog ili više fajlova ili foldera odvojenih space-om, koje želimo smjestiti u naš JAR fajl • Ova komanda će kreirati kompresovani JAR fajl i smještati ga u trenutni direktorijum. Komanda će takođe generisati default-ni manifest file za JAR arhivu.
Dokumentacioni komentari - javadoc • Počinju sekvencom /**, a završavaju sa */ • Omogućavaju da informacije o programu ugradimo u sam program • Pomoću komande javadoc vrši se prikupljanje informacija o programu i smještanje istih u HTML fajl • Oznake za dokumentaciju koje počinju sa @ nazivaju se samostalne (stand-alone) i moraju stajati u zasebnom redu, npr. @author Dijana • Oznake koje počinju vitičastim zagradama nazivaju se unutrašnje (in-line) i mogu se stavljati unutar većih opisa, npr. {@code}
Dokumentacioni komentari – javadoc (2) • Opšti oblik komande javadoc: • javadoc[options] [packagenames] [sourcefiles] [@files] • Primjer: Generisati dokumentaciju za klasu Matrix i smjestiti je u direktorijum matrica. • javadoc –d matrica Matrix.java Matrix.class • Opcija –d se koristi za kreiranje direktorijuma u kom će dokumentacija biti smještena
Čitanje podataka sa konzole • Čitanje podataka sa konzole u programskom jeziku Java vrši se iz objekta System.in u kombinaciji sa odgovarajućim klasama reader-a (najčešće se koriste baferovani ulazni tok – BufferedReader sa svojom potklasom – InputStreamReader) • BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); • Prilikom korištenja Reader-a potrebno je importovati paket IO, tj. • import java.io.*; • Kao i uhvatiti izuzetak IOException.
Primjer import java.io.*; class CitanjeSaKonzole{ public static void main(String args[]) throws IOException{ char c; int i=1; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Unosite znakove. Znak 'q' je za kraj!"); do{ c=(char) br.read(); System.out.println("Znak"+(i++)+" -> "+c); }while(c!='q'); } }
Čitanje podataka sa konzole (2) • Jednostavnije čitanje podataka sa konzole može se obaviti korištenjem klase Scanner • Konstruktor klase Scanner koji se koristi u ovu svrhu ima opšti oblik: • Scanner(InputStream is) Kojim se pravi objekat tipa Scanner koji tok is koristi kao izvor podataka. • Sljedeći iskaz pravi objekat tipa Scanner koji podatke čita sa standardnog ulaza, što je podrazumijevano tastatura: Scanner konzUlaz=new Scanner(System.in); Napomena: System.in je objekat tipa InputStream.
Čitanje podataka sa konzole (3) • Prilikom upotrebe klase Scanner po pravilu se treba pridržavati sljedeće procedure: • Pozivom jedne od hasNextX metoda klase Scanner, gdje X predstavlja tip željenih podataka, utvrdi se da li je određeni tip ulaza dostupan. • Ukoliko je ulaz dostupan, pročita se tako što se pozove pozivom jedne od nextX metoda klase Scanner. • Postupak se ponavlja sve dok se ne učitaju svi podaci sa ulaza. • Npr. //… while(konzUlaz.hasNextInt()){ Int i=konzUlaz.nextInt(); //… }
Primjer import java.util.*; class SrednjaVrijednost{ public static void main(String args[]){ Scanner konzUlaz=new Scanner(System.in); int brojac=0; double zbir=0.0; System.out.println("Unesite brojeve ciju srednju vrijednost zelite izracunati!"); while(konzUlaz.hasNextDouble()){ zbir+=konzUlaz.nextDouble(); brojac++; } System.out.println("Srednja vrijednost iznosi: "+ zbir/brojac); } }
Interfejsi • Ključna riječ interface u Javi koristi se za potpuno apstrahovanje načina pristupa klasi – tj. možemo reći klasi šta da radi, ali ne i kako. • Interfejsi nemaju promjenljive instanci, a njihove metode nemaju tijelo. • Klasa može implementirati više intefrejsa (ključna riječ implements). • Koriste se za implementaciju višestrukog nasljeđivanja. • Interfejsi se mogu proširiti, tj. jedan interfejs može da naslijedi drugi pomoću ključne riječi extends
Interfejsi (2) • Opšti oblik definicije interfejsa: pristup interface naziv{ tip imeMetode1(listaParametara); tip imeMetode1(listaParametara); final tip imePromjenljive1=vrijednost; final tip imePromjenljive1=vrijednost; } • Realizovanje interfejsa pristup class ImeKlase [extends Natklasa] [implements interface1[, interface2…]{ //tijelo klase }
Izuzeci (Exceptions) • Izuzetak predstavlja neuobičajeno stanje koje se može javiti u toku izvršavanja programa, tj. greška pri izvršavanju. • Izuzetak je u Javi objekat koji opisuje određeno vanredno stanje koje nastaje u dijelu koda. • Obrada izuzetaka u Javi sprovodi se pomoću 5 rezervisanih riječi: try, catch, throw, throws i finally. • Primjer – obrada izuzetka pri dijeljenju nulom. • Prilikom definisanja sopstvenih izuzetaka nasljeđuje se klasa Exception (paket java.lang). • Pisanje sopstvenih izuzetaka i obrada istih predstavlja zgodan način izvještavanja o greškama nastalim u toku izvršavanja programa.
Pravljenje sopstvenih izuzetaka class MojIzuzetak extends Exception{ private int podatak; MojIzuzetak(int a){ podatak=a; } public String toString(){ return "Moj izuzetak ["+podatak+"]"; } }
Pravljenje sopstvenih izuzetaka (2) class PrimjerMogIzuzetka{ static void provjeri(int a) throws MojIzuzetak{ System.out.println("Pozvana metoda provjeri za argument {"+a+"}"); if(a>15) throw new MojIzuzetak(a); System.out.println("Ne postoji izuzetak!"); } public static void main(String args[]){ try{ provjeri(10); provjeri(40); }catch(MojIzuzetak izuzetak){ System.out.println("Izuzetak -> "+izuzetak); } } }