De fleste programmerere vet at et dataprogram inneholder noe mer enn data og instruksjoner for å manipulere data . Målet ditt, som programmerer , er å representere data på en mest mulig effektiv og lett struktur mulig. Begge "klasser " og " strukturer " tillate deg å representere ulike typer data . Mange språk har begge klasser og strukturer , blant annet C + + , C #, Java og Visual Basic. ( Noen språk henviser til en struktur som en " struct .") Du kan instantiate begge klasser og strukturer i den konvensjonelle måten og få tilgang til medlemmer av både hjelp dot- point notasjon , men forskjellene mellom de to datatyper oppveier disse få likheter. Formål
klasser danner grunnlaget for de fleste moderne objektorienterte språk og gir mulighet for endeløse manipulasjon. Når du bruker en klasse for å representere dataene dine , har du full effekt av et objektorientert programmeringsspråk til din disposisjon . Lag en klasse standard datatype og bruke den når du ikke er sikker på hvilken verdi fungerer best . Bruk en struktur , i motsetning, bare når du trenger å manipulere et sett antall ikke - referansetype verdier som en enhet . Programmerere bruker vanligvis strukturer for å representere geometriske objekter , poengsummer og andre relativt enkel informasjon .
Underliggende Type
En struktur er en verdi type, mens en klasse er en referanse type. Typer verdier representerer tall og tekst , og eksisterer bare i bunken . Dette betyr at når du kopierer en struktur , oppretter du et helt nytt element i minnet . Modifikasjoner på nytt objekt påvirker ikke det opprinnelige objektet . Referanse typer , derimot , finnes både på stakken og haugen . Når du kopierer en klasse , er du egentlig bare kopiere referansen adresse til et minneområde på haugen. Så når du endrer en kopi av et objekt , må du også endre alle kopiene i minnet .
Destructors
Avhengig av hvilket språk du bruker, du kan ofte bruke destructors med klasse objekter . I C + + , samt i ADO.Net programmering, destructors tillate deg å sørge for at prosessoren ødelegger minne intensive gjenstander så snart de ikke lenger er nødvendig . Men mange programmeringsspråk som C # , ikke tillate deg å bruke destructors med en struktur . I stedet disponerer garbage collector objekt av strukturer automatisk.
Arv
p Som referanse typer , kan klasser arver fra andre klasser . Dette betyr at du kan lage en " gutt " klasse som arver alle objekter og egenskaper fra en " person "-klassen . I sin tur , kan personen klassen arver medlemmer av " skapning "-klassen . Strukturer , derimot , kan ikke arve fra andre strukturer. Følgelig er de iboende forseglet.