Programozás I. jegyzet¶
Az itt található jegyzet nem helyettesíti sem előadáson, sem a gyakorlaton való részvételt.
Az előadás anyaga elérhető a Programozás I. előadás CooSpace színterén.
Ez a tananyag elérhető zip formátumban is, offline használatra ezen a linken.
Szükséges alkalmazások¶
Java nyelvű alkalmazás készítéséhez szükséged lesz a Java Development Kit 17 vagy újabb változatára. A letöltéshez és telepítéshez itt találsz segítséget.
A kabinetben használt Java fordító verzió: javac 17.0.3
Az otthoni gyakorláshoz az alábbi alkalmazásokra lesz/lehet szükséged:
UML szerkesztő¶
Az órák egy részében objektum-orientált tervezést fogunk tanulni, amihez szükséged lesz egy UML szerkesztőre.
Néhány alternatíva:
- ArgoUML Letöltés (a gyakorlaton is ezt a programot használtuk)
 - Violet UML Editor Letöltés vagy WebStart
 - Gliffy Letöltés vagy WebStart
 - Modelio Letöltés
 - Draw.io Indítás
 
Javasolt fejlesztői környezetek¶
- IntelliJ Idea Letöltés (Community verzió), a professional verzió is elérhető és ingyenes egyetemi hallgatóknak, a stud-os e-mail címmel kell regisztrálni az IntelliJ oldalán.
 - Eclipse (Eclipse IDE 2022-12) Letöltés
 - Netbeans Letöltés (Java SE verzió)
 - Visual Studio Code Letöltés
 
A tantárgy tematikája¶
Objektum orientáltság¶
- UML alapok (vizuális modellezés, jelölésrendszer, eszköz, modell, nézet, diagram)
 - Objektumok – állapota, viselkedése, identitása, élete
 - Osztály, csomag, osztálydiagram (asszociáció, aggregáció, öröklődés)
 - Objektum interfésze, implementáció elrejtése
 - Implementáció újrafelhasználása – kompozíció, aggregáció
 - Interfész újrafelhasználása – öröklődés, polimorfizmus
 
A Java nyelv¶
- Primitív típusok
 - Osztályok – új típusok létrehozása, mezők, metódusok, csomagok
 - Generikus osztályok
 - Fordítás és futtatás, virtuális gép, futtató környezet
 - Megjegyzések, dokumentáció, kódolási stílus
 - Programfutás vezérlés, operátorok, precedencia, vezérlési szerkezetek, tömbök
 - Inicializálás és takarítás, konstruktor, szemétgyűjtés
 - Újrafelhasználhatóság – kompozíció, aggregáció, öröklődés, implementáció elrejtése
 - Operáció kiterjesztés és felüldefiniálás, polimorfizmus, kései kötés
 - Végső adatok, metódusok és osztályok
 - Absztrakt és interfész osztályok, "többszörös öröklődés", belső osztályok
 - Hibakezelés kivételekkel és futás közbeni típusazonosítás (RTTI)
 - Osztálykönyvtárak (kollekciók, iterátorok, I/O rendszer, GUI)
 
Irodalom¶
- Tarczali Tünde: UML diagramok a gyakorlatban, Typotex Kiadó, 2011. Letöltés
 - Bruce Eckel: Thinking in Java Letöltés
 - Angster Erzsébet: Objektumorientált tervezés és programozás: JAVA, 4KÖR Bt., 2002
 - Dr. Kondorosi Károly, Dr. László Zoltán, Dr. Szirmay-Kalos László: Objektumorientált szoftverfejlesztés, Computer Books, 1999
 
Az elkészült jegyzetről, hibák¶
Hibák¶
A jegyzet folyamatosan készül, így előfordulhatnak benne apróbb hibák, hiányosságok, elírások.
Ha valaki esetleg ilyet találna, kérem írjon az antal .at. inf.u-szeged.hu címre, hogy mihamarabb javíthassuk. 
Készítők¶
- Antal Gábor
 - Dr. Ferenc Rudolf
 - Dr. Jász Judit
 - Keleti Márton György
 - Kicsi András
 - Szarka Tibor Alex
 - Gercsó Márk
 
Jogi nyilatkozat¶
Nevezd meg! - Ne add el! - Így add tovább! 4.0 Nemzetközi
Gyors összefoglaló a liszenszről, és a teljes változat.