Jelenlegi hely

11.3. Metódusok deklarálása

A következő példa a setGear metódus, amely a sebességváltást teszi lehetővé:

    public void setGear(int newValue) {
        gear = newValue;
    }

Mint az osztályt, a metódust is két nagyobb rész határoz meg: a metódus deklarációja és a metódus törzse. A metódus deklaráció meghatározza az összes metódus tulajdonságát úgy, mint az elérési szint, visszatérő típus, név, és paraméterek. A metódus törzs az a rész, ahol minden művelet helyet foglal. Olyan instrukciókat tartalmaz, amelyre a metódus végrehajtásához van szükség.

A metódus deklaráció kötelező elemei: a metódus neve, visszatérő típusa, és egy zárójelpár: (). A következő táblázat megmutat minden lehetséges részt a metódus deklarációjában.

  • hozzáférési szint (opcionális) A metódus hozzáférési szintje
  • static (opcionális) Osztály metódust deklarál
  • abstract (opcionális) Jelzi, hogy a metódusnak nincs törzse
  • final (opcionális) Jelzi, hogy a metódus nem írható felül a leszármazottakban
  • native (opcionális) Jelzi, hogy a metódust más nyelven készült
  • synchronized (opcionális) A metódus kér egy monitort a szinkronizált futáshoz
  • returnType methodName Az metódus visszatérő típusa és neve
  • ( paramList ) A paraméterlista a metódushoz
  • throws exceptions (opcionális) A metódus le nem kezelt kivételei

A metódus neve

A metódus neve szokás szerint kis betűvel kezdődik, hasonlóan a változók neveihez. Általában az osztályon belül egyedi neve van a metódusnak.

Ha a metódus neve, paraméterlistája és visszatérési értéke megegyezik az ősében definiált metódussal, akkor felülírja azt.

Javában az is megengedett, hogy ugyanazzal a névvel, de különböző paraméterlistával hozzunk létre metódusokat.

Nézzük a következő példát:

public class DataArtist {
    ...
    public void draw(String s) {
        ...
    }
    public void draw(int i) {
        ...
    }
    public void draw(float f) {
        ...
    }
}

Azonos paraméterlistával, de különböző típusú visszatérési értékkel nem lehet metódusokat létrehozni.