Differenza tra le classi e le strutture

Anonim

Classi / Strutture

Alcuni dei concetti principali di linguaggi di programmazione con oggetti orientati (OO) sono l'incapsulamento, l'eredità e il polimorfismo. Classe e Struttura sono due dei costrutti / strumenti OO, che aiutano i programmatori a raggiungere questi concetti nella maggior parte dei linguaggi di programmazione OO in uscita (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 poche limitazioni rispetto alle classi. Entrambe le classi e la struttura vengono utilizzate per raggruppare insieme tipi simili di dati.

Cosa sono le classi?

Le classi rappresentano la rappresentazione astratta di oggetti del mondo reale, mentre i rapporti descrivono come ogni classe sia connessa ad 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 viene raggiunto rendendo gli attributi privati, creando 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 classi sub) da altre classi (chiamate classi super). Il polimorfismo consente al programmatore di sostituire un oggetto di una classe in luogo di un oggetto della sua super classe. Tipicamente, i nomi trovati nella definizione del problema diventano direttamente classi nel programma. E allo stesso modo i verbi diventano metodi. Pubblici, privati ​​e protetti sono i tipici modificatori di accesso utilizzati per le classi. Un diagramma di classe mostra le classi dei sistemi, le relazioni tra le classi ei 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 delle classi. Infatti, le classi possono essere considerate come una estensione alle strutture. Ad esempio, le strutture sono le stesse delle classi in C + +, ma hanno i membri pubblici per impostazione predefinita. Una struttura può essere definita dall'utente per rappresentare un tipo che è composito. Simile alle classi, le strutture contengono membri che possono appartenere a molti tipi. La struttura delle parole chiave viene utilizzata per definire una struttura in C e C ++, mentre la struttura di parola chiave viene utilizzata per gli stessi nei linguaggi di programmazione.NET.

Qual è la differenza tra le classi e le strutture?

Anche se entrambe le classi e le strutture sono costruzioni simili trovate nei linguaggi di programmazione, essi presentano differenze sottili. Tipicamente, la classe è un'estensione della struttura, e quindi le strutture hanno alcune limitazioni relative. Ad esempio, le strutture possono essere considerate come le classi in C ++, ma i membri non sono pubblici per impostazione predefinita in classi (a differenza delle strutture).Ciò in realtà significa che è possibile definire una classe e una struttura con le stesse caratteristiche utilizzando i moduli di accesso appropriati in C ++. Tuttavia in C, le strutture non possono contenere funzioni o operazioni sovraccaricate. Le classi di parola chiave e struct vengono utilizzate per definire rispettivamente una classe e una struttura in C ++. Quando si tratta di. Le lingue 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 in memoria per periodi più lunghi.