Flest programmerare vet att ett datorprogram innehåller ingenting mer än data och instruktioner för att manipulera data. Ditt mål , som programmerare , är att representera data på det mest effektiva och lätta strukturen möjligt . Båda "klasser" och "strukturer " tillåter dig att representera olika typer av data . Många språk har både klasser och strukturer, däribland C + + , C # , Java och Visual Basic . ( Vissa språk avser en byggnad som en " struct . " ) Du kan instansiera båda klasserna och strukturer i det konventionella sättet och komma åt medlemmar i både med dot -point notation , men skillnaderna mellan de två datatyperna uppväga dessa några likheter . Syfte
klasserna utgör grunden för de flesta moderna objektorienterade språk och möjliggör ändlösa manipulation . När du använder en klass för att representera data , har du den fulla kraften i ett objektorienterat programmeringsspråk till ditt förfogande . Gör en klass din standard datatyp och använda den när du inte är säker på vilket värde typ som fungerar bäst . Använd en struktur , i kontrast , bara när du behöver manipulera ett visst antal icke - Referenstyp värden som en enhet . Programmerare använder oftast strukturer för att representera geometriska objekt , spelresultat och annan relativt enkel information .
Underliggande Typ
En struktur är ett värde typ , medan en klass är en referens typ . Värdetyper representera tal och text , och finns bara i stacken . Detta innebär att när du kopierar en struktur , du skapar en helt ny post i minnet . Ändringar av nya objektet inte påverkar den ursprungliga objektet . Referens typer , däremot , finns både på stacken och heap . När du kopierar en klass , är du verkligen bara kopiera referensen adress till en minnesplats på högen . Så när du ändrar en kopia av ett objekt , ändrar du även alla kopior i minnet .
Destructors
Beroende på vilket språk du använder , du får ofta använda destruktorer med klass objekt . I C + + , liksom i ADO.Net programmering , destruktorer tillåter dig att se till att processorn förstör minneskrävande objekt så snart de inte längre behövs . Men tillåter många programmeringsspråk såsom C # , inte dig att använda destruktorer med en struktur . Istället disponerar sophämtare objektet av strukturer automatiskt .
Arv
som referens typer , kan klasser ärver från andra klasser . Detta innebär att du kan skapa en " boy " klass som ärver alla objekt och egenskaper från en " människa " klass . I sin tur kan den personen klassen ärver medlemmarna av " varelse " klass . Konstruktioner , däremot inte kan ärva från andra strukturer. Följaktligen är de inneboende förseglade .