Seminář 4

Obsah semináře

Dnes nás čeká:

  1. Principy:
    • dědičnost
  2. Prvky jazyka:
    • klíčová slova extends a instanceof
    • záznamy record

Narazíme i na:

Dědičnost

(ukázka)

Statické atributy a metody

(ukázka)

Záznamy (Record)

(ukázka)

Kódy z hodiny

Úkoly

    • Implementujte něco nazvaného Point pro bod v rovině se dvěma souřadnicemi. Po vytvoření bodu jeho souřadnice již nepůjdou měnit.
    • Implementujte metodu double distance(Point p) vracející vzdálenost bodu a dalšího bodu p.
    • Implementujte něco nazvaného LineSegment pro úsečku v rovině.
    • Implementujte tyto metody:
      • double distance(Point p) vracející vzdálenost úsečky a bodu p,
      • double length() vracející délku úsečky.
    • Implementujte něco nazvaného Rectangle představující obdelník, který má strany rovnoběžné s osami X a Y.
    • Implememntujte dva konstruktory:
      • pomocí dvou vrcholů (přes uhlopříčku),
      • pomocí levého dolního vrcholu, výšky a šířky.
    • Implementujte tyto metody:
      • double getArea() vracející obsah obdelníku,
      • double distance(Point p) vracející vzdálenost od daného bodu, tj. minimální vzdálenost bodu k některé ze stran obdelníku.
    • Implementujte něco nazvaného Square představující čtverec, který má strany rovnoběžné s osami X a Y.
    • Implememntujte dva konstruktory:
      • pomocí dvou vrcholů (přes uhlopříčku),
      • pomocí levého dolního vrcholu a strany.
    • Implementujte tyto metody:
      • double getArea() vracející obsah čtverce
      • double distance(Point p) vracející vzdálenost od daného bodu, tj. minimální vzdálenost bodu k některé ze stran čtverce.
    • Implementujte něco nazvaného Circle pro kruh/kružnici,
    • Implementujte konsturktor pomocí středu a poloměru.
    • Implementujte tyto metody:
      • double getArea() vracející obsah kruhu,
      • double distance(Point p) vracející vzdálenost od daného bodu, tj. minimální vzdálenost bodu k libovolnému bodu ležícímu na kružnici.
  1. Má-li smysl přidat nějakou třídy, záznam či rozhraní k zpřehlednění/zkvalitnění kódu, udělejte to.

  2. Výsledek odevzdejte emailem s předmětem jj1-04 na tomas.urbanec@upol.cz do 24.10.2023, 14:59 CEST. Odevzdávejte pouze zdrojové kódy, nikoliv celé projekty vygenerované IDE.

Nepovinné úkoly: