La maggior parte dei programmatori sanno che un programma per computer contiene niente altro che i dati e le istruzioni per la manipolazione dei dati . Vostro obiettivo, come programmatore , è quello di rappresentare i dati nella struttura più efficiente e leggera possibile. Entrambe le "classi " e " strutture" consentono di rappresentare i diversi tipi di dati . Molte lingue sono dotate di entrambe le classi e strutture , tra cui C + + , C # , Java e Visual Basic . ( Alcune lingue riferiscono ad una struttura come una " struct . ") È possibile creare un'istanza di entrambe le classi e strutture in modo convenzionale e accedere ai membri di entrambe notazione punto - punto utilizzando , ma le differenze tra i due tipi di dati superare queste poche somiglianze. Scopo
classi costituiscono il fondamento della più moderni linguaggi orientati agli oggetti e consentono di intervenire senza fine . Quando si utilizza una classe per rappresentare i dati , hai tutta la potenza di un linguaggio di programmazione orientato agli oggetti a vostra disposizione. Fare una classe il tipo di dati predefinito e utilizzarlo quando non si è certi che tipo di valore funziona meglio . Utilizzare una struttura , al contrario, solo quando è necessario manipolare un certo numero di valori di tipo non- riferimento come unità . I programmatori di solito usano strutture per rappresentare oggetti geometrici , punteggi dei giochi e altre informazioni relativamente semplice .
Stante Tipo
Una struttura è un tipo di valore , mentre una classe è un riferimento tipo . I tipi di valore rappresentano numeri e testo , ed esistono solo nella pila . Ciò significa che quando si copia una struttura , si crea un elemento del tutto nuovo nella memoria. Le modifiche al nuovo oggetto non influenzano l'oggetto originale . Tipi di riferimento , invece , esistono sia in pila e il mucchio . Quando si copia una classe , sei veramente solo copiando l' indirizzo di riferimento per una locazione di memoria sul mucchio. Così, quando si modifica una copia di un oggetto, è anche modificare tutte le copie in memoria .
Distruttori
seconda della lingua che si sta utilizzando , è possono spesso utilizzare i distruttori di oggetti di classe . In C + + , così come nella programmazione ADO.Net , distruttori consentono di assicurarsi che il processore distrugge oggetti di uso intensivo della memoria , non appena essi non sono più necessari . Tuttavia, molti linguaggi di programmazione , come C # , non consentono di utilizzare i distruttori con una struttura . Invece , l'oggetto di garbage collector dispone di strutture automaticamente .
Inheritance
tipi di riferimento , le classi possono ereditare da altre classi . Questo significa che si può creare una classe " ragazzo " che eredita tutti gli oggetti e le proprietà da una classe di "persona" . A sua volta, la classe persona può ereditare i membri della classe "creatura" . Strutture, al contrario, non possono ereditare da altre strutture . Di conseguenza , essi sono intrinsecamente sigillati .