Newsgroup: it.comp.lang.visual-basic
Titolo: Per favore che coas sono le classi di VB

Ciao a tutti sono sempre FLAVIO
per cortesia c'è qualcuno che mi sa spiegare che cosa sono le classi e in
che occasione si usano?
GRazie a tutti e ciao


Allora....  Prendi il Philum dei Cordati.. sono tutti gli animali che hanno
una notocorda. A questo Philum appartengono i Vertebrati e altri due gruppi
(Uro e cefalocordati). I vertebrati sono quelli che hanno oltre alla
notocorda la colonna vertebrale, un'organizzazione cefalocaudale (cioè hanno
coda e capo), simmetria bilaterale, etc, etc... Ai vertebrati appartengono
le superclassi Pesci e tetrapodi (hanno gli arti). Ai tetrapodi appartengono
le classi rettile, uccelli, mammiferi, etc... Ai mammiferi appartengono le
sottoclassi teri e prototeri... a i teri appartiene l'ordine dei Primato...
ai primati la specie homo sapiens. Adesso se vedi tutti questi gruppi come
un ordine gerarchico, noterai che il livello inferiore eredita tutte le
caratteristiche del gruppo superiore e ne ha delle nuove. Cioè i cordati
hanno le caratteristiche dei cordati, ma non quelle dei vertebrati. I
vertebrati hanno le caratteristiche sia proprie che dei cordati.... fina
all'umo che eredita le caratteristiche dei primati, quindi dei mammiferi,
quindi dei vertebrati. Questa è l'eridarietà... e lo stesso modello si
applica alle classi dei linguaggi di programmazione.
Una classe è un costrutto che ha delle caratteristiche, ovvero delle
proprietà chiamate "membri" e delle funzioni, chiamate "metodi" che operano
sui membri. Tutte le classi possono ereditare membri e metodi da una o più
classi (a differenza della filogenesi le classi dell'informatica possono
avere erditarietà multipla). Un esempio. Quando tu usi il command button, in
realtà crei un'istanza alla classe commandButton. Cioè crei un oggetto che
eredita le caratteristiche di quel prototipo. Il command button è una
classe, cioè ha dei metodi e delle proprietà. Le proprietà sono
l'altezza(height), la lunghezza (width), la posizione (top, left), etc...
Queste proprietà o membri sono accessibili solo tramite i metodi della
classe. Quando tu usi l'istruzione: cmdBottone.Move 100, 100 in realtà
richiami una funzione metodo che va a modificare i valori top e left che
sono membri della classe stessa.
Un tipico esempio di classe (io la scrivo in c++ perché in VB non le
conosco) è così:
Class bottone {
    Private:
        int top;
        int left;
    public:
        void move(int, int);
        void show();
        bottone(int, int); /*Costruttore*/
}
/*Questa funzione si chiama costruttore */
bottone::bottone(int initTop, int initLeft):top(initTop), left(initLeft)
{
    /* Valori di default*/
    top=100;
    left=100;
};
void bottone::move(int newTop, int newLeft) {
    left=newLeft;
    top=newTop;
    bottone.show();
}
Per accedere ai metodi di una classe devi usare il punto dopo il nome della
classe e quindi il nome del metodo:
    bottone.move(100, 100);
Questa funzione muove il bottone alle coordinate 100, 100. Modifica i valori
private top e left e richiama il metodo show per mostrare il pulsante. show
sarà una funzione che ridisegna il pulsante sullo schermo alla posizione
top, left. SOLO I METODI DI UNA CLASSE POSSONO ACCEDERE AI MEMBRI PRIVATE.
Quindi bottone.top darà un errore. Per accedere ai membri si fa una funzione
metodo:
    int bottone::getTop() {
        return(top);
    }
    int bottone::getLeft() {
        return(left);
    }
