De fleste programmører ved, at et edb-program indeholder intet mere end data og instruktioner til at manipulere data. Dit mål , som programmør , er at repræsentere data på den mest effektive og let struktur muligt. Begge "klasser" og "strukturer " giver dig mulighed for at repræsentere forskellige typer af data. Mange sprog har begge klasser og strukturer , herunder C + + , C # , Java og Visual Basic. (Nogle sprog henviser til en struktur som en " struct . ") Du kan instantiere begge klasser og strukturer i den konventionelle måde og få adgang til medlemmerne af begge bruge dot- point notation, men forskellene mellem de to datatyper opveje disse få ligheder . Formål
Klasser danner grundlaget for de fleste moderne objektorienterede sprog, og give mulighed for endeløse manipulation. Når du bruger en klasse til at repræsentere dine data , har du den fulde effekt af et objekt -orienteret programmeringssprog til din rådighed. Lav en klasse din standard datatype og bruge den, når du ikke er sikker , hvilken værdi typen fungerer bedst. Brug en struktur , derimod . Kun, når du har brug for at manipulere et sæt række ikke- reference- typen værdier som en enhed Programmører bruger typisk strukturer til at repræsentere geometriske objekter , pointlister og andre forholdsvis enkel information.
Underliggende Type
En struktur er en værdi typen , mens en klasse er en reference type. Værdi typer repræsentere tal og tekst , og findes kun i stakken . Det betyder, at når du kopierer en struktur , du opretter et helt nyt element i hukommelsen. Ændringer af det nye objekt , påvirker ikke det oprindelige objekt . Referencetyper derimod findes både på stakken og bunke . Når du kopierer en klasse , er du virkelig kun kopiere henvisningen adresse til en hukommelsesplacering på bunke . Så når du ændrer en kopi af et objekt , skal du også ændre alle kopier i hukommelsen.
Destruktorer
Afhængigt af sproget , du bruger , kan du kan ofte bruger destruktionsfunktioner med klassen objekter. I C + +, samt i ADO.Net programmering, destruktionsfunktioner tillader dig at sørge for, at processoren ødelægger hukommelse intensive objekter , så snart de ikke længere er nødvendige. Men mange programmeringssprog såsom C # , ikke tillade dig at bruge destruktionsfunktioner med en struktur. I stedet affaldsindsamling objektet afhænder strukturer automatisk.
Arv
som reference typer, kan klasser arver fra andre klasser . Det betyder, at du kan skabe en " dreng" klasse, der arver alle objekter og egenskaber fra en "person" klassen. Til gengæld kan den person klassen arve medlemmer af " væsen " klassen. Konstruktioner , derimod, kan ikke arve fra andre strukturer. Derfor er de i sagens natur forseglet.