Objektově orientované programování 3

31. hodina MVOP WBF

Matěj Cajthaml — SSPŠ

©

Opakování

Co je to třída?

Co je to instance?

Co je to vlastnost?

Jak zapíšeme neveřejnou vlastnost?

Co je to metoda?

Jak zapíšeme neveřejnou metodu?

Co je to konstruktor?

Co jsou to statické proměnné / metody?

Funguje OOP v prohlížeči?

Proč místo tříd nepoužíváme objekty?

Gettery

  • způsob validace dat
  • komplexní logika
  • při získávání hodnoty se zavola tato funkce
  • get

Na co se to hodí?

Settery

  • způsob validace dat
  • komplexní logika
  • při nastavování hodnoty se zavola tato funkce
  • set

Na co se to hodí?

Záznamy

Společná práce

Vytvořte třídu User. Tato třída bude reprezentovat uživatele v aplikaci a bude obsahovat vlastnost name, id a score, reprezentující přezdívku uživatele resp. jeho identifikátor a skóre.

Každý uživatel si bude držet vlastní historii - záznamy všech jeho skóre. Skóre budeme nastavovat pomocí vlastnosti score.

Použijte gettery pro získání posledního skóre a pole všech záznamů se skóre. Použijte setter pro přidání a nastavení skóre.

Dedičnost

Dědičnost

  • dovoluje nám zdědit vlastnosti a metody z jiné třídy
  • k těmto vlastnostem a metodám můžeme přistupovat a upravovat je
  • k instanci pak můžeme přistupovat jako k instanci děděné třídy

Ukázka dědičnosti

K čemu se nám to hodí?

Zlepšení přehlednosti kódu

a co kdybychom chtěli něco přidat do prvního řešení?

Abstrakce

  • často potřebujeme evidovat více tříd v jedné datové struktuře
  • abstrakce nám pomůže uchovávat společné vlastnosti na jednom místě
  • nemusíme kontrolovat zda obsahuje další informace

Abstrakce

Kontrola zda je třída

Konstuktory v dědění

Tohle fungovat nebude. Proč?

K čemuže nám slouží třídy?

Lze dědit jen z jedné třídy.

Všechny třídy na konci dědí z třídy Object.

Super volá nadřazenou třídu, která může volat její nadřazenou třídu, ...

Karty

Společná práce

Představte si svojí (zcela plnou) peněženku. Jakožto správný student vlastníte různé karty.

Vytvořte třídy a správnou dedičnost k reprezentaci těchto karet. Karta je vždy identifikována svým jménem a číslem. Různé karty mají různé funkčnosti.

Implementujte alespoň třídy pro následující karty: bankomatní karta, dárková karta (obsahuje částku), věrností karta (sbírání bodů).

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/