Esempio:
bottone miobottone; /* in VB Dim miobottone as bottone
bottone(100, 100);
bottone.show;
int qualeTop = bottone.getTop();
int QualeLeft=bottone.getLeft();
Quindi, ricapitolando, le classi sono dei costrutti che ti permettono di
fare dei prototipi aventi una certa struttura. A differenza dei Typedef che
sono solo record di tipi diversi di dati, le classi sono dei veri e proprio
oggetti che hanno delle proprietà dette membri. I membri di una classe sono
protetti e per accedervi e modificarli servono particolari funzioni chiamate
metodi. Il costruttore è un particolare metodo che serve ad inizializzare
l'oggetto, mentre il distruttore lo rimuove dalla memoria:
    ~bottone() /*distruttore*/
E' difficile capire l'utilità delle classi, almeno fino a quando non le usi.
Ti consiglio di imparare il c++ prima di ogni altro linguaggio.
Ciao

che occasione si usano?
Permettimi: fare questa domanda in questo newsgroup e' come andare su
di un ng IT.HOBBY.MOTORISTICA e chiedere "sapete spiegarmi cos'e' un
motore?"...
Anzitutto le classi non sono cosa di VB ma sono una caratteristica dei
linguaggi ad oggetti e poi la risposta alla tua domanda e' su qualche libro
sull'argomento, pero' dalla pagina 1 alla 350...:-)
Ciao!

una notocorda. A questo Philum appartengono i Vertebrati e altri due gruppi
....



Cosa vuoi dire scusa? -_-

Cosa vuoi dire scusa? -_-
Era una pessima battuta tra ereditarieta' genetica e panettoni con soia
transgenica...
A parte che l'ereditarieta' mendheliana o darwiniana che si voglia non e'
esattamente come l'ereditarieta' di classi... Se cosi' fosse addio
evoluzione! ;) L'ereditarieta' classi e' forse concettualmente piu' simile
alla clonazione genetica esempio, Set MyPecora =
CreateObject("Gregge.Dolly") o Dim MyPecora as New Dolly.
ciao ciao,
Alessandro Scardova
scar...@tin.it
http://space.tin.it/computer/ascardov/


Va bene, ma ricorda anche che COM/ActiveX NON sono l'unico aspetto della
programmazione ad oggetti.
Certo, se ti interessa solo utilizzare le classi in VB, allora COM/ActiveX e
un buon libro sulla programmazione avanzata in VB dovrebbero bastare.
--
Roal Zanazzi
z...@iol.it

un buon libro sulla programmazione avanzata in VB dovrebbero bastare.
L'oggetto e' appunto cosa sono le classi di VB, e non cosa sono le classi in
C++ o in Java o altro;
Le classi di VB non sono potentissime ma ci si fa un sacco di cose ed era
quello mi ci si vi chiedeva...
bye,
Alle.



Bim Bum Bam ^_^;;;;

CreateObject("Gregge.Dolly") o Dim MyPecora as New Dolly.
Bellissima! :)))

Ciao Sono Pippo,
Ho capito che ci sono (come sapevo) anche con linguaggi superiori,ma io ho
scelto VB perche il tempo non č mai tanto e mi sembra il + facile.
Voglio chiedervi una cortesia,(se mi aiutate con un po' di codice molte
grazie) ho un problema con recordset recursivi.
Dato un recordset, ci sono padri e figli (Campi) dove io devo trovare,dato
un padre, tutti i suoi figli,i figli dei figli e cosě via.
mi potreste aiutare?
GRAZIE 1000000000000000000

Ti consiglio di imparare il c++ prima di ogni altro linguaggio.
Di solito evito messaggi di questo tipo, ma questa e' la piu' bella
spiegazione di classe che ho mai sentito :)
Penso di poterti fare concorrenza solo con la spiegazione che diedi
una volta di "formattazione del disco fisso e perche' partizioni
grandi sprecano molto spazio", ai tempi di it.comp.win95... :)
Bravo :)
------------------
Gianni Rondinini
Kawasaki ZZ-R 1100

Bravo :)
Brava, prego ^_^;;

non ho parole: complimenti.
Ciao,
Moreno.
#sirri#@
tin.it
(togliete "#" dall'indirizzo)