Csomagok A program tagolasa í Tıpusdefinıcio k (oszta lyok, interfe szek) í Meto dusok í Blokk utasıta sok í Csomagok í Bea gyazott oszta lyok Csomag í A tıpusainkat csomagokba soroljuk í O sszetartoza s kifejeze se í A csomagok hierarchiaba szervezhet k Min sıtett hivatkozas pontokkal java.util í Egy tıpus teljes neve tartalmazza az t befoglalo csomag nevet is: java.util.vector 1
O sszetartoza s í A lathato sagi mo dosıto szavak: public, protected, private í Ha nem ırunk semmit, akkor felnyilvanosö, azaz csomagszintu í Az azonos csomagban levo osztalyok hozzafernek egymas felnyilvanos tagjaihoz í A protected ennek a kiterjesztese Csomagok hierarchiaja? í Igazandibo l nem is a csomagok vannak hierarchia ban... í hanem a csomagnevek! í A java csomagnak semmi küze a java.util csomaghoz - csak a nevuk hasonlo ö ínem tükeletes a tamogatas Java-ban a programrendszerek hierarchikus tagolasara Csomagok megadasa í A tıpusdefinıcio ele egyszerúen beırjuk, hogy melyik csomagba tartozik í A package kulcsszo package raktar.adatok; public class Csavar extends Anyag {... A csomagok üsszeallıtasa í A csomagok nyitottak í Barmikor hozzavehetek Íjabb osztalyokat, interfe szeket í Egyszerúen ele ırok egy package utasıta st í Egy tıpus pontosan egy csomagba tartozik Csomagok metszete ures Nevtelen csomag: ha nincs package utasıtas 2
Feladat í A Pont oszta ly legyen a geo.alapok csomagban í Fordıtsuk le kulün a Pont osztalyt Hivatkozas mas csomagokra í Ha egy forrasfajlban hasznalni akarunk egy tıpust egy masik csomagbo l: Irjuk ki a teljes nevet Importa ljuk import utasıta ssal Hivatkozas teljes nevvel í Pe lda ul ne vtelen csomagban, az A oszta lyt definia lo fa jlon belulá java.util.vector bar = new java.util.vector(); Importalas + rüvid nev í Pe lda ul ne vtelen csomagban, az A oszta lyt definia lo fa jlon belulá import java.util.vector; Vector bar = new Vector(); Importalas + rüvid nev í Minden tıpust importalhatunk egyszerre a java.util csomagbo l: import java.util.*; Vector bar = new Vector(); 3
Az import utasıta s í Arra hasznalhato, hogy ne kelljen kiırni bizonyos tıpusok teljes nevet (pl. java.util.vector), csak a rüvid nevet (Vector). í Nem eleg, hogy import java.*; í Nem haszna lhato felig teljesö ne v, pl. util.vector Feladat í A Kor osztaly keruljün a geo csomagba í Hasznalnia kell a geo.alapok.pont oszta lyt í Nem megy a fordıtas, ugye? Fordıta si egyse g í Az, amit oda lehet adni a fordıto nak, hogy lefordıtsa í Java-ban egy fordıtasi egyseg tartalma: package utasıta s (opcionalis) import utasıtasok (opcionalis) tıpusdefinıcio k (egy vagy tübb) í A sorrend kütütt í A csomagdeklaracio es az importalo utasıtasok minden tıpusdefinıcio ra vonatkoznak. A fordıtasi egysegek elhelyezese í A ltala ban fa jlokban, a fa jlrendszerben í Nehany fejleszt eszküz ett l elter en, valamilyen adatbazisban tarolja a forrasokat Forra sfa jlok í Egy fajl pontosan egy fordıtasi egyseget tartalmaz í A fajl kiterjesztese.java í Ha a fajlban van publikus tıpus, akkor a fajl neve meg kell, hogy egyezzen a tıpus nevevel Egy fajlban / fordıtasi egysegben csak egy publikus tıpus lehet... 4
A forra sfa jlok elhelyeze se í Hozzunk letre a csomagszerkezettel egyez künyvta rszerkezetet í Abba tegyuk a forrasfajlokat í A f program egyel re keruljün a gyükerbe, a nevtelen csomagba í Fordıtsunk a gyükerb l Feladat í A Kür es Pont osztalyok melle ırj egy f programot, es fordıtsd üssze ket í Figyeld meg, hogy a Pont objektumok felnyilvanos adattagjait nem tudod a Kür osztalydefinıcio bo l vagy a f programbo l haszna lni! í Kes bb beszelunk meg a tovabbi trukkükr l... 5