Uvod u programiranje

Maja Čić


Paketi i sučelja


što su korisnička sučelja računala jednostavnija to je programiranje za njih složenije. Za razliku od jednostavnih tekstualnih sučelja za koja je dovoljno par potprograma koji pišu na ekran i čitaju ulaz, suvremeno grafičko sučelje s prozorima, menijima, dugmadi i sličnim elementima zahtijeva podršku za veliki broj mogućnosti, tj. veliki broj potprograma koji tu podršku pružaju.

Svaki program uključuje mješavinu inovacija i postojećih alata. Programer dobija skup alata ugrađenih u programski jezik (varijable, izrazi pridjeljivanja, if izrazi, petlje ...) kojima može dodati nove skupove alata s potprogramima koji obavljaju određene zadatke. Ako su dobro izrađeni, ovi alati se mogu koristiti kao prave crne kutije: može ih se pozivati da obavljaju svoje zadatke bez brige o postupcima koje će obavljati pri izvršavanju svog zadatka. Inovacija u programiranju je uzimanje tih alata i njihova primjena u projektu ili na problemu. Ovakav pristup se zove application programming.

Skup softverskih alata je vrsta crne kutije i predstavlja nekakvo sučelje prema programeru. Sučeljem je određeno koji potprogrami su u skupu, koje parametre koriste i koje zadatke obavljaju. Ovi podaci čine API (Applications Programming Interface) ili sučelje za programiranje aplikacija vezano uz taj skup. Proizvođač nekog uređaja može objaviti API za taj uređaj koji bi sadržavao skup potprograma koje programer može pozvati u svrhu komunikacije i upravljanja uređajem.


Java programski jezik sadrži veliki standardni API. Dio ovog API-ja predstavljen je kroz Math potprograme (kao što je Math.sqrt()), String podatke i pripadajuće potprograme, te System.out.print() potprograme. Standardni Java API uključuje i potprograme za rad s grafičkim korisničkim sučeljima, mrežnu komunikaciju, čitanje i pisanje podataka i još mnogo drugih. Moglo bi se na njih gledati kao da su ugrađeni u Java jezik, ali zapravo su to potprogrami dani na raspolaganje u Java programima.


Potprogrami standardnog API-ja su, kao i svi potprogrami u Javi, okupljeni u klase. Da bi se postiglo okupljanje potprograma na višoj razini, klase u Javi se mogu okupljati u pakete. Paketi mogu u sebi sadržavati druge pakete, pa se tako mogu postići i više razine okupljanja. Zapravo, čitav standardni Java API je primijenjen kao jedan veliki paket zvan "java". Taj paket se sastoji od više drugih paketa, a svaki od tih paketa sadrži niz klasa.

Uzmimo za primjer jedan od pod-paketa osnovnog paketa, paket awt. Budući je awt sadržan u paketu java, puno ime mu je zapravo java.awt. Ovaj paket sadrži klase vezane za grafička korisnička sučelja kao što su Button klasa za dugmad koju korisnik može pritiskati na ekranu ili Graphics klasa koja omogućava crtanje po ekranu. Budući su ove klase dio java.awt paketa njihova puna imena su java.awt.Button i java.awt.Graphics.

Java paket sadrži još nekoliko pod-paketa kao: java.net za mrežnu komunikaciju i java.applet koji omogućava korištenje appleta. Osnovni paket se zove java.lang, a sadržava temeljne klase kao String ili Math.



Potprogrami
grupirani u klase, grupirani su u dva nivoa paketa.
puno ime potprograma random() je java.lang.Math.random()


Pretpostavimo da u svom programu želimo koristiti klasu java.awt.Button. Jedan od načina je pisanjem punog imena klase:

	java.awt.Button  stopBttn;

za deklariranje varijable stopBttn tipa java.awt.Button.
Ovakvo naporno pisanje punih imena klasa se može izbjeći korištenjem izraza:

	import java.awt.Button;

na početku programa, prije pisanja ijedne klase. Sada se puno ime java.awt.Button može zamijeniti samo imenom klase Button, a ranije korišteni izraz može se zapisati kao:

	Button  stopBttn;

Jedini učinak import izraza je da omogući korištenje samo imena klasa umjesto imena klasa sa čitavim pristupnim putom. Klasi se može pritupiti i ako se izostavi import izraz, korištenjem punog imena.

Za učitavanje svih klasa jednog paketa (u ovom slučaju java.awt) koristi se izraz:

	import java.awt.*;.

Zbog toga što je java.lang paket temeljni paket za sve Java programe, sve klase iz tog paketa automatski se učitavaju u svaki program, kao da svaki program počinje izrazom "import java.lang.*;".


Programer može stvarati nove pakete. Iako se mi nećemo bavit stvaranjem paketa, svaka klasa je dio nekog paketa. Ukoliko nije izričito zadan paket u koji će klasa biti smještena, klasa se sprema u default paket koji nema ime. U projektima u kojima je zadan veliki broj novih klasa korisno je klase organizirati u jedan ili više paketa. Također se preporuča programerima da stvaraju pakete kao kutije s alatom koje osiguravaju funkcionalnost i API-je koji pokrivaju područja koja nisu pokrivena standardnim Java API-jem.



[ prethodna stranica | Početak | sljedeća stranica ]