Osztályok és struktúrák közötti különbség

Anonim

Osztályok vs struktúrák

Az objektumorientált (OO) programozási nyelvek fő fogalmai a kapszulázás, az öröklés és a polimorfizmus. Az osztály és a struktúra két OO konstrukció / eszköz, amelyek segítenek a programozóknak ezen elvek elérésében a kilépő OO programozási nyelvek többségében (a Java nem nyújt struktúrákat). Az osztályok absztrakt ábrázolása a valós világ objektumainak. A struktúrák nagyon hasonlóak a hasonló használatra szánt osztályokhoz, de az osztályokhoz képest kevés korlátozás van. Mindkét osztály és struktúra hasonló típusú adatok csoportosítására szolgál.

Mi az osztály?

Az osztályok a valós világ objektumok absztrakt ábrázolását ábrázolják, míg a kapcsolatok azt mutatják, hogy az egyes osztályok hogyan kapcsolódnak másokhoz. Mindkét osztálynak és kapcsolatnak attribútumai vannak. Az osztályok módszerei képviselik vagy definiálják ezeknek az osztályoknak a viselkedését. Az osztályok módszereit és attribútumait az osztály tagjai nevezik. Általában a kapszulázást úgy érjük el, hogy az attribútumokat privát módon hozzuk létre, ugyanakkor olyan nyilvános módszereket hozunk létre, amelyek az említett attribútumok eléréséhez használhatók. Egy objektum egy osztály példánya. Az örökség lehetővé teszi a felhasználók számára, hogy osztályokat (más néven alosztályokat) hívjanak fel más osztályokból (úgynevezett szuperosztályok). A polimorfizmus lehetővé teszi a programozó számára, hogy egy osztály objektumát helyettesítse a szuperosztály egyik objektuma helyett. A probléma definíciójában szereplő főnevek általában a programban lévő osztályokká válnak. És hasonlóképpen az igék válnak módszerekká. Nyilvános, privát és védettek az osztályokhoz használt tipikus hozzáférési modifikátorok. Az osztálydiagram mutatja a rendszerek osztályait, az osztályok közötti kapcsolatokat és azok attribútumait.

Mi a struktúrák?

Amint már említettük, a struktúrák nagyon hasonlóak a hasonló használatra szánt osztályokhoz, de enyhén korlátozott képességek, mint az osztályok. Tény, hogy az osztályok kiterjednek a struktúrákra. Például a struktúrák megegyeznek a C + + osztályokkal, de alapértelmezés szerint vannak nyilvános tagjai. A struktúrát a felhasználó határozhatja meg, hogy egy összetett típust képviseljen. Az osztályokhoz hasonlóan a struktúrák olyan tagokat tartalmaznak, amelyek sokféle típushoz tartoznak. A kulcsszó struktúrában C és C ++ struktúrát definiálunk, míg a Kulcsszó Struktúrát a.NET programozási nyelvekhez hasonlóan használjuk.

Mi a különbség az osztályok és a szerkezetek között?

Bár mindkét osztály és struktúra hasonló programozási nyelvű konstrukció, finom különbségek vannak. Általában az osztály a struktúra kiterjesztése, ezért a struktúrák viszonylagos korlátozásaik vannak. Például a struktúrák ugyanolyanok, mint a C + + osztályok, de a tagok alapértelmezés szerint nem publikusak az osztályokban (a struktúrától eltérően).Ez valójában azt jelenti, hogy a C ++-ban a megfelelő hozzáférési modifikátorok segítségével pontosan ugyanolyan jellemzőkkel definiálhat egy osztályt és egy struktúrát. A C-ban azonban a szerkezetek nem tartalmazhatnak semmilyen funkciót vagy túlterhelt műveletet. A kulcsszavak osztály és struktúra egy osztályt és egy struktúrát definiál C ++ -ként. Amikor arra kerül sor. NET nyelvek (C #, VB.NET stb.), Az osztály referenciatípus, míg a szerkezet értéktípus. És általában a struktúrákat kisebb objektumokhoz használják, de az osztályokat olyan nagyobb objektumokhoz használják, amelyeket hosszabb ideig a memóriában tárolnak.