Szintaxis
Mivel a nyelv teljesen objektum-orientált, így minden kódrészletnek valamely osztály belsejében kell
elhelyezkednie. Legfelsőbb szinten csak osztálydefiníciók lehetnek. Az osztályokon belül van lehetőség
alprogramok készítésére. Erre pedig csak a függvény programkonstrukció adott, ill. az osztály lértehozása
(lásd az Objektum-orientált programozás c. fejezetet).
Egy függvénynek van neve, paraméterlistája, visszatérési értéke, láthatósága, különféle módosítói,
kiváltható kivételek listája és magvalósítása. A függvény szignatúrájába csak a neve és paramétereinek
típusa tatozik bele.
Szintaxis:
láthatóság módosítók
visszatérési_típus függvénynév(típus paraméternév (, típus paraméternév)*)
[throw kivétel_típus (, kivétel_típus)*]
[ {
utasítások
return kifejezés;
} ]
Ahol:
- Láthatóság:
- public: teljesen nyilvános, mindenki számára látható
- protected: az adott osztály objektumai, a leszármazott osztály objektumai, ill. az azonos
fordítási egységben lévő osztályok objektumai láthatják
- private: magánjellegű, a külvilág felé egyáltalán nem látszik, csak az adott osztály
objektumai láthatják
- Módosító:
- abstract: nem tartozik hozzá magvalósítás, addig nem példányosítható az osztály,
amíg le nem származtatunk belőle, és nem definiáljuk a függvény törzsét
- (multicast) delegate: függvénypointer típus létrehozása, nem tartozik hozzá függvénytörzs,
adott szignatúrájú függvénytípust definiál, multicast esetén csak void visszatérési
érték a megengedett
- final: a függvény megvalósítását véglegesíti, ezután az nem felüldefiniálható a
leszármazott osztályokban
- static: osztályszintű, példányosítás nélkül is elérhető az osztály nevére való
hivatkozással
- synchronized: párhuzamos futatás esetén biztosítja a kölcsönös kizárást (lásd a
Párhuzamosság c. fejezetet)
- return: a függvény visszatérési értékét adhatjuk meg vele, void esetén elhagyható a kifejezés,
vagy akár az egyész return utasítás is
public static void main (String[] args) {
System.out.println ("Hello World");
}
Paraméterátadás
Alapvetően két féle paraméterátadási mód van, ami megfelel a két féle típusnak. Azaz az elemi típusok
érték szerint adódnak át, a referencia típusok pedig referencia szerint.
Túlterhelés
A függvényparamétereknek nem adhatunk alapértelmezett értékeket (default paraméter). Helyette viszont
lehet azonos nevű, de külőnböző típusú paraméterlistával rendelkező függvényeket deklarálni. Azért csak
a paraméterlista alapján lehet túlterhelést készíteni, ugyanis a függvény szignatúrájába csak ezek
tartoznak bele, hiszen a visszatérési értéket nem vagyunk kötelesek elmenteni.
public int max(int a, int b) {
return a<b ? b : a;
}
public double max(double a, double b) {
return a<b ? b : a;
}