Objektumorientált alapjai ISZAM III.évf. részére Bunkóczi László
Miért fontos? „ Bill Gates azt nyilatkozta a Borland Turbo Pascalról, hogy "Ha az objektum-orientált programozás tényleg olyan nagy durranás, akkor mégis miért van az, hogy az alkalmazásokat jórészt sima C-ben írják?" Azóta már vannak olyan programnyelvek, hogy osztályok nélkül (alakilag) semmit sem tudunk csinálni (pl.C#)
Esettanulmány „Sajnos nem ez a helyzet. Objektum- orientáltan is ugyanannyi kódot kell írnunk, mint anélkül, mint ahogyan struktúráltan programozva is ugyanannyi munkánk van, mintha mezítlábas tömbökkel dolgoznánk. Az előny nem abból ered, hogy valamit meg tudunk spórolni, hanem abból, hogy objektum-orientáltan programozva a kód struktúráltabb, magyarán ÁTTEKINTHETŐBB lesz.
Mi az objektum? Egy osztály (Class) egy példánya Mi az osztály? Összetartozó változók és azokat módosító metódusok gyűjteménye – ennek egy példánya az/egy objektum Egy osztály létrehozásával csak a kereteit teremtjük meg egy objektum létezésének és annak (azok) manipulálási lehetőségét
Egységbe zárás - Encapsulation Összetartozó változók és azokat módosító metódusok gyűjteménye (tag)Változók amelyekkel leírjuk az adott objektumot – C-ben Def struct-tal lehetett ilyet létrehozni (utána jött létre az OOP) Tagfüggvények (metódusok) amelyekkel megváltoztat(hat)juk a változók állapotát
Öröklődés Class négyszögek (a,b,c,d)-> inherits Class négyzetek (a) Class téglalapok (a,b) Class rombuszok (a,b) Stb A szűlő osztály nem módosítható, de a leszármazottak bővíthetik, módosíthatják önmagukon belül az eredetit
Objektum létrejötte A Class alapján egy ún.konstruktor fv. hoz létre egy példányt, de értékadás nem biztos hogy történik vagy default- ok Megszűnés: destruktor fv. Vagy C#-ben és Java-ban garbage collector – futás közben szabadít fel tárat
Nyílvánosság Az osztályok (objektumok) adattagjai vagy : Public (nyílvánosak) Private (csak a saját osztály vagy leszármazottak láthatják) Protected (csak osztályon belül)
Pattogó labdák esetén Class labda { // adattagok Var x, y, (r) Var dx, dy } { //metodusok Fv mozgas{…………………} Fv pattanas {…………………} Fv ütközés {…………………} } Labda1= new labda
Bővebben a web-en =objektumorient%C3%A1lt+programoz %C3%A1s&btnG=Google+keres%C3% A9s&meta=