Základy programování v jazyce Java (J110)

Rozvrh dne:

8.00-9.00 První den: registrace, seznámení
Další dny: dotazy na předchozí látku tak, jak vás napadnou v průběhu večera a noci, vyhodnocení řešení domácího úkolu.
9.00-12.00 Dopolední blok přednášek
na závěr vyhlášení příkladu pro odpolední cvičení.
12.00-13.00 Oběd
13.00-14.00 Odpolední cvičení
samostatně řešíte problém zadaný v závěru dopoledního bloku přednášek.
14.00-17.00 Odpolední blok přednášek
na závěr vyhlášení nočního domácího úkolu.


Rozvrh týdne:

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

    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ů


  • Vývojové prostředí

    SunONE version 4