| Po |
Přednáška: |
Svět objektů – objektově orientované programování
Historie programovacích jazyků
Třídy a objekty a jejich použití v programech
Atributy a metody instancí a třídy
Dědičnost a polymorfizmus, časná a pozdní vazba
Skrývání implementace
Kontejnery a iterátory
Abstraktní třídy a rozhraní
Úklid zaniklých objektů
Současné trendy návrhu programových systémů
Seznámení s jednoduchými nástroji pro návrh datového modelu
Začínáme programovat v jazyku Java
Vývojové prostředí SunONE version 4
Výukové prostředí Robot
První program
Identifikátory
Komentáře a vložená dokumentace
Doporučené konvence pro zápis programů
Primitivní a objektové datové typy
Používání atributů a metod
Datový typ String
Operátory a jejich specifika v jazyce Java
|
| Cvičení: |
Návrh datového modelu a UML diagramu prostředí robota Karla
Seznamování se s vývojovým prostředím
|
| Út |
Přednáška: |
Základní programové konstrukce
Bloky příkazů
Příkazy cyklů
Rozhodovací příkazy
Příkazy pro nestandardní pokračování
Základy práce s třídami a objekty
Metody instancí a tříd
Přetěžování metod
Atributy instancí a tříd
Objekty jako atributy
Konstanty
Konstruktory
Náhrada výčtových datových typů
Parametr this
Zřetězené volání metod
Pole
Jednorozměrná pole
Vícerozměrná pole
Vícerozměrné pole implementované jako jednorozměrné
Pole jako parametr a návratová hodnota
Předávání parametrů
Dědičnost
Přidávání atributů a metod
Konstruktory dceřinných tříd
Dědění chráněných složek
Přetypování na předka a na potomka
|
| Cvičení: |
- Samostatné řešení úloh pro robota
- Zjednodušené prostředí robota
|
| St |
Přednáška: |
Polymorfizmus
Přetěžování × překrytí
Pozdní vazba
Přetypování na předka a na potomka
Konstruktory a polymorfizmus
Abstraktní třídy a abstraktní metody
Přetížení × překrytí
Skládání, dědičnost a jejich kombinace
Klíčové slovo final – konečné metody, třídy
Správa dynamických objektů – správce paměti (garbage collector)
Finalizace
Rozhraní
Rozhraní - bezpečnější vícenásobná dědičnost
Dědění rozhraní
Inicializace datových složek rozhraní
Vnořování rozhraní
Použití prázdných rozhraní
Vytváření a používání knihovních modulů
Balíky a jejich hierarchická organizace
Tipy pro efektivní ladění
Práce s textovými řetězci – třída String
Třída StringBuffer a její možnosti
|
| Cvičení: |
- Zajímavé dceřinné třídy robota
- Prostředí robota využívající externí moduly
|
| Čt |
Přednáška: |
Vnitřní třídy
Vnitřní třídy a jejich základní vlastnosti
Implementace rozhraní vnitřní třídou
Vnitřní třídy v metodách a blocích
Statické vnitřní třídy
Dědění od vnitřních tříd
Vnitřní třídy – jiný způsob realizace násobné dědičnosti
Uzávěry a zpětná volání
Anonymní vnitřní třídy a jejich použití
Výjimky
Koncepce výjimek v jazyku Java
Zachycení výjimky
Vyvolání výjimky
Hierarchie výjimek
Vlastní výjimky
Metody generující výjimky
Metody třídy Throwable
|
| Cvičení: |
- Programy využívající vnitřní a anonymní vnitřní třídy
- Rozšíření prostředí robota o generování výjimek
|
| Pá |
|
Opakování, úvod do témat následujícího kurzu
Třída Arrays a její služby
Třída Arrays2
Dynamická pole – třída ArrayList
Základy GUI
Vyhodnocení kurzu, návrhy na vylepšení příštích kurzů
|