1 JĘZYKI PROGRAMOWANIA 2 Laboratorium, lista nr 5

Transkrypt

1 JĘZYKI PROGRAMOWANIA 2 Laboratorium, lista nr 5
dr inż. Jacek Lewandowski
JĘZYKI PROGRAMOWANIA 2
Laboratorium, lista nr 5.
Dziedziczenie, Polimorfizm, Klasy Abstrakcyjne, Interfejsy.
Zadanie. Interfejsy GeometricObject i Resizable
1.
Napisz interface o nazwie GeometricObject, ktory deklaruje dwie abstrakcyjne metody (ich
sygnatury) getParameter() i getArea(), jak pokazane na diagramie klasy powyżej.
Podpowiedz:
public interface GeometricObject {
public double getPerimeter();
......
}
2.
Napisz implementacje klasy Circle, ze zmienna protected radius (promień), która
implementuje interface GeometricObject.
Podpowiedz:
public class Circle implements GeometricObject {
// Zmienne prywatne
......
// Konstructor
......
// Implementacja metody zdefiniowanej w interfejsie
GeometricObject
@Override
public double getPerimeter() { ...... }
......
}
Bioinformatyka, sem. 2
1
dr inż. Jacek Lewandowski
3.
4.
Napisz program TestCircle który przetestuje metody zdefiniowane w klasie Circle. Pamiętaj o
użyciu interfejsu i polimorfizmu.
Klasa ResizableCircle jest definiowana jako podklasa klasy Circle, która również
implementuje interfejs Resizable, jak przedstawiono na diagramie powyżej. Interfejs Resizable
deklaruje abstrakcyjna metodę resize(), która modyfikuje rozmiar (np. Promień, bok itd.)
mnożąc go przez odpowiedni procent. Napisz interface Resizable oraz klasę
ResizableCircle która implementuje ten interfejs.
Podpowiedz:
public interface Resizable {
public double resize(...);
}
public class ResizableCircle extends Circle implements Resizeable {
// Konstructor
public ResizableCircle(double radius) {
super(...);
}
// Implementuje metody zdefiniowane w interface Resizable
@Override
public double resize(int percent) { ...... }
}
5.
Napisz program TestResizableCircle który przetestuje metody zdefiniowane w klasie
ResizableCircle. Pamiętaj o użyciu interfejsu i polimorfizmu
Bioinformatyka, sem. 2
2