Osztályok vs struktúrák
Az Object Oriented (OO) programozási nyelvek néhány fő fogalma a kapszulázás, az öröklődés és a polimorfizmus. Az osztály és a struktúra az OO konstrukciók / eszközök közül kettő, amelyek segítenek a programozóknak elérni ezeket a koncepciókat a legtöbb kilépő OO programozási nyelvben (a Java nem nyújt struktúrákat). Az osztályok a valós objektumok elvont ábrázolása. A struktúrák nagyon hasonlítanak a hasonló felhasználású osztályokhoz, de az osztályokhoz képest kevés korlátozással rendelkeznek. Mind az osztályokat, mind a struktúrát hasonló típusú adatok csoportosítására használják.
Mik az osztályok?
Az osztályok a valós objektumok elvont ábrázolását ábrázolják, míg a kapcsolatok azt mutatják, hogy az egyes osztályok hogyan kapcsolódnak másokhoz. Az osztályoknak és a kapcsolatoknak is vannak tulajdonságai, amelyeket attribútumoknak nevezünk. Az osztályokban alkalmazott módszerek képviselik vagy meghatározzák ezen osztályok viselkedését. Az osztályok módszereit és attribútumait az osztály tagjainak nevezzük. Általában a beágyazást úgy érik el, hogy az attribútumokat priváttá teszik, miközben nyilvános módszereket hoznak létre, amelyek felhasználhatók az adott attribútumok eléréséhez. Az objektum egy osztály példánya. Az öröklés lehetővé teszi a felhasználó számára, hogy osztályokat (alosztályoknak) kiterjesszen más osztályokból (úgynevezett szuper osztályokból). A polimorfizmus lehetővé teszi a programozó számára, hogy egy osztály objektumát helyettesítse a szuper osztályának objektuma helyett. Jellemzően a probléma meghatározásában található főnevek közvetlenül a program osztályává válnak. És hasonlóan,az igék módszerekké válnak. A nyilvános, a privát és a védett az osztályokhoz használt tipikus hozzáférés-módosító. Az osztálydiagram bemutatja a rendszerek osztályait, az osztályok közötti kapcsolatokat és azok attribútumait.
Mik azok a struktúrák?
Mint fent említettük, a struktúrák nagyon hasonlóak a hasonló felhasználású osztályokhoz, de kissé korlátozott képességekkel bírnak, mint az osztályok. Valójában az osztályok a struktúrák kiterjesztésének tekinthetők. Például a struktúrák megegyeznek a C ++ osztályaival, de alapértelmezés szerint vannak nyilvános tagjai. A felhasználó meghatározhat egy szerkezetet, amely összetett típust képvisel. Az osztályokhoz hasonlóan a struktúrák olyan tagokat tartalmaznak, amelyek sok típusba tartozhatnak. A struct kulcsszó egy struktúra definiálására szolgál C és C ++ nyelven, míg a Structure kulcsszó ugyanarra a. NET programozási nyelvekben.
Mi a különbség az osztályok és a struktúrák között?
Annak ellenére, hogy mind az osztályok, mind a struktúrák hasonló konstrukciók a programozási nyelvekben, finom különbségek vannak bennük. Az osztály általában a szerkezet kiterjesztése, ezért a struktúráknak vannak bizonyos relatív korlátai. Például a struktúrákat ugyanúgy lehet tekinteni, mint a C ++ osztályait, de a tagok alapértelmezés szerint nem nyilvánosak az osztályokban (ellentétben a struktúrákkal). Ez tulajdonképpen azt jelenti, hogy pontosan azonos jellemzőkkel definiálhat egy osztályt és struktúrát a C ++ megfelelő hozzáférési módosítóinak használatával. A C-ben azonban a struktúrák nem tartalmazhatnak funkciókat vagy túlterhelt műveleteket. Az class és a struktúra kulcsszavakkal osztály és struktúra definiálható a C ++ nyelven. A. NET nyelvekről (C #, VB. NET stb.) Az osztály referencia típus, míg a struktúra érték típus. És általában,struktúrákat használnak kisebb objektumokhoz, de osztályokat nagyobb objektumokhoz, amelyeket hosszabb ideig tartanak a memóriában.