Objektumorientált programozás¶
Az objektumorientált vagy objektumelvű programozás (angolul object-oriented programming, röviden OOP) az objektumok fogalmán alapuló programozási paradigma. Az objektumok egységbe foglalják az adatokat és a hozzájuk tartozó műveleteket. Az adatokat ismerik mezők, attribútumok, tulajdonságok néven, a műveleteket metódusokként szokták emlegetni. Az objektum által tartalmazott adatokon általában az objektum metódusai végeznek műveletet. A program egymással kommunikáló objektumok összességéből áll. A legtöbb objektumorientált nyelv osztály alapú, azaz az objektumok osztályok példányai, és típusuk az osztály.
Például egy hétköznapi fogalom, a „kutya” felfogható egy osztály (a kutyák osztálya) tagjaként, annak egyik objektumaként. Minden kutya objektum rendelkezik a kutyákra jellemző tulajdonságokkal (például szőrszín, méret stb.) és cselekvési képességekkel (például futás, ugatás).
A legtöbb széles körben alkalmazott nyelv többek között az objektumorientált programozást is támogatja, tipikusan az imperatív, procedurális programozással együtt. A legfontosabb objektumorientált nyelvek: Java, C++, C#, Python, PHP, Ruby, Perl, Object Pascal, Objective-C, Dart, Swift, Scala, Common Lisp, és Smalltalk.
Osztály létrehozása¶
Osztály létrehozásához használd a class
kulcsszót:
Objektum létrehozása, példányosítása:
Konstruktor¶
A fenti példák osztályok és objektumok a legegyszerűbb formájukban, és nem igazán hasznosak a valós alkalmazásokban.
Az osztályok jelentésének megértéséhez meg kell értenünk a beépített __init__()
függvényt.
Minden osztálynak van egy __init__()
nevű függvénye, amely mindig végrehajtásra kerül az osztály indításakor.
Használd az __init__()
függvényt, hogy értékeket rendelj az objektum tulajdonságaihoz, vagy más műveleteket, amelyeket az objektum létrehozásakor kell elvégezni:
Megjegyzés
Az __init__()
függvény automatikusan meghívásra kerül minden alkalommal, amikor az osztályt új objektum létrehozására használják.
Metódusok¶
Az objektumok metódusokat is tartalmazhatnak. Az objektumokban lévő metódusok az objektumhoz tartozó függvények.
Hozzunk létre egy metódust a Person
osztályban:
Megjegyzés
A self
paraméter az osztály aktuális példányára való hivatkozás, és az osztályhoz tartozó változók elérésére szolgál.
self paraméter¶
A self paraméter az osztály aktuális példányára való hivatkozás, és az osztályhoz tartozó változók elérésére szolgál.
Nem kell önmagának nevezni, hívhatod, ahogy akarod, de az osztály bármely függvényének első paramétere kell legyen:
Attribútum¶
Az objektum attribútumának módosítása¶
Az objektumok tulajdonságait így módosíthatod: