Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Ancora sugli oggetti...

Salve,
oggi ho provato uin esercizietto bastardino...okz, vi spego subito di
che si tratta. Lo scopo doi questa cosa era trovare il rapporto nella
famiglia, chi era padre e chi figlio.
Ho una classe FAMIGLIA e una classe PERSONA, in modo che un gruppo di
persone formano una famiglia. La classe persona ha le seguenti
propietà:
   - Nome
   - Cgnome
   - Età
   - Padre
La classe famiglia ha un metodo:
   - Aggiungi (aggiunge una persona alla famiglia)
 
e le proprietà:
   - Persona (che mi identifica una persona nella famiglia, cioè nella
     collection)
Se io considero la famigliola composta da 3 oggetti persona, quando
faccio il padre, non ho probelmi, perchè lui non ha padre :)) ma
quando vado ad aggiungere il figllio al gruppo (la classe famiglia, è
una collection) e devo mettere un riferimento al padre, come faccio a
far si che una proprietà (PADRE) eriditi le caratteristiche che lo
identificano?
Mi spiego meglio...il padre è si padre ma...è una persona!! Quindi
anche lui può essere istanziato come oggetto persona.
Se io scrivo:
Sub main()
    ' clPersona è la classe Persona
    Dim Individuo As clPersona
    ' clFamiglia invece la classe famiglia, quella in cui creo la
    ' collection di persone
    Dim Famiglia As clFamiglia
    Dim i As Integer
    Dim strNome As String
 
    Set Famiglia = New clFamiglia
    ' il cicletto mi serve per popolare la famiglia, se eseguite passo
    ' passo e ogni volta cambiate nome a mano funziona :))    
    For i = 1 To 2
        Set Individuo = New clPersona
 
        strNome = "Mario"
 
        Gruppo.Aggiungi (strNome)
 
        Individuo.Nome = strNome
        Individuo.Cognome = "Rossi"
        Individuo.Eta = 12
        Individuo.Padre = ""
 
        Set Individuo = Nothing
    Next i
 
Ora ammettiamo che dentro ho inserito:
    - Stefano (padre)
    - Ilaria (Moglie)
    - Mario (Figlio)
Se scrivo:
 
    MsgBox Famiglia.Persona("Stefano").Nome
    MsgBox Famiglia.Persona("Stefano").Eta
oppure:
    MsgBox Famiglia.Persona("Ilaria").Nome
    MsgBox Famiglia.Persona("Ilaria").Eta
non ho pèroblemi perchè non hanno il padre, ma quando vado a trattare
il figlio:
 
    MsgBox Famiglia.Persona("Mario").Nome
    MsgBox Famiglia.Persona("Mario").Eta
quando arrivo qua:
    MsgBox Famiglia.Persona("Giorgia").Padre
non posso aggiungere le stesse caratteristiche che formanola Persona
(Nome, Cognome, Età) al padre. Non posso cioè scrivere:
    MsgBox Famiglia.Persona("Giorgia").Padre.Nome/Cognome/Età
Avete capito qual' è il problema?? Se poi dichiarassi una classe Padre
sarebbe identica alla classe Persona, quindi non ha senso farlo...come
si risolve una caso del genere?
E' possibile che una proprietà di una classe, eredita le proprietà che
formano la classe stessa?
Aspetto news...grazie :))
Saluti...

sku...@libero.it
 (skunk) wrote:
...(cuttone)...
So gia' che prendera' ulteriori sviluppi, ma per ora ti dico questo.
Che tipo di dato e' la proprieta' ( e non propieta', ce l' hai
proprio di vizio :) Padre ? Se fosse di tipo Persona ?
Ciao
Aldo

formano la classe stessa?
Questa č la classe clspersone
Private vNome As String
Private vpadre As clspersone
Public Property Get Nome() As Variant
Nome = vNome
End Property
Public Property Let Nome(ByVal vnewvalue As Variant)
vNome = vnewvalue
End Property
Public Property Get Padre() As Variant
Set Padre = vpadre
End Property
Public Property Set Padre(vnewvalue As clspersone)
Set vpadre = vnewvalue
End Property
Poi prova il codice seguente:
Dim aaa As clsindividui
Dim bbb As clsindividui
Set aaa = New clsindividui
Set bbb = New clsindividui
aaa.Nome = "pippo"
bbb.Nome = "pluto"
Set bbb.Padre = aaa
MsgBox bbb.Padre.Nome
Era questo che volevi?
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

Set aaa = New clsindividui
scusa, ho scritto clsindividui anziché clspersone.... piccolo lapsus....


oggi ho provato uin esercizietto bastardino...okz,
]zac[

Era questo
che volevi?
Credo di si, non posso provarlo ora ma credo che è proprio
quello che volevo io. Grazie.
Saluti...
--------------------------------
Inviato via 
http://usenet.iol.it
 

 Ma sara' riuscito a comprendere quando e perche' gli oggetti sono utili?
lui non lo so. io di certo no...


Salve


lui non lo so. io di certo no...
Tu sei gia' bravo, intelligente, svelto (ci sono quei post con zanna
sull'inglese e sugli insiemi che lo testimoniano), hai cultura, solo che
preferisci fare il mulo.
Le tue pagelle secondo me sono piene di "il ragazzo e' bravo ma non si
applica".
Salve
                Dbg

 applica".
complimenti, buon intuito. la frase ricorrente era: studiasse quant'e'
intelligente... i miei erano disperati...
molti, molti, molti neuroni fa...

dia un iterfaccia veramente utile.
Ho letto alcuni libri di teoria sulle classi, mi hanno sempre lasciato
disgustato, il modo giusto di scrivere una classe e' quella che ti consente
di risolvere dei problemi (possibilmente senza crearne di nuovi).
Il punto e' che devi cambiare il modo di affrontare i problemi, bisogna
passare ad un modo piu' naturale, molto piu' vicino alla reale struttura del
problema.
Bisogna riuscire a non dare importanza al codice, il codice deve diventare
quasi inutile, i dati, la struttura dei dati, deve diventare la cosa piu'
importante (i dati sono il collegamento diretto con il problema reale, il
codice e' solo il modo di risolverlo e spesso il codice e' una fonte di
disturbo, di errore.
Salve
            Dbg

molti, molti, molti neuroni fa...
Almeno tu avevi dei neuroni.
Adesso hai un diverso tipo di mazzo di carte, impara un nuovi giochi.
Salve
                Dbg

 Adesso hai un diverso tipo di mazzo di carte, impara un nuovi giochi.
yes, ci provo. anche se, intanto, definire ado un gioco mi sembra fare a ms
un gran complimento... diciamo che cerco almeno di vedere l'aspetto ludico
dell'apprendimento a oltranza, come si diceva ieri a prop di db e indici...
ciao, a.

dell'apprendimento a oltranza, come si diceva ieri a prop di db e indici...
Oh yeaa.
La sfida, il fregare un limite, fare le pernacchie a chi tenta di farti una
gettata di cemento sui piedi, e' un gioco, cambiano i partecipanti (sempre
diversi, ma sempre troppi), il gioco rimane.
Salve
                Dbg

disturbo, di errore.
Esatto, l' approccio è
diverso, non raggioni in termini di codice ma in termini di oggetto reale.
Devo fare un programma per segnare l' andamento di un campionato? Cosa ho:
i giocatori, una squadra...penso al giocatore come persona e alla squadra
come insieme di 11 persone, e non al recordset di una tabella di record...


 diversi, ma sempre troppi), il gioco rimane.
...o il cemento sulle scarpe, appunto :)
ciao, a.

...o il cemento sulle scarpe, appunto :)
Ottimo per trieste eheheh.
Salve
                Dbg

come insieme di 11 persone, e non al recordset di una tabella di record...
Bravo bene bis, impari a velocita' della luce.
Il capo, il padrone e' sempre il problema reale, bisogna adattare il
problema al codice, solo se non ci sono alternative e cmq la cosa va sempre
considerata come temporanea.
Salve
            Dbg

 Ottimo per trieste eheheh.
a prop di trieste, volevo chiedere a moreno se tutta quella roba
flautatissima che dice l'acegas e' vera... altroche' la grande mela... la
grande mula (*), semmai :))
in chat di napster avevo trovato 2 triestini inca%%atissimi perche' "le mule
sono stron%e", dicevano.
il mondo e' piccolo...
(*) a prop di muli...


[...]

 ]zac[
[...]

variant e non e non 'as clspersone'?
stesso motivo di cui sopra.... quando gli dici "add procedure" a VB per risparmiare qualche sec, ti
setta tutti i parametri di tipo Variant... e a quell'ora non avevo tanta freschezza per raffinare
l'esempio... ;-PP


cos'hai contro i muli ? sono animali fantastici.
Apunto! Da bon triestin patoco mi SON un mulo... ;-PPPP


(*) a prop di muli...
Vedo che hai preso il doppio senso.
Salve
                Dbg

Un programma di pal che consente di rinominare/numerare i file, anche molti
file insieme.
Salve
                Dbg
Alfonso Moscato ha scritto nel messaggio


 Ottimo per trieste eheheh.
Ariosa, questa.
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

Ariosa, questa.
Ti e' piaciuta? si capiva che intendevo dire che dietro a una cosa
apparantemente obbligatoria, soffocante si nascondone sempre delle
possibilita?
Salve
                Dbg