23  Interfejsy

  1. Napisz interfejs o nazwie LoudAnimal, który będzie miał jedną metodę o nazwie makeNoise(). Następnie stwórz dwie klasy: Dog i Cat, które będą implementować ten interfejs. Dla każdej klasy zaimplementuj metodę makeNoise(), tak aby wydrukowała ona odpowiedni dźwięk zwierzęcia.

  2. Stwórz interfejs o nazwie MyComparator, który będzie zawierał metodę compare(int a, int b): int. Metoda ta powinna zwrócić -1, jeśli a < b, 0 jeśli a == b i 1 jeśli a > b. Następnie stwórz klasę TestMyComparator, która będzie implementować ten interfejs. W klasie tej zaimplementuj metodę compare zgodnie z jej opisem.

  3. Załóżmy, że mamy interfejs MusicPlayer z metodami turnOn(), turnOff() i nextTrack(). Stwórz klasę Radio, która będzie implementować ten interfejs. W metodzie turnOn() powinien zostać wydrukowany komunikat “Radio włączone”, w metodzie turnOff() - “Radio wyłączone”, a w nextTrack() - “Zmieniono stację radiową”.

  4. Napisz interfejs Converter z trzema abstrakcyjnymi metodami: convertToEuro(double amount) zwracającą double, convertToUSD(double amount) zwracającą double oraz getConversionRate(String currency) przyjmującą nazwę waluty jako String i zwracającą double. Stwórz dwie klasy: CurrencyConverter i UnitConverter, które implementują ten interfejs. W osobnej klasie ConverterTest, przetestuj implementację metod dla obiektów obu klas.

  5. Utwórz interfejs Authentication z trzema metodami abstrakcyjnymi: login(String username, String password) zwracającą boolean, logout() zwracającą void oraz resetPassword(String username, String oldPassword, String newPassword) zwracającą boolean. Stwórz dwie klasy UserAuthentication i AdminAuthentication, które implementują ten interfejs. W klasie AuthenticationTest przetestuj implementacje metod dla obiektów obu klas.

  6. Zaprojektuj interfejs Sensor z trzema metodami abstrakcyjnymi: readValue() zwracającą double, getStatus() zwracającą String oraz reset() zwracającą void. Stwórz dwie klasy TemperatureSensor i PressureSensor, które implementują ten interfejs. W klasie SensorTest przetestuj działanie metod dla obiektów z obu klas.

  7. Opracuj interfejs MediaPlayer z trzema abstrakcyjnymi metodami: play(String trackName) zwracającą void, pause() zwracającą void oraz getCurrentTrack() zwracającą String. Stwórz dwie klasy AudioPlayer i VideoPlayer, które implementują ten interfejs. W osobnej klasie MediaPlayerTest sprawdź działanie metod dla obiektów z obu klas.

  8. Stwórz interfejs Storage z trzema metodami abstrakcyjnymi: save(String data) zwracającą boolean, delete(String identifier) zwracającą boolean oraz retrieve(String identifier) zwracającą String. Zaprojektuj dwie klasy FileStorage i DatabaseStorage, które implementują ten interfejs. W klasie StorageTest wykonaj testy metod dla obiektów z obu klas.

  9. Wykonaj poniższe czynności:

Wskazówka: W celu sprawdzenia, że string jest liczbą możesz użyć wyrażenia regularne:

str.matches("-?\\d+(\\.\\d+)?")
  1. Wykonaj poniższe czynności:
  1. Wykonaj poniższe czynności:
  1. Wykonaj poniższe czynności:
  1. Wykonaj poniższe czynności:
  1. Stwórz interfejs Drawable z:

Stwórz klasy Circle i Rectangle, które implementują Drawable. draw() w Circle powinno wyświetlać “Drawing Circle”, a w Rectangle - “Drawing Rectangle”. Stwórz klasę testującą DrawableTester. Utwórz obiekty Circle i Rectangle, wywołaj dla nich draw() i display(), oraz statycznie Drawable.getType().

  1. Stwórz interfejs SoundPlayer z:

Stwórz klasy MusicPlayer i Radio, które implementują SoundPlayer. playSound() w MusicPlayer powinno wyświetlać “Playing Music”, a w Radio - “Playing Radio”. Stwórz klasę testującą SoundTester. Utwórz obiekty MusicPlayer i Radio, wywołaj dla nich playSound() i stopSound(), oraz statycznie SoundPlayer.getDeviceType().

  1. Stwórz interfejs MemoryManager z:

Stwórz klasy RAMManager i DiskManager, które implementują MemoryManager. allocateMemory(int size) w RAMManager powinno wyświetlać “Allocating RAM Memory”, a w DiskManager - “Allocating Disk Space”. Stwórz klasę testującą MemoryTester. Utwórz obiekty RAMManager i DiskManager, wywołaj dla nich allocateMemory(int size) i freeMemory(), oraz statycznie MemoryManager.getMemoryType().

  1. Stwórz interfejs VATCalculator z:

Stwórz klasę testującą VATTest, która wywołuje metodę calculateWithVAT(double price) z przykładową ceną produktu i wyświetla wynik.