Hirdetés

Új hozzászólás Aktív témák

  • modder
    aktív tag

    Még csak nemrég kezdtem el tanulgatni a Java nyelvet, de a tankönyv, amit olvasok már többször említette az "interfész" szót, és ezt is: "az osztály által implementált interfészek".
    Később persze ezt is tárgyalja majd a könyv, de már nagyon kíváncsi vagyok rá, beleolvasni meg inkább nem akarok előre.
    Csak egy rövid összefoglalóként mégis, mik ezek az interfészek, mire jók, és mit jelent az hogy egy osztály implementál egy interfészt?

    Ha már a könyvben szó esett arról, hogy "az osztály implementálja az x interfészt", akkor gyanítom, hogy egy valós példa is szerepel az interfész alkalmazására.

    Többek között azért jó egy interfész, mert elrejti az osztály konkrét implementációját (fordítási időben).

    Egy egyszerű példa a Swing ActionListener interfész amit arra használhatsz, hogy gui eseményekre (pl. gomb megnyomása) valamit reagáljon a programod.
    A GUI komponens .addActionListener( ActionListener listener ) metódusának egy olyan objektumra van szüksége, aminek van actionPerformed( ActionEvent e ) metódusa. Tehát létrehoztak neki egy interfészt, amiben deklarálták ezt a metódust, ez lett az ActionListener interfész. Ezzel kényszerítik ki, hogy csak olyan objektumot adjál át ennek a metódusnak, aminek megvan a megfelelő actionPerformed( ActionEvent e ) metódusa.

    Vissza a fordítási időhöz: Látható, hogy a Swing készítőket nem érdekli, hogy miután lefordították a Swing library-t milyen ActionListener objektumokat fog létrehozni a fejlesztő, lehet azoknak az objektumoknak hatszáz másik metódusa is, és mindegy, hogy mit csinál. Ami a fontos, hogy a fejlesztő által létrehozott listener objektumoknak meglesz az elvárható tulajdonsága: lesz neki actionPerformed( ActionEvent e ) metódusa.

Új hozzászólás Aktív témák