Principale utente con più risposte
migliorare la gestione dei metodi dei propri oggetti

Domanda
-
supponiamo di avere un oggetto
- casa
come metodi
-area
- perimetro (che sono metodi di get che ritornano appunto questi valori )
come altri metodi
-coloremuri
-coloretetto
a questo punto per chiamare il tutto dovrei fare casa.area() / casa.permimetro() / casa.coloremuri() ecc..
ma se io volessi fare :
casa.misure.perimetro()
casa.misure.area()
casa.estetica.coloremuri()
casa.estetica.coloretetto()
dovrei chreare un oggetto DERIVATO dalla classe in questione e ad esso dare i rispettivi metodi
avendo classe derivata di casa, misure e estetica.
in misure creo i metodi perimetro e area
in estetica creo coloremuri coloretetto
detto bene?
Risposte
-
Ciao maxyz,
You wrote on 31/03/2013 :
dovrei chreare un oggetto DERIVATO dalla classe in questione e ad esso dare i rispettivi metodi
avendo classe derivata di casa, misure e estetica.
in misure creo i metodi perimetro e area
in estetica creo coloremuri coloretettodetto bene?no, non derivato ma un nuovo oggetto:
class Misure
{
public Double CalcolaArea()
{
return //bla bla bla
}
}class Casa
{
private Misure _m = new Misure();
public Misure Misure
{
get{ return this._m; }
}
}.m
blog @ //milestone.topics.it- Proposto come risposta Carmelo La Monica lunedì 1 aprile 2013 09:24
- Contrassegnato come risposta Irina Turcu venerdì 5 aprile 2013 13:32
-
Ciao maxyz,
Il metodo presentato da Mauro è meglio perché rende più chiara la connessione logica tra le due classi. Una casa ha delle misure, quindi è proprio naturale che le Misure siano un attributo della classe Casa.
La derivazione si traduce mediante la relazione “è un(a)”, o “è un tipo di”. Diciamo che abbiamo la classe base Animale. Da qui possiamo derivare le classi Cane e Gatto. Sappiamo che la derivazione ha senso qui perché possiamo dire che il Cane “è un” Animale, è anche il Gatto “è un” Animale.
Intanto, se la relazione vuole mostrare un’appartenenza, useremo la seconda classe come attributo della prima. Ad esempio, le animali hanno una certa dimensione, quindi in questo caso la classe Animale avrà come attributo la classe Dimensione, appunto perché possiamo dire: l’Animale “ha una” Dimensione. Inserire una classe dentro altra in questa maniera si chiama la composizione delle classi nella programmazione orientata a oggetti.
Ti consiglio la lettura degli articoli seguenti per imparare di più su questi concetti:
Saluti,
Irina Turcu - Microsoft
[Manifesto] Regole e Aspetti generali all'uso dei forum MSDN
Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e approfondire la loro conoscenza dei prodotti e tecnologie Microsoft.
- Contrassegnato come risposta maxyz mercoledì 17 aprile 2013 08:16
Tutte le risposte
-
Ciao maxyz,
You wrote on 31/03/2013 :
dovrei chreare un oggetto DERIVATO dalla classe in questione e ad esso dare i rispettivi metodi
avendo classe derivata di casa, misure e estetica.
in misure creo i metodi perimetro e area
in estetica creo coloremuri coloretettodetto bene?no, non derivato ma un nuovo oggetto:
class Misure
{
public Double CalcolaArea()
{
return //bla bla bla
}
}class Casa
{
private Misure _m = new Misure();
public Misure Misure
{
get{ return this._m; }
}
}.m
blog @ //milestone.topics.it- Proposto come risposta Carmelo La Monica lunedì 1 aprile 2013 09:24
- Contrassegnato come risposta Irina Turcu venerdì 5 aprile 2013 13:32
-
-
Ciao maxyz,
You wrote on 03/04/2013 :
che differenze ci sono scegliendo un metodo rispetto all'altro? (ammesso che il mio sia realizzabile) giusto per poter valutare i vantaggi tra una e l'altra come tra un while e un for
nel tuo esempio il tuo metodo non ha molto senso.
.m
blog @ //milestone.topics.it -
Ciao maxyz,
Il metodo presentato da Mauro è meglio perché rende più chiara la connessione logica tra le due classi. Una casa ha delle misure, quindi è proprio naturale che le Misure siano un attributo della classe Casa.
La derivazione si traduce mediante la relazione “è un(a)”, o “è un tipo di”. Diciamo che abbiamo la classe base Animale. Da qui possiamo derivare le classi Cane e Gatto. Sappiamo che la derivazione ha senso qui perché possiamo dire che il Cane “è un” Animale, è anche il Gatto “è un” Animale.
Intanto, se la relazione vuole mostrare un’appartenenza, useremo la seconda classe come attributo della prima. Ad esempio, le animali hanno una certa dimensione, quindi in questo caso la classe Animale avrà come attributo la classe Dimensione, appunto perché possiamo dire: l’Animale “ha una” Dimensione. Inserire una classe dentro altra in questa maniera si chiama la composizione delle classi nella programmazione orientata a oggetti.
Ti consiglio la lettura degli articoli seguenti per imparare di più su questi concetti:
Saluti,
Irina Turcu - Microsoft
[Manifesto] Regole e Aspetti generali all'uso dei forum MSDN
Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e approfondire la loro conoscenza dei prodotti e tecnologie Microsoft.
- Contrassegnato come risposta maxyz mercoledì 17 aprile 2013 08:16
-
class Misure
{
public Double CalcolaArea()
{
return //bla bla bla
}
}class Casa
{
private Misure _m = new Misure();
public Misure Misure
{
get{ return this._m; }
}
}.m
blog @ //milestone.topics.itho capito il senso di realizzare il codice in questa maniera, mi è difficile capire il codice che hai inserito in casa, in pratica hai creato un nuovo oggetto di tipo misure, ma non capisco il metodo sucessivo! a me sembra un metodo nascosto, che da l'illusione di una variabile a qualcosa che di fatto è un metodo ma non capisco il senso di get{ return this._m; }
-
Ciao maxyz,
You wrote on 16/04/2013 :
ho capito il senso di realizzare il codice in questa maniera, mi è difficile capire il codice che hai inserito in casa, in pratica hai creato un nuovo oggetto di tipo misure, ma non capisco il metodo sucessivo! a me sembra un metodo nascosto, che da l'illusione di una variabile a qualcosa che di fatto è un metodo ma non capisco il senso di get{ return this._m; }
è una proprietà, che è a tutti gli effetti zucchero sintattico e che sotto sotto è, nel mio esempio, un metodo, ma potrebbe essere anche una coppia di metodi.
parti da qui:
http://msdn.microsoft.com/en-us/library/w86s7x04.aspx.m
blog @ //milestone.topics.it