PB112 Základy OOP v Javě - přednášky a cvičení
prof. RNDr. Tomáš Pitner, Ph.D.
PB112 Základy OOP v Javě - přednášky a cvičení

Objektové programování pro ty, kdo:

  • něco málo o programování ví
  • zatím si nemyslí, že se tím budou živit
  • budou ale pracovat s počítači - ať jako bezpečáci, ekonomové nebo vědci
  • chtěli by umět přečíst vlastní i cizí program, pochopit jej, něco v něm opravit
  • chtějí si umět naprogramovat vlastní jednoduchou aplikaci, nejspíš ve svém oboru - něco spočítat, najít, uložit, zobrazit
  • používat knihovny (=hotový kód) pro úkoly, co potřebují řešit

Kapitola obsahuje:
1
Studijní materiály
1
Studijní text
15
Web
Učitel doporučuje studovat od 19. 2. 2024 do 25. 2. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
7
Web
Učitel doporučuje studovat od 26. 2. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
12
Web
Učitel doporučuje studovat od 4. 3. 2024 do 10. 3. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
8
Web
Učitel doporučuje studovat od 11. 3. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
7
Web
Učitel doporučuje studovat od 18. 3. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
9
Web
Učitel doporučuje studovat od 25. 3. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
7
Web
Učitel doporučuje studovat od 1. 4. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
8
Web
Učitel doporučuje studovat od 8. 4. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
5
Web
Učitel doporučuje studovat od 15. 4. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
5
Web
Učitel doporučuje studovat od 22. 4. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
5
Web
Učitel doporučuje studovat od 29. 4. 2024.
Kapitola obsahuje:
1
Složka
1
Studijní text
5
Web
Učitel doporučuje studovat od 6. 5. 2024.
Nyní studovat
Kapitola obsahuje:
1
Studijní text
1
Web
Učitel doporučuje studovat nyní – od 13. 5. 2024.

Týden 1 - Úvod do Javy

Záznamy přednášek

Přednáška - slidy

Demo programy z přednášek

Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům.

Cvičení

Course organization, administration, and rules
Assessment, exams, regular project labs, homework projects, code requirements, ...
Setting up the development environment
Required software, setting up IDE and its usage, troubleshooting, ...
Git workflow
Principles, setting, and usage in simplified vs. advanced mode, troubleshooting, ...
Wiki for tutors
An additional source of information for tutors (not accessible to students).



Týden 2 - Úvod do objektového programování, konstruktory, zapouzdření, konvence jmen

Záznamy přednášek

Přednášky -- slidy

Konstruktory
Počáteční nastavení objektu po vzniku
Konvence
Měkká pravidla, zvyklosti psaní kódu - abychom uměli číst kód a psát čitelný kód i v týmu
Datové typy
Primitivní a objektové typy - čísla, znaky, boolean, řetězce, vlastní objekty
Dokumentace pomocí JavaDoc
Dokumentační komentáře

Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek

Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Cvičení

Týden 3 - Statické proměnné a metody, neměnné objekty, přetěžování

Záznamy přednášek

Přednáška - slidy

Statické atributy a metody
Co patří celé třídě a ne jednomu objektu
Výčtový typ
Pevně dané množina několika pojmenovaných hodnot
Neměnné objekty
Nosiče dat = jednou vytvořím, mnohokrát sdílím
Přetěžování metod
Když má jedna třída více metod se stejným názvem

Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek

Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Repl.it: řídicí struktury
interaktivní online demo
Repl.it: výčtový typ
interaktivní online demo
Repl.it: pole
interaktivní online demo


Cvičení

Týden 4 - Rozhraní

Záznamy přednášek

Přednáška - slidy

Rozhraní
Popíšeme, co objekty mají umět
(Výchozí metody rozhraní)
volitelná kapitola
(Rozšiřování rozhraní)
volitelná kapitola
Testování
Testování jednotek - nejmenších částí programu
Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek

Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Repl.it: Rozhraní - Shapes
Příklad na: Point, Rectangle, Shape, Square

Cvičení








Týden 5 - Dědičnost, viditelnost

Záznamy přednášek

Přednáška - slidy

Dědičnost
podědíme (převezmeme) atributy a metody třídy
Potíže s dědičností
dědičnost je mocnou, ale těsnou závislostí

Viditelnost
přístupnost atributů, metod a tříd odjinud jako součást zapouzdření
Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek


Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Cvičení

Týden 6 - Abstraktní třídy, porovnávání objektů (equals)

Záznamy přednášek

Přednáška - slidy

Abstraktní třídy
třídy, kde je některá z metod nedefinovaná, "k dopracování"
Porovnávání hodnot a objektů
==, !=, equals, compareTo
Pomocná třída "Objects"
pár univerzálních šikovných metod na ulehčení práce s objekty
Pole
pole jsou v Javě objektem, který je třeba vytvořit pomocí "new"
Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek

Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Cvičení

Týden 7 - Kontejnery, List a Set

Záznamy přednášek

  • Úterý 10:00 D3 - Tomáš Pitner

Přednáška - slidy

Kontejnery
dynamické struktury - proměnlivý počet prvků, avšak stejný typ
Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek

Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Cvičení

Týden 8 - Mapy, uspořádané kontejnery

Záznamy přednášek

Přednáška - slidy

Mapy
asociativní pole, dvojice klíč => hodnota
Srovnání kontejnerů
který si vybrat, aby byl program efektivní?
Porovnatelné objekty
definujeme si sami porovnávací kritéria
Typové parametry
další příspěvek k typové bezpečnosti Javy
Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek


Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Cvičení

Týden 9 - Výjimky

Záznamy přednášek

Přednáška - slidy

Regulární výrazy
naprostý základ pro vše :)

Výjimky
řešení nouzových (chybových) situací za běhu
Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek

Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Cvičení

Týden 10 - Hlídané výjimky

Záznamy přednášek

Přednáška - slidy

Výjimky
řešení nouzových (chybových) situací za běhu
Hlídané výjimky
opět zlepšení robustnosti
Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek

Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Cvičení

Týden 11 - Vstupy a výstupy

Záznamy přednášek

Přednáška - slidy

Vstupy a výstupy

Vstupní a výstupní proudy
jednotný přístup k datům vně programu
Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

Demo programy z přednášek

Online samostudium

Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

Cvičení

Týden 12 - Vstupy a výstupy, soubory

Záznamy přednášek

Přednáška - slidy

Soubory
základní práce se soubory na disku
Tisknutelné materiály
HTML nebo PDF celá kapitola v jednom

    Demo programy z přednášek

    Online samostudium

    Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

    Cvičení


    Týden 13 - Konzultace, návaznosti, pokročilá témata

    Záznamy přednášek

      Demo programy z přednášek

      Online samostudium

      Na následujících odkazech naleznete spustitelné online programy, které si můžete bez stahování či instalace spustit, videa k těmto programům, a také procvičovací odpovědník s otázkami na probírané téma.

      Cvičení