0Pricing
Java Academy · Lekcja

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

  1. Projektowanie
  2. Implementacja
  3. Zachowania polimorficzne
← Powrót do Java Academy