De meeste programmeurs weten dat een computerprogramma bevat niets meer dan data en instructies voor het manipuleren van data . Je doel , als programmeur , is om de gegevens op de meest efficiënte en lichtgewicht constructie mogelijk vertegenwoordigen . Zowel " klassen " en " structuren " kunt u verschillende soorten gegevens vertegenwoordigen . Vele talen beschikken beide klassen en structuren , waaronder C + + , C # , Java en Visual Basic . ( Sommige talen verwijzen naar een structuur als een " struct . " ) U kunt beide klassen en structuren in de conventionele manier instantiëren en toegang tot de leden van beide gebruik van dot - point notatie , maar de verschillen tussen de twee soorten gegevens opwegen tegen deze weinig overeenkomsten . Doel Klassen vormen de basis van de meeste moderne object - georiënteerde talen en zorgen voor eindeloze manipulatie . Wanneer u een klasse gebruiken om uw gegevens te vertegenwoordigen , heb je de volledige kracht van een object - georiënteerde programmeertaal tot uw beschikking . Maak een klasse uw standaard data type en gebruik het als u niet zeker welk type waarde het beste werkt . Gebruik een structuur , in tegenstelling, alleen wanneer je nodig hebt om een bepaald aantal non - reference type waarden als eenheid te manipuleren . Programmeurs gebruiken meestal structuren om geometrische objecten , game scores en andere relatief eenvoudige informatie vertegenwoordigen . Onderliggende Type Een structuur is een soort waarde , terwijl een klasse is een verwijzing type. Waarde soorten vertegenwoordigen cijfers en tekst , en bestaan alleen in de stack . Dit betekent dat wanneer je een structuur kopiëren, u een geheel nieuw item in het geheugen te creëren . Aanpassingen aan het nieuwe object niet van invloed op het oorspronkelijke object . Referentietypes daarentegen bestaan zowel de stack en de heap . Wanneer u een klasse kopieert , je bent eigenlijk alleen het kopiëren van de verwijzing adres naar een geheugen locatie op de heap . Dus als je een exemplaar van een object te wijzigen , kunt u ook alle exemplaren in het geheugen passen . Destructors Afhankelijk van de taal die u gebruikt , u kan vaak gebruik destructors met klasse objecten. In C + + , en in ADO.Net programmering destructors toestaan dat de processor vernietigt geheugenintensieve voorwerpen zodra ze niet langer nodig . Echter, veel programmeertalen , zoals C # , niet toestaan om destructors gebruiken met een structuur . In plaats daarvan , de garbage collector object beschikt over structuren automatisch . Inheritance Als referentie types , kunnen klassen erven van andere klassen . Dit betekent dat u een " jongen " klasse die alle objecten en eigenschappen erft van een "persoon" klasse te maken . Op zijn beurt kan de persoon klasse erven de leden van het " schepsel " class . Structuren daarentegen niet erven van andere structuren . Bijgevolg zijn ze inherent verzegeld .
|