Osztályok vs. struktúrák
Az objektum-orientált (OO) programozási nyelvek néhány fő fogalma a kapszulázás, az öröklés és a polimorfizmus. Az osztály és a szerkezet két olyan OO konstrukció / eszköz, amelyek segítenek a programozóknak ezen elképzelések elérésében a létező OO programozási nyelvek nagy részén belül (a Java nem nyújt struktúrákat). Az osztályok a valós tárgyak elvont ábrázolása. A struktúrák nagyon hasonlóak a hasonló felhasználású osztályokhoz, de az osztályokhoz viszonyítva kevés korlátozás van. Mind az osztályokat, mind a szerkezetet hasonló típusú adatok együttes csoportosítására használják.
Mik az osztályok??
Az osztályok a valós objektumok elvont ábrázolását, míg a kapcsolatok ábrázolják, hogy az egyes osztályok hogyan kapcsolódnak másokhoz. Mind az osztályok, mind a kapcsolatok tulajdonságokkal, úgynevezett attribútumokkal rendelkeznek. 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. A beágyazást általában úgy érik el, hogy az attribútumokat magánjellegűvé teszik, miközben olyan nyilvános módszereket hoznak létre, amelyek felhasználhatók az attribútumokhoz. Az objektum egy osztály példánya. Az öröklés lehetővé teszi a felhasználó számára az osztályok (úgynevezett alosztályok) kiterjesztését más osztályokból (úgynevezett szuper osztályok). A polimorfizmus lehetővé teszi a programozó számára, hogy egy osztály tárgyát helyettesítse a szuper osztály tárgya helyett. Általában a problémameghatározásban található főnevek közvetlenül osztályokká válnak a programban. Hasonlóképpen, az igék módszerekké válnak. Az osztályokhoz általában a nyilvános, a magán és a védett hozzáférést módosító eszközöket használják. Az osztálydiagram bemutatja a rendszerek osztályait, az osztályok közötti kapcsolatokat és azok attribútumait.
Mik a struktúrák??
Mint fentebb említettük, a struktúrák nagyon hasonlóak a hasonló felhasználású osztályokhoz, de kissé korlátozottak a képességeik, mint az osztályok. Valójában az osztályokat a struktúrák kiterjesztésének tekinthetjük. Például a struktúrák megegyeznek a C ++ osztályokkal, de alapértelmezés szerint nyilvános tagok. A felhasználó meghatározhat egy struktúrát, amely egy összetett típust ábrázol. Az osztályokhoz hasonlóan a struktúrák olyan tagokat tartalmaznak, amelyek számos típushoz tartozhatnak. A struct kulcsszó egy struktúra meghatározására szolgál C és C ++ formában, míg a Structure kulcsszó ugyanahhoz a .NET programozási nyelven használható..
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, amelyeket a programozási nyelvekben találnak, apró különbségek vannak. Az osztály általában a struktúra kiterjesztése, ezért a struktúráknak vannak bizonyos relatív korlátai. Például, a struktúrák ugyanolyannak tekinthetők, mint a C ++ osztályok, de a tagok alapértelmezés szerint nem nyilvánosak az osztályokban (a struktúrákkal ellentétben). Ez valójában azt jelenti, hogy pontosan azonos jellemzőkkel definiálhat egy osztályt és struktúrát a megfelelő hozzáférési módosítókkal a C ++ alkalmazásban. A C-ben azonban a struktúrák nem tartalmazhatnak semmilyen funkciót vagy túlterhelt műveletet. Az class és az struct kulcsszavak osztályt és struktúrát határoznak meg a C ++ sorrendben. A .NET nyelvek (C #, VB.NET stb.) Esetében az osztály referencia típus, míg a struktúra érték típus. És általában a struktúrákat kisebb objektumokhoz használják, az osztályokat pedig nagyobb objektumokhoz, amelyeket hosszabb ideig tárolnak a memóriában.