- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Azonnali notebookos kérdések órája
- Egérpad topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Kompakt vízhűtés
- Autós kamerák
- AMD Navi Radeon™ RX 7xxx sorozat
Új hozzászólás Aktív témák
-
modder
aktív tag
válasz
Dave-11 #3239 üzenetére
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.
-
Davs
tag
válasz
Dave-11 #3239 üzenetére
Egy intefesz csak definialja a metodusok neveit. Ha az osztalyod implementalja az interfesz, akkor az osztalynak definialnia kell MINDEN metodust, ami az interfeszben volt. Ahogy az elottel szolo peldajaban is latod, a MyService interfeszben csak a metodusok neve van definialva. A MyServiceImpl osztaly implementalja a MyService interfeszt, ezert implementalnia kell a get/setSomething metodusokat.
Ez ez egesz iterfeszes dolog pl arra jo, hogy ellenorizni tudod, hogy egy osztaly implementalja-e az adott interfeszt, es ha igen, akkor biztosan tudod, hogy az osztaly tartalmazza az interfeszben definialt metodusokat stb.
-
TBG
senior tag
válasz
Dave-11 #3239 üzenetére
Pár szó akkor.
Interfész:
public interface MyService {
public void setSomething();
public String getSomething();
}
public class MyServiceImpl implements MyService {
@Override
public void setSomething(String something) {
// Do something...
}
@Override
public String getSomething() {
return "Some String";
}
public void setFoo(String foo) {
// Do anything else...
}
}
public class Something {
public static void main(String[] args) {
// Ebben az esetben csak azokat a metódusokat látod, amiket a MyService interfész deklarál....
MyService myService = new MyServiceImpl();
myService.setSomething("Hehe");
String something = myService.getSomething();
// Ebben az esetben látod az interfész által deklarált metódusokat és az egyebeket is.
MyServiceImpl myServiceImpl = new MyServiceImpl();
myServiceImpl.setSomething("Hehe");
String something = myServiceImpl.getSomething();
myServiceImpl.setFoo("Foo");
// Röviden...
}
}
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Windows 11
- bambano: Bambanő háza tája
- Azonnali notebookos kérdések órája
- World of Tanks - MMO
- Otthoni hálózat és internet megosztás
- Path of Exile (ARPG)
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
- További aktív témák...
- PlayStation Portal 2026.12.03-ig gyári garanciával eladó!
- ASRock B560 Steel Legend + i5 11500 + ID-Cooling + 16 Gb Corsair Vengeance RGB Beszámitok!
- Samsung Galaxy A26 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 12 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új és régi konzolok Okosítása/Softmodoloása, és Szoftveres szintű javítása - RÉSZLETEK A LEÍRÁSBAN
- BESZÁMÍTÁS! LENOVO LOQ 15APH8 15 notebook - R7 7840HS 16GB DDR5 1TB SSD RTX 4060 6GB WIN11
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 12 mini 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3187, 96% Akkumulátor
Állásajánlatok
Cég: FOTC
Város: Budapest