Skillnad mellan klasser och strukturer

Anonim

Klasser vs Strukturer

Några av huvudbegreppen i Objektorienterade (OO) programmeringsspråk är inkapsling, arv och polymorfism. Klass och struktur är två av OO-konstruktionerna / verktygen, som hjälper programmerare att uppnå dessa begrepp inom de flesta av de spännande OO-programmeringsspråken (Java tillhandahåller inte strukturer). Klasser är en abstrakt representation av verkliga världsobjekt. Strukturer ligner mycket klasser med liknande användning men har få begränsningar jämfört med klasser. Både klasser och strukturer används för att gruppera liknande data, tillsammans.

Vad är klasser?

Klasser visar den abstrakta representationen av verkliga världsobjekt, medan relationerna visar hur varje klass är kopplad till andra. Både klasser och relationer har egenskaper som kallas attribut. Metoder i klasserna representerar eller definierar beteendet hos dessa klasser. Metoder och attribut för klasser kallas klassens medlemmar. Typiskt uppnås inkapsling genom att göra attributen privata, samtidigt som man skapar offentliga metoder som kan användas för att få tillgång till dessa attribut. Ett objekt är förekomsten av en klass. Erfarenhet gör att användaren kan förlänga klasser (kallad underklasser) från andra klasser (kallad superklasser). Polymorfism tillåter programmeraren att ersätta ett objekt av en klass i stället för ett objekt av sin superklass. Vanligtvis blir substantiverna i problemdefinitionen direkt klasser i programmet. Och på samma sätt blir verben metoder. Offentliga, privata och skyddade är de typiska åtkomstmodifierare som används för klasser. Ett klassdiagram visar systemets klasser, relationer mellan klasser och deras attribut.

Vad är strukturer?

Såsom nämnts ovan är strukturer mycket likartade klasser med liknande användningsområden, men har lite begränsade möjligheter än klasser. Faktum är att klasser kan betraktas som en förlängning till strukturer. Exempelvis är strukturerna samma som klasser i C ++, men de har vanliga medlemmar som standard. En struktur kan definieras av användaren för att representera en typ som är komposit. I likhet med klasser innehåller strukturer medlemmar som kan tillhöra många typer. Nyckelordstrukturen används för att definiera en struktur i C och C ++, medan sökordsstrukturen används för samma i. NET-programmeringsspråk.

Vad är skillnaden mellan klasser och strukturer?

Även om både klasser och strukturer är liknande konstruktioner som finns i programmeringsspråk, har de subtila skillnader. Typiskt är klassen en förlängning av strukturen, och strukturerna har därför vissa relativa begränsningar. Exempelvis kan strukturer anses vara desamma som klasser i C ++, men medlemmar är inte offentliga som standard i klasser (till skillnad från strukturer).Det betyder faktiskt att du kan definiera en klass och en struktur med exakt samma egenskaper med hjälp av lämpliga åtkomstmodifierare i C ++. Men i C kan strukturer inte innehålla några funktioner eller överbelastade operationer. Nyckelord klass och struktur används för att definiera en klass och en struktur i respektive C ++. När det kommer till. NET-språk (C #, VB. NET, etc.), klassen är en referenstyp, medan strukturen är en värde typ. Vanligtvis används strukturer för mindre objekt, men klasser används för större föremål som hålls i minnet under längre perioder.