• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Domanda Le Classi

Sbonia

Utente Medio
Autore del topic
28 Dicembre 2014
134
30
Miglior risposta
0
Buonasera a tutti.
Da poco ho imparato il "concetto" delle Classi , cosa sono e come funzionano , ma non ho ben capito COME e QUANDO creare una classe.
Si lo so ci sono tantissime guide , ed infatti sto seguendo le guide e leggendo il libro "fondamenti di programmazione" ma è un po troppo avanzato per chi è inesperto come me , parte subito dalle classi.
e quindi vorrei ascoltare tutti i vostri "pareri" se così si suol dire.
 
Allora. Parti dal presupposto che con il concetto di Classe, subentra il concetto di Oggetto. (Ovvero una classe istanziata)
Ma parliamo in termini pratici, immagina una sedia. Ora, tu hai un'idea di sedia che si trova nella tua mente che deve avere:
1 schienale
1 base per poggiare il deretano (:emoji_stuck_out_tongue_winking_eye:)
1 telaio formato da 4 gambe
1 tipo di materiale di cui è fatta
Possiamo dire quindi che una sedia ha questi 4 "attributi"
Ma non sono specifici, sono generici perchè una sedia può avere uno schienale curvo, come può essere rotondo o quadrato. Allo stesso modo per la base che può essere di legno o di alluminio ecc.
Una sedia specifica, è detta Oggetto della classe Sedia.
Perchè fare ciò? Proprio perchè non esiste solo un tipo di sedia, necessito di vari tipi ed è per questo che ne creo una generica e poi in base agli attributi che le voglio assegnare, ne creo di specifiche.
Tipicamente una dichiarazione di questo tipo rappresenta un oggetto istanziato:
Sedia s = new Sedia("curvo", "alluminio", "acciaio", "legno");
Dove "curvo" si riferisce al tipo di schienale, "alluminio" al materiale della base, "acciaio" al materiale del telaio delle 4 gambe, "alluminio" per il resto del telaio.
Spero di essere stato esaustivo. :emoji_smile:

EDIT: ovviamente la dichiarazione di una classe è diversa da linguaggio a linguaggio. Per esempio in C++, si è soliti creare 2 tipi di file dove uno rappresenta la classe con solo i prototipi e gli attributi (file header con estensione .h, e un altro i corpi dei vari metodi o dei costruttori (o distruttori) [file con estensione .cpp].
 
  • Like
Reactions: Sbonia
Allora. Parti dal presupposto che con il concetto di Classe, subentra il concetto di Oggetto. (Ovvero una classe istanziata)
Ma parliamo in termini pratici, immagina una sedia. Ora, tu hai un'idea di sedia che si trova nella tua mente che deve avere:
1 schienale
1 base per poggiare il deretano (:emoji_stuck_out_tongue_winking_eye:)
1 telaio formato da 4 gambe
1 tipo di materiale di cui è fatta
Possiamo dire quindi che una sedia ha questi 4 "attributi"
Ma non sono specifici, sono generici perchè una sedia può avere uno schienale curvo, come può essere rotondo o quadrato. Allo stesso modo per la base che può essere di legno o di alluminio ecc.
Una sedia specifica, è detta Oggetto della classe Sedia.
Perchè fare ciò? Proprio perchè non esiste solo un tipo di sedia, necessito di vari tipi ed è per questo che ne creo una generica e poi in base agli attributi che le voglio assegnare, ne creo di specifiche.
Tipicamente una dichiarazione di questo tipo rappresenta un oggetto istanziato:
Sedia s = new Sedia("curvo", "alluminio", "acciaio", "legno");
Dove "curvo" si riferisce al tipo di schienale, "alluminio" al materiale della base, "acciaio" al materiale del telaio delle 4 gambe, "alluminio" per il resto del telaio.
Spero di essere stato esaustivo. :emoji_smile:

EDIT: ovviamente la dichiarazione di una classe è diversa da linguaggio a linguaggio. Per esempio in C++, si è soliti creare 2 tipi di file dove uno rappresenta la classe con solo i prototipi e gli attributi (file header con estensione .h, e un altro i corpi dei vari metodi o dei costruttori (o distruttori) [file con estensione .cpp].
sono ancora agli inizi diciamo per creare due tipi di file xD , mi stavo basando sul libro di "Fondamenti di programmazione" ma è per chi è più avanzato rispetto ad un neofita come me , ma prendendo spunto dai vari argomenti , mi guardo tutorial di qua e tutorial di la segnandomi poi le cose più importanti scritte su un quaderno xD , si sei stato molto chiaro e ti ringrazio tantissimo , dovrò ovviamente fare pratica per approfondire meglio il concetto , un altra cosa , c'è per caso un libro di Stroustrup "
Principles and Practice Using C++
" in italiano? possibilmente la prima edizione , poi in caso contrario la seconda , ho cercato ma non trovo nulla a riguardo , per approfondire le basi , ultima cosa , i tutorial che sto seguendo sono del "c++11" ora c'è il "c++17" fa differenza o vanno bene ugualmente? non trovo nessun tutorial in italiano del c++17..