Az osztályok és a struktúrák közötti különbség

Az osztályok és a struktúrák közötti különbség
Az osztályok és a struktúrák közötti különbség

Videó: Az osztályok és a struktúrák közötti különbség

Videó: Az osztályok és a struktúrák közötti különbség
Videó: Mi A Különbség Az SDBN Token És Más Kriptovaluták Között? | Gyakori Kérdések 2/10 2024, Július
Anonim

Osztályok vs szerkezetek

Az objektumorientált (OO) programozási nyelvek néhány fő fogalma a beágyazá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 nyelven belül (a Java nem biztosít struktúrákat). Az osztályok a valós világ objektumainak absztrakt reprezentációi. A struktúrák nagyon hasonlítanak a hasonló felhasználású osztályokhoz, de az osztályokhoz képest kevés korlátjuk van. Az osztályok és a struktúra is hasonló típusú adatok csoportosítására szolgál.

Mik azok az osztályok?

Az osztályok a valós világ objektumainak absztrakt ábrázolását ábrázolják, míg a kapcsolatok azt mutatják be, hogy az egyes osztályok hogyan kapcsolódnak másokhoz. Mind az osztályoknak, mind a kapcsolatoknak vannak attribútumoknak nevezett tulajdonságok. Az osztályokban lévő metódusok képviselik vagy meghatározzák ezen osztályok viselkedését. Az osztályok metódusait és attribútumait az osztály tagjainak nevezzük. A beágyazást általában úgy érik el, hogy az attribútumokat priváttá teszik, miközben nyilvános metódusokat hoznak létre, amelyekkel az attribútumok elérhetők. Az objektum egy osztály példánya. Az öröklődé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 szuperosztályokból). A polimorfizmus lehetővé teszi a programozó számára, hogy egy osztály objektumát helyettesítse a szuperosztályának objektumával. Általában a problémameghatározásban található főnevek közvetlenül osztályokká válnak a programban. És ehhez hasonlóan az igék módszerekké válnak. Nyilvános, privát és védett az osztályokhoz használt tipikus hozzáférés-módosítók. Az osztálydiagram a rendszerek osztályait, az osztályok közötti kapcsolatokat és azok attribútumait mutatja be.

Mik azok a struktúrák?

Amint fentebb említettük, a struktúrák nagyon hasonlítanak a hasonló felhasználású osztályokhoz, de képességeik kissé korlátozottak, 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 nyilvános tagjai vannak. A felhasználó úgy határozhat meg egy szerkezetet, hogy egy összetett típust képviseljen. Az osztályokhoz hasonlóan a struktúrák is tartalmaznak olyan tagokat, amelyek sok típushoz tartozhatnak. A struct kulcsszó a struktúra meghatározására szolgál C és C++ nyelven, míg a Structure kulcsszó 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, vannak apró különbségek. Az osztály jellemzően a struktúra kiterjesztése, ezért a struktúráknak vannak relatív korlátai. Például a struktúrák a C++ osztályaival azonosnak tekinthetők, de a tagok alapértelmezés szerint nem nyilvánosak az osztályokban (a struktúrákkal ellentétben). Ez tulajdonképpen azt jelenti, hogy a C++ megfelelő hozzáférési módosítóival pontosan azonos jellemzőkkel rendelkező osztályt és struktúrát definiálhatunk. C-ben azonban a struktúrák nem tartalmazhatnak függvényeket vagy túlterhelt műveleteket. A class és a struct kulcsszavak osztályok és struktúrák meghatározására szolgálnak a C++ nyelven. Ha. NET nyelvekről van szó (C, VB. NET stb.), az osztály egy referenciatípus, míg a struktúra egy értéktípus. És általában a struktúrákat kisebb objektumokhoz használják, de az osztályokat a nagyobb objektumokhoz, amelyeket hosszabb ideig tárolnak a memóriában.

Ajánlott: