Hirdetés
- Kell(ene) a hűtés a MacBook Neónak
- Természetfeletti erő? Acer Nitro V 16 AI notebook Gorgon Pointtal
- Fejhallgató erősítő és DAC topik
- Milyen lézer nyomtatót vegyek?
- Hivatalosan is elkezd védekezni az Intel csodafegyvere ellen az új Geekbench
- OLED TV topic
- Redmi Pad 2 Pro / Poco Pad M1 - egy teszt, két lélek
- Vezeték nélküli fejhallgatók
- iPad topik
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
Ú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
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- AliExpress tapasztalatok
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Építő/felújító topik
- Kell(ene) a hűtés a MacBook Neónak
- BMW topik
- BestBuy ruhás topik
- Stílussal és friss szenzorokkal futott be a Huawei Watch GT 5
- Proxmox VE
- Természetfeletti erő? Acer Nitro V 16 AI notebook Gorgon Pointtal
- Óra topik
- További aktív témák...
- ASUS TUF Gaming GeForce GTX 1650 OC 4GB GDDR6
- ELADÓ: SAMSUNG Odyssey G5 34" ULTRAWIDE GAMER MONITOR BRUTÁL ÉLMÉNY!
- MSI RX 6600 XT 8GB GDDR6 MECH 2X OC Eladó!
- LG OLED 42C2 hibátlan, beégésmentes, 120Hz, PS5/Xbox gaming TV
- AMD Ryzen R9 5900X 12Mag / 24Szál / 3,7 / 4,8 GHz / 22 Hónap Alza.hu garancia / Beszámítás OK!
- HP EliteBook 840 G7 i5-10210U 8GB 256GB FHD 400nit 1 év garancia
- 27% - Lenovo N27q IPS Monitor! 2560x1440 / 100Hz / 4ms
- Microsoft Surface Laptop 6 Ultra 7 16GB 512GB
- ÁRGARANCIA!Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Samsung Galaxy S23/Samsung Galaxy S23+/Samsung Galaxy S23 Ultra
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

