Dodać do klasy tzw. delegaty metod

0

Desktop_screenshot

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.

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1