Classi vs strutture
Alcuni dei concetti principali dei linguaggi di programmazione Object Oriented (OO) sono l'incapsulamento, l'ereditarietà e il polimorfismo. Classe e Struttura sono due dei costrutti / strumenti OO, che aiutano i programmatori a realizzare questi concetti nella 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 poche limitazioni rispetto alle classi. Entrambe le classi e la struttura vengono utilizzate per raggruppare insieme tipi di dati simili.
Cosa sono le classi?
Le classi raffigurano la rappresentazione astratta di oggetti del mondo reale, mentre le relazioni descrivono il modo in cui ogni classe è collegata alle altre. 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 i 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 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 superclasse. 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 usati 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 capacità 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. Analogamente 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 la stessa nei linguaggi di programmazione. NET.
Qual è la differenza tra Classi e Strutture?
Anche se, sia le classi che le strutture sono costrutti simili trovati nei linguaggi di programmazione, hanno sottili differenze. Tipicamente, la classe è un'estensione della struttura e quindi le strutture hanno alcune limitazioni relative. Ad esempio, le strutture possono essere considerate le stesse delle classi in C ++, ma i membri non sono pubblici per impostazione predefinita nelle classi (a differenza delle strutture). Ciò significa in realtà 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 sovraccaricate. Le parole chiave class e struct vengono utilizzate per definire rispettivamente una classe e una struttura in C ++. Quando si tratta di linguaggi. NET (C #, VB. NET, ecc.), La classe è un tipo di riferimento, mentre la struttura è un tipo di valore. E 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.