Gyakorlati alapok I.
Egy üres Java-projekt létrehozása
Ha szoftverfejlesztésbe kezdünk, akkor:
-
vagy meglévő munkába csatlakozunk be,
-
vagy egy új munkát kezdünk el.
Az utóbbi esetében -hála a rendkívül magas szintű programozási platformoknak-, legtöbbször egyszerre több fájl fog keletkezni. Így tesz az Eclipse is: minden egyes vadonatúj munka alkalmával a workspace-en belül egy új mappát generál, a hozzá kapcsolódó összes fájllal együtt (hacsak nem dolgozunk bele egy már meglévő mappába).
A valamilyen magasabb tervezési szempontból összetartozó fájl-, és mappacsoportot összefoglaló néven projektnek hívjuk. A projekt célja mindig egy magasabb szintű feladat komplex megoldása. A projekteket a programozási platformok rendszerezetten tárolják.
Egy új Java-projektet a File → New (Alt+Shift+N) → Java-project paranccsal hozhatunk létre. Hatására a következő ablak fog generálódni:
Az ablak által felajánlott alapbeállítások alapértelmezésben megfelelőek, nekünk csak a Project name (projektnév) mezőt kell kitöltenünk, ami elméletileg bármi lehet, én a Proba nevet adtam. Kitöltése után klikkeljünk a Finish gombra, amely hatására a workspace mappában egy Proba nevű mappa generálódik néhány almappával és fájllal. Ezt a Package Explorer is mutatni fogja:
Ezután klikkeljünk jobb egér gombbal a Proba mappában lévő src nevű almappára (source - ide kerülnek a forráskódok) és adjuk ki a New → Class parancsot. Hatására a következő ablak fog generálódni:
A Name mezőbe osztálynévként valójában bármely olyan nevet beírhatunk, amely megfelel az általános programozási névadás-konvencióknak (Az adatok, metódusok elnevezésének problémái című fejezet).
Javaslatom -illetve amit én nagyon sokáig fogok követni a jelen honlapon belül is-, hogy a Main osztálynevet adjuk meg és egyúttal a public static void main(String[] args) szöveg mellett lévő négyzetet is jelöljük be, majd nyomjunk rá a Finish gombra. Ekkor a keletkezett Main osztályban generálódni fog egy main() főprogram-váz is.
Hatására a következő fog megjelenni:
Mi is történt?
A Java-fordító minden esetben, amikor a forráskódot futtatni akarjuk, először egy main() nevű metódust, mint főprogramot fog keresni, gyakorlatilag ez fut le, azaz minden programkód végrehajtása ebből indul ki. Ez a szabványos, de üres Main-forráskód így néz ki:
public class Main {
public static void main(String[] args) {
}
}
A fenti képen zöld szöveget is észrevehetünk: ez csak komment, jegyzet (// TODO..., további részletek a Kommentelés című fejezetben) és nincs hatással a kódvégrehajtásra.
Később látni fogjuk, hogy forráskódot fizikailag máshová is elhelyezhetünk, de ha futtatni kívánjuk, akkor a a main() főprogramnak közvetlen vagy közvetett hivatkozásokat kell tartalmaznia a máshol lévő forráskód felé.
Példa a közvetlen hivatkozásra:
-
main() meghívja metódus1-et, amely (ha nincs egyéb hozzáférés-korlátozás), lefut,
-
metódus2 létezik, de main() nem hívja meg, ezért metódus2 nem fut le.
Példa a közvetett hivatkozásra:
-
metódus1 hivatkozik metódus2-re,
-
main() meghívja metódus1-et, amely által (ha nincs egyéb hozzáférés-korlátozás), metódus2 is lefut.
Továbbá itt jegyezzük meg, hogy egy projektnek több végrehajtható main() függvénye is lehet. Ez további, projektszintű beállításokat igényel.
Mindezeket később részletesen tárgyaljuk.
Most nézzük meg Java-tanulmányaink legelső futtatható Java-programját! Gyakorlatilag minden programozási szakkönyv ezzel kezdi és most mi sem teszünk másképpen. Az alábbi kódot az aljától a tetejéig jelöljük ki és másoljuk be a projektfájlba (Ctrl + c - Ctrl + v):
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Végeredmény:
Hello World!
A másolás hatására az alábbi forráskódot láthatjuk:
Ezután nyomjunk rá a balközép tájon lévő Run gombra...
...amely le fogja futtatni a forráskódot. A végeredményt a jobb oldalon vagy hosszában lent lévő a Console mezőben olvashatjuk:
Végeredmény:
Hello World!
Lehetőségünk van arra. hogy a Run parancs automatikusan elmentse a kódot futtatás előtt, de jobb, ha megszokjuk, hogy a megírt kódokat rendszeresen elmentjük a Save (Ctrl + s) paranccsal!
A main() tehát nem tett mást, mint meghívta a System.out.println() metódust, amely egy szöveget (String karakterfüzért) írt ki a konzolra.
Ez forráskód-másolás (Ctrl + c) és közvetlen beillesztés (Ctrl + v), valamint a kód azonnali futtathatósága a legfontosabb momentuma ennek a programozási módszertannak, hiszen ezen módszerrel azonnal leellenőrizhetők az elméleti állítások, lefuttathatók a gyakorlati feladatok.
Érdekesség! A "Hello World" Java-kód futtatása Windows-parancssorból