Witam, mam takie zadanie. Zrobiłem całą instrukcję oprócz tego, co zaznaczyłem na czerwono. Po wpisaniu w Google dowiedziałem się, że delegaty (takie jak C#) metod nie instnieją w Javie. Moje pola są zdeklarowane jako private, metody są public albo public void. W takim razie jak się do tego zabrać, czy w ogóle jest sens takie coś robić?
Prosiłbym bardzo o pomoc.
0
1
Delegaty C# w Javie nie istnieją. Ale masz równoważny zamiennik w postaci choćby klas anonimowych. Poszukaj nieco o nich.
1
Tutaj nie chodzi o twór składniowy ale raczej wzorzec: https://en.wikipedia.org/wiki/Delegation_pattern
Czyli:
class Engine {
private final int power;
Engine(int power){
this.power = power;
}
public int getPower(){
return this.power;
}
}
public class Car {
private final Engine engine;
public Car(Engine engine){
this.engine = engine;
}
// delegate Engine.getPower()
public int getPower(){
return engine.getPower();
}
}
Te delegaty w C# są raczej niejakim odpowiednikiem interfejsów funkcyjnych w Javie (albo raczej interfejsy funkcyjne w Javie mogą pełnić podobną rolę co delegaty w C#), ale w tym zadaniu prosto napisano, że delegaty mają być w klasie, a nie oderwane od niej.