Projektowanie
Zaplanują Państwo hierarchię: wybiorą abstrakcyjną klasę bazową, wypiszą konkretne kształty, dobiorą pola i metody oraz zdefiniują proste operacje polimorficzne.
Projektowanie to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 1 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 3 lekcji w sumie.
Cel i zakres
Cel: Zbudujemy małą hierarchię kształtów z abstrakcyjną klasą bazową (Shape) oraz kilkoma konkretnymi kształtami (Circle, Rectangle). Najpierw zaprojektujemy wspólne operacje, a następnie potwierdzimy plan za pomocą niewielkich prototypów kodu.
Kształty i pola
Kształty: Circle (radius), Rectangle (width, height). Pola należy przechowywać tylko tam, gdzie są potrzebne: radius w Circle, a width/height w Rectangle. Klasa bazowa zawiera kontrakty zachowania, a nie wszystkie pola.
Operacje i polimorfizm
Wspólne operacje to area() i perimeter(). Deklarujemy je w Shape, aby każdy obiekt typu Shape mógł obsługiwać te wywołania. Następnie lista Shape może zawierać różne obiekty Circle i Rectangle oraz przetwarzać je w jednolity sposób.
Kod: szkic API
Prototyp 1: Definiujemy Shape z metodami area i perimeter oraz prostą klasę Circle. Sprawdzamy w ten sposób, czy wspólne API działa dla jednego konkretnego typu.
public class Main {
// Minimal API sketch to validate the design
static abstract class Shape {
abstract double area();
abstract double perimeter();
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
}
public static void main(String[] args) {
Shape s = new Circle(2.0);
System.out.println("area=" + s.area());
System.out.println("perimeter=" + s.perimeter());
}
}
Kolekcje i raportowanie
Później będziemy przechowywać kształty na liście i wyświetlać podsumowania, takie jak typ, pole i obwód. Niewielki formater utrzymuje czytelność wyników na urządzeniach mobilnych: jeden kształt w każdym wierszu, z wartościami zaokrąglonymi do dwóch miejsc po przecinku.
Kod: lista kształtów
Prototyp 2: Umieszczamy Circle i Rectangle w jednej tablicy Shape i wyświetlamy każdy element. Metody klasy bazowej umożliwiają jednolitą obsługę (polimorfizm).
public class Main {
static abstract class Shape {
abstract double area();
abstract double perimeter();
String info() {
// default helper for neat printing
return String.format("area=%.2f, per=%.2f", area(), perimeter());
}
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
public String toString() { return "Circle " + info(); }
}
static class Rectangle extends Shape {
double w, h;
Rectangle(double w, double h) { this.w = w; this.h = h; }
double area() { return w * h; }
double perimeter() { return 2 * (w + h); }
public String toString() { return "Rectangle " + info(); }
}
public static void main(String[] args) {
Shape[] arr = { new Circle(2.0), new Rectangle(3.0, 4.0) };
for (int i = 0; i < arr.length; i = i + 1) {
System.out.println(arr[i]);
}
}
}
Sprawdzian dotyczący projektu klasy bazowej
Szybkie sprawdzenie: Które elementy powinny należeć do abstrakcyjnej klasy bazowej Shape w tym projekcie?
Podsumowanie
Podsumowanie: Klasa bazowa deklaruje area i perimeter. Podklasy przechowują dane właściwe dla danego kształtu i implementują obliczenia. Listy Shape pozwalają wyświetlać różne kształty za pomocą jednej pętli.
Często zadawane pytania
Czy lekcja „Projektowanie” jest bezpłatna?
Tak — pełny tekst „Projektowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Projektowanie”?
Zaplanują Państwo hierarchię: wybiorą abstrakcyjną klasę bazową, wypiszą konkretne kształty, dobiorą pola i metody oraz zdefiniują proste operacje polimorficzne. Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Java Academy?
Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 3.
Ile czasu zajmuje lekcja „Projektowanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?
Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Projektowanie
- Implementacja
- Zachowania polimorficzne