Classi vs Strutture
Alcuni dei concetti principali dei linguaggi di programmazione Object Oriented (OO) sono l'incapsulamento, l'ereditarietà e il polimorfismo. Class and Structure sono due dei costrutti / strumenti OO, che aiutano i programmatori a raggiungere questi concetti all'interno della maggior parte dei linguaggi di programmazione OO esistenti (Java non fornisce strutture). Le classi sono una rappresentazione astratta di oggetti del mondo reale. Le strutture sono molto simili alle classi con un uso simile, ma hanno alcune limitazioni rispetto alle classi. Entrambe le classi e la struttura sono utilizzate per raggruppare tipi di dati simili, insieme.
Cosa sono le classi?
Le classi descrivono la rappresentazione astratta degli oggetti del mondo reale, mentre le relazioni descrivono il modo in cui ogni classe è connessa agli altri. Entrambe le classi e le relazioni hanno proprietà chiamate attributi. I metodi nelle classi rappresentano o definiscono il comportamento di queste classi. I metodi e gli attributi delle classi sono chiamati membri della classe. In genere, l'incapsulamento si ottiene rendendo privati gli attributi, mentre si creano metodi pubblici che possono essere utilizzati per accedere a tali attributi. Un oggetto è l'istanza di una classe. L'ereditarietà consente all'utente di estendere le classi (chiamate sottoclassi) da altre classi (chiamate super classi). Il polimorfismo consente al programmatore di sostituire un oggetto di una classe al posto di un oggetto della sua super classe. In genere, i nomi trovati nella definizione del problema diventano direttamente classi nel programma. E allo stesso modo, i verbi diventano metodi. Pubblico, privato e protetto sono i tipici modificatori di accesso utilizzati per le classi. Un diagramma delle classi mostra le classi dei sistemi, le relazioni tra le classi e i loro attributi.
Cosa sono le strutture?
Come accennato in precedenza, le strutture sono molto simili alle classi con un uso simile, ma sono leggermente limitate rispetto alle classi. In effetti, le classi possono essere considerate come un'estensione delle strutture. Ad esempio, le strutture sono le stesse delle classi in C ++, ma hanno membri pubblici per impostazione predefinita. Una struttura può essere definita dall'utente per rappresentare un tipo che è composto. Simile alle classi, le strutture contengono membri che possono appartenere a molti tipi. La parola chiave struct viene utilizzata per definire una struttura in C e C ++, mentre la parola chiave Structure viene utilizzata per lo stesso nei linguaggi di programmazione .NET.
Qual è la differenza tra Classi e Strutture?
Anche se, sia le classi che le strutture sono costrutti simili che si trovano nei linguaggi di programmazione, presentano sottili differenze. In genere, la classe è un'estensione della struttura e pertanto le strutture presentano alcune limitazioni relative. Ad esempio, le strutture possono essere considerate come le classi in C ++, ma i membri non sono pubblici per impostazione predefinita nelle classi (a differenza delle strutture). Ciò significa che è possibile definire una classe e una struttura con esattamente le stesse caratteristiche utilizzando i modificatori di accesso appropriati in C ++. Tuttavia in C, le strutture non possono contenere funzioni o operazioni sovraccariche. Le parole chiave class e struct sono usate per definire una classe e una struttura in C ++, rispettivamente. Quando si tratta di linguaggi .NET (C #, VB.NET, ecc.), La classe è un tipo di riferimento, mentre la struttura è un tipo di valore. Di solito, le strutture vengono utilizzate per oggetti più piccoli, ma le classi vengono utilizzate per oggetti più grandi che vengono conservati nella memoria per periodi più lunghi.