Objektové programování OKRIT 2024
Diagrama de temas
-
Objektové programování
Posláním předmětu Objektové programování je rozvinutí praktických dovedností v programování s důrazem na základy programování objektového a poskytnutí odpovídajících teoretických poznatků.
Cílem předmětu je seznámení studentů s objektovým přístupem k algoritmizaci a programování prostřednictvím jazyka Java a specifiky objektového přístupu v kontrastu k procedurálnímu, resp. funkcionálnímu přístupu. Cílem předmětu v oblasti teoretické je vybavit studentu poznatky z teorie OOP a její reflexí v algoritmizaci. V oblasti praktické je cílem předmětu zvládnutí vlastního programování a realizace projektů v objektových vývojových nástrojích.
Obsah předmětu sleduje linii cílových oblastí a věnuje se vstupně výstupním operacím, třídám, objektům, metodám, datovým složkám, problematice konstruktorů, základům dědičnosti, rozhraním, výjimkám, práci se soubory a základům práce s datovými kontejnery, a to v rozsahu nutném pro implementaci jednodušších projektů.
Základní literatura
HEROUT, P. Učebnice jazyka Java. České Budějovice : Kopp, 2010. (stará učebnice, ale didakticky velmi zdařilá)
MURACH, J. Murach's Java Programming (6th Edition). 2022.
PECINOVSKÝ, R. Začínáme programovat v jazyku Java. Praha : Grada 2022.
SCHILDT, H., Java: The Complete Reference, Twelfth Edition, 2021.
SCHILDT, H., Java: A Beginner's Guide, Ninth Edition. McGraw-Hill 2022.
Podmínky ukončení předmětu:
První podmínkou pro úspěšné zakončení předmětu je odevzdání výstupů k distančním částem, které budou zadávány a odevzdávány průběžně prostřednictvím VLE Moodle, přičemž je nutné dosáhnout celkového průměrného hodnocení úkolů alespoň 80 %. Neodevzdané výstupy se započítávají do průměru s hodnocením 0 %. Všechny výstupy bude možné na základě hodnocení přepracovat a odevzdat znovu (termín pro přepracovanou verzi bude adekvátně posunut).
Druhou podmínkou je úspěšné složení zkoušky. Zkouška má praktickou a ústní část. Ústní část je podmíněna úspěšným složením praktické části (tj. hodnocení praktické části nejméně 50 %).
- praktická část zkoušky: vypracování úloh dle zadání, které bude realizováno prezenční formou v předem vypsaných termínech ve zkouškovém období. Zadání, které studující obdrží bude obsahovat 4 - 6 jednodušších úloh a jeho úkolem bude naprogramovat funkční řešení ve stanoveném časovém limitu.
- ústní část zkoušky: V ústní části zkoušky se požadují znalosti programovacího jazyka v rozsahu dle sylabu předmětu a algoritmů, které byly probírány v hodinách. Součástí zkoušky může být i rozprava nad řešením úloh z praktické části.
Pokyny pro distanční část:
Po každé prezenční části následuje distanční část v rozsahu 3 hodiny. Distanční část bude mít charakter cvičení, v jehož rámci budete řešit úlohy (napsat program dle zadání). Zadání úloh naleznete u příslušných tematických bloků (dokumenty s názvem Distanční část ...) a navíc na ně budete vždy upozorněni v příslušných prezenčních částech. Odevzávání výstupů bude realizováno opět v Moodle (položky s názvy Odevzdání výstupů - Distanční část ...), ve stejných tematických blocích, kde je i zadání. Pro příslušnou distanční část se všechny výstupy odevzdávají ve formě archivu ZIP.
-
Úvod - objektové programování:
- Charakteristika objektového programování
- Pojmy:
- objekt
- vlastnosti
- metody
- třída
Seznam SW a dokumentace k jazyku Java:
- Javové běhové prostředí - JRE
- Vývojové nástroje - JDK
- Vývojové prostředí NetBeans (https://netbeans.org/downloads/)
- Vývojové prostředí Visual Studio Code
- https://code.visualstudio.com/download
- https://code.visualstudio.com/docs/languages/java (Install the Coding Pack for Java)
Další zdroje pro studium (online zdroje):
- Skripta (stará; níže v PDF už ke stažení): https://java.vse.cz/4it101/Literatura
- W3S tutorial: https://www.w3schools.com/java/default.asp
Oracle tutorial
- Rozcestník: https://docs.oracle.com/javase/tutorial/index.html
- Learning the Java Language: https://docs.oracle.com/javase/tutorial/java/index.html
ITnetwork:
- ITnetwork kurz (nutnost přihlást se přes FB): https://www.itnetwork.cz/java/oop/java-tutorial-uvod-do-objektove-orientovaneho-programovani
-
Třídy a objekty
- Třída
- Objekt
- Datové složky
- Metody
- Přístup k datovým složkám a metodám
- Ochrana dat - přístupová práva
Primitivní a objektové proměnné
- Primitivní proměnné a paměť
- Objektové proměnné a paměť
- Kopírování hodnot a referencí - důsledky
Konstruktory
- explicitní a implicitní
- bezparametrické a s parametry
-
Ukazatel this
- ukazatel this
- využití v konstruktorech a metodách
Statické složky tříd
- statické proměnné
- statické metody
- metoda main a "hlavní třída"
Pole
- pole v Javě
- vytvoření pole
- práce s polem
-
Dědičnost:
- základní princip dědičnosti
- polymorfizmus
- abstraktní a finální metody a třídy
- základní princip dědičnosti
-
Rozhraní
- koncept rozhraní a souvislost s tzv. vícenásobnou dědičností u jiných OOP
- implementace rozhraní
- rozhraní a dědičnost
-
Soubory
- základní třídy pro práci se soubory
- proudy pro práci se soubory
- základní postupy při čtení ze souboru a při zápisu do souboru
Výjimky
- mechanizmus výjimek v Javě
- třída Exception a hierarchie tříd výjimek
- zachytávání, ošetření a propouštění výjimek