Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-03-2009, 15:08   #1
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
[Generico/OOP]Ereditarietà

Ciao a tutti

Ho molti dubbi sulla comprensione dell'ereditarietà nella programmazione ad oggetti.

Leggendo vari documenti, trovo ovunque scritto che l'ereditarietà si applica solo ed esclusivamente nel caso in cui ci sia una relazione del tipo "is-a".

Facendo un esempio molto banale, ecco i miei dubbi:

Classe "Azienda"
Classe "Cliente"

un cliente _è_ un'azienda ? mi rispondo di si

Mi fermo un attimo su questo primo punto:

Con la classe base Azienda, è corretto pensare che NON è la mia azienda ma un'astrazione dell'entità azienda? Cioè, dovrò poi utilizzare questa classe base per istanziare oggetti di tipo miaAzienda, aziendaCliente ?

Aiutatemi prima a fugare questi dubbi e poi, continuerò con gli altri

Grazie mille come sempre.

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 15:28   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Ciao a tutti

Ho molti dubbi sulla comprensione dell'ereditarietà nella programmazione ad oggetti.

Leggendo vari documenti, trovo ovunque scritto che l'ereditarietà si applica solo ed esclusivamente nel caso in cui ci sia una relazione del tipo "is-a".

Facendo un esempio molto banale, ecco i miei dubbi:

Classe "Azienda"
Classe "Cliente"

un cliente _è_ un'azienda ? mi rispondo di si

Mi fermo un attimo su questo primo punto:

Con la classe base Azienda, è corretto pensare che NON è la mia azienda ma un'astrazione dell'entità azienda? Cioè, dovrò poi utilizzare questa classe base per istanziare oggetti di tipo miaAzienda, aziendaCliente ?

Aiutatemi prima a fugare questi dubbi e poi, continuerò con gli altri

Grazie mille come sempre.

RaouL.
Se i clienti per te possono essere solo aziende e non persone fisiche allora Cliente is a Azienda.
Anche la TuaAzienda is a Azienda.
Azienda praticamente deve contenere le caratterisitche comuni a tutte le aziende e TuaAzienda e Cliente quelle specifiche.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 16:09   #3
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
In fase di Design cerca di assegnare ad ogni classe una responsabilita' ed un comportamento preciso(Carte CRC ) premesso questo ti consiglio di usare l'ereditarieta' solo quando tutte le sottoclassi usano lo stesso codice della classe padre ovvero non fanno overriding non ridefiniscono localmente il comportamento di un metodo...

[faccio riferimento a java]
Nei linguaggi ad oggetti hai 2 tipi di ereditarieta' quella di implementazione
implementation inheritance (quella che usa la parola chiave extends) e quella di interfaccia interface inheritance (quella che usa la parola chiave implements) di questi 2 tipi di ereditarieta' quella che ti garantisce maggior flessibilita' e' l'interface inheritance.

Uno dei principi dell' OOP dice, "Program to interface, not an implementation" - Considera che quando usi extends leghi le classi figlie ad una implementazione precisa quella della classe padre, mentre usando implements puoi in qualsiasi momento sostituire l'implementazione che usi con un'altra che rispetta lo stesso contratto (definito nell'interfaccia).

Cerca di andare in profondita' e non soffermarti sull'aspetto linguistico - bisogna capire le implicazioni che una certa decisione comporta e valutarne gli aspetti positivi/negativi, altrimenti rischi di prendere qualche abbaglio.
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!

Ultima modifica di mindwings : 30-03-2009 alle 16:15.
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 16:12   #4
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da mindwings Guarda i messaggi
In fase di Design cerca di assegnare ad ogni classe una responsabilita' ed un comportamento preciso(Carte CRC ) premesso questo ti consiglio di usare l'ereditarieta' solo quando tutte le sottoclassi usano lo stesso codice della classe padre ovvero non fanno overriding non ridefiniscono localmente il comportamento di un metodo...

[faccio riferimento a java]
Nei linguaggi ad oggetti hai 2 tipi di ereditarieta' quella di implementazione
implementation inheritance (quella che usa la parola chiave extends) e quella di interfaccia interface inheritance (quella che usa la parola chiave implements) di questi 2 tipi di ereditarieta' quella che ti garantisce maggior flessibilita' e' l'interface inheritance.

Uno dei principi dell' OOP dice, "Program to interface, not an implementation" - Considera che quando usi extends leghi le
classi figlie ad una implementazione precisa quella della classe
padre, mentre usando implements puoi in qualsiasi momento
sostituire l'implementazione che usi con un'altra che rispetta
lo stesso contratto (definito nell'interfaccia).

Programmare ad oggetti significa attribuire responsabilita' e comportamenti
cio' porta ad una pluralita' di implementazioni, ogni implementazione soddisfa determinati requisiti(per questo non bisogna legarsi ad una in particolare). Bisogna fare data abstraction questa e' la chiave.
In diversi casi è anche preferibile utilizzare la composizione rispetto all'ereditarietà...
Ma dipende dai vari casi, quindi avevo risposto solo in maniera generica rispetto a quello che avevo capito del suo particolare problema.
cmq anch'io sono assolutamente a favore dell'uso delle interfacce.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 16:33   #5
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Innanzitutto grazie per le risposte.

Ma quindi, se non ho capito male, la mia classe base dovrebbe essere un'interfaccia?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 16:37   #6
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
In diversi casi è anche preferibile utilizzare la composizione rispetto all'ereditarietà...
Ma dipende dai vari casi, quindi avevo risposto solo in maniera generica rispetto a quello che avevo capito del suo particolare problema.
cmq anch'io sono assolutamente a favore dell'uso delle interfacce.
E' un altro principio "prefer composition over inheritance".
@Raoul ti consiglio di acquistare qualche libro, io alcune cose le comprendo leggendo, per esempio trovo molto interessante http://www.holub.com/payment/holub.on.patterns.html nei primi capitoli bene l'oop e da un significato alla parola pattern.

Giusto per dirne una:

L'autore descrive un sistema OO come un insieme di animali intelligenti
che parlano l'un con l'altro scambiandosi messaggi (la metafora di Alan Kay)
ed aggiunge "The most important facet of OO design is data abstraction."...
"All information is hidden. A given object doesn't have any idea of what the innards of other objects look like"...

"You may have read in a book somewhere that an object is a data structure of some sort combined with a set of functions, called methods, that manipulate that data structure.Balderdash! Poppycock!"

Qui l'autore denigra la definizione di oggetto come struttura dati + metodi... Nel seguito spiega il perche` ovvero una definizione "procedurale" infatti segue una sezione dal titolo "Getters and Setters Are Evil"
Effettivamente anche a me e' capitato di usare gli oggetti poco piu' come dei contenitori e vai di get e set XD... Questo a causa di Cay Horstmann e uno dei suoi libri bacati usato al primo corso di programmazione...
Che senso ha definire una dato privato e rendere pubblici metodi come get e set ?! Serve solo a complicarne l'accesso...
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 16:48   #7
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Innanzitutto grazie per le risposte.

Ma quindi, se non ho capito male, la mia classe base dovrebbe essere un'interfaccia?
Dipende come ogni cosa dei farci delle considerazioni, ti aiuto io.
Allora definendo un'interfaccia delinei un comportamento ovvero l'insieme
dei messaggi a cui l'oggetto che implementa l'interfaccia e' in grado di rispondere. Definisci solo le segnature dei metodi! Non l'implementazione. Cio' ti da maggior flessibilita'/puoi avere piu' implementazioni per l'interfaccia ma per contro aggiungi un livello di astrazione.
Se invece usi una classe semplice e' perche' non hai bisogno di maggior flessibilita' e ti va bene usare direttamente l'implementazione.
Infine c'e' la mezza misura la classe astratta una classe astratta e' una classe che ha almeno un metodo astratto ovvero viene definita solo la segnatura e non l'implementazione, le classi che implementano la classe astratta devono definire l'implementazione del metodo astratto.

per esempio
Collection contenitore1 = new LinkedList();

LinkedList contenitore2 = new LinkedList();

Nel primo esempio sto usando la programmazione per interfacce ovvero quando uso contenitore
invio messaggi all'oggetto utilizzando solo quelli definiti nella sua interfaccia Collection mentre
nel secondo caso uso l'interfaccia specifica di LinkedList(definita nella sua classe) e quindi ho sia
i messaggi di "tipo" Collection perche' LinkedList implementa Collection e sia i messaggi propri
di LinkedList come per esempio addFirst che ha senso per una lista ma non per una collezione
che e' un concetto piu' generale(infatti collection non ha il messaggio addFirst).

se per esempio voglio cambiare l'implementazione di contenitore1 e' sufficente
sostituire new LinkedList() con per es new HashSet e sono in una botte di ferro
perche' anche la classe HashSet implementa lo stesso contratto/intefaccia Collection
e non avro' errori... Mentre nel secondo caso contenitore2 sono bloccato non posso
fare cambiamenti perche' uso un implementazione concreta

Spero di aver chiarito un po' i tuoi dubbi
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!

Ultima modifica di mindwings : 30-03-2009 alle 17:05.
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 17:07   #8
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
"We can write good or bad programs with any tool. Unless we teach people how to design, the languages matter very little."

-David Parnas


Questa e' da incorniciare
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 17:50   #9
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Con la classe base Azienda, è corretto pensare che NON è la mia azienda ma un'astrazione dell'entità azienda? Cioè, dovrò poi utilizzare questa classe base per istanziare oggetti di tipo miaAzienda, aziendaCliente ?
E' corretto. Ogni volta in cui dichiari una classe dichiari implicitamente un insieme di valori. I valori appartenenti a quell'insieme sono tutti e soli quei valori a cui sono applicabili le operazioni dichiarate nella classe.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 17:57   #10
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da mindwings Guarda i messaggi
In fase di Design cerca di assegnare ad ogni classe una responsabilita' ed un comportamento preciso...
Questo è un'aspetto critico se si vuole progettare la soluzione in una corretta prospettiva OO.
Troppe volte ho commesso l'errore di trascurare una definizione iniziale chiara delle responsabilità per delineare in modo pulito le classi e il modo in cui interagiscono.
All'inizio forse non puoi sapere tutta la soluzione, ma lavorando su quello che conosci eseguire questa prima analisi può aiutare a farti capire altri aspetti della soluzione che ancora non conoscevi, nonchè a far saltar fuori nuove classi che ad una prima osservazione erano rimaste misconosciute.

Magari è un discorso un po' OT rispetto al tuo problema contingente, però penso che una corretta identificazione delle responsabilità possa facilitarti nell'individuare anche la "gerarchia emergente" delle stesse.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 30-03-2009 alle 18:03.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 18:06   #11
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
mindwings ha scritto:
Qui l'autore denigra la definizione di oggetto come struttura dati + metodi... Nel seguito spiega il perche` ovvero una definizione "procedurale" infatti segue una sezione dal titolo "Getters and Setters Are Evil"
Effettivamente anche a me e' capitato di usare gli oggetti poco piu' come dei contenitori e vai di get e set XD... Questo a causa di Cay Horstmann e uno dei suoi libri bacati usato al primo corso di programmazione...
Che senso ha definire una dato privato e rendere pubblici metodi come get e set ?! Serve solo a complicarne l'accesso
:sonoArrossito:

Ecco, mi hai dato il colpo di grazia

Già stavo pensando all'incapsulamento della mia classe base ......
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 00:18   #12
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12965
Quote:
Originariamente inviato da mindwings Guarda i messaggi
[...] "Getters and Setters Are Evil"
Effettivamente anche a me e' capitato di usare gli oggetti poco piu' come dei contenitori e vai di get e set XD... Questo a causa di Cay Horstmann e uno dei suoi libri bacati usato al primo corso di programmazione...
Che senso ha definire una dato privato e rendere pubblici metodi come get e set ?! Serve solo a complicarne l'accesso...
Non a caso C# ha i getters e i setters di default che vengono richiamati sia in lettura che in scrittura, basta definire un

get { ... codice ... } e un set { ... codice ... } et voilà, vengono richiamati quando occorrono, senza complicarsi la vita con i metodi .
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 00:47   #13
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Non a caso C# ha i getters e i setters di default che vengono richiamati sia in lettura che in scrittura, basta definire un

get { ... codice ... } e un set { ... codice ... } et voilà, vengono richiamati quando occorrono, senza complicarsi la vita con i metodi .
ehmmm...
così fungono in realtà quelli automatici...
Codice:
public class Person
{
   public string Name { get; set; }
   public int Age { get; set; }
}
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 11:02   #14
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Visto che l'avete tirato in ballo (il C# intendo...)

non è quindi una buona pratica di programmazione utilizzare delle proprietà mediante get e set ??
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 11:45   #15
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Io sono certo che lo sia.
cioè, è indispensabile nei casi che get e set oltre a restituire/settare la variabile facciano anche qualcosa altro... cosa piuttosto comune in classi sufficientemente complesse.

Nel caso del get/set puro io li preferirei lo stesso, perchè impediscono all'utente di "spararsi nei piedi"... per esempio se tu offri l'accesso pubblico ad una variabile di una classe, a qualche furbo potrebbe venire in mente di prenderne il puntatore.
Al che, appena per qualsiasi motivo la elimini la parte user dell'applicazione crasha miseramente.

Per cui vi ricordo che il mondo della programmazione va a mode, ed eviterei di decidere come programmare sulla base di slogan
Questa roba lasciatela allo stadio plz.
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 11:47   #16
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Visto che l'avete tirato in ballo (il C# intendo...)

non è quindi una buona pratica di programmazione utilizzare delle proprietà mediante get e set ??
Dipende dal tipo di oggetto in generale no! Se per esempio ho un oggetto Termometro ha senso un metodo getTemperatura, in altri casi un oggetto non deve mai esporre i dettagli del suo funzionamento(e quindi i campi privati o metodi privati), se io definisco un campo come private e poi definisco
dei metodi pubblici get e set a questo punto non c'e' alcun senso a definire il campo come private perche' sto soltanto complicando l'accesso al dato
ma la sostanza non cambia, modifico un dettaglio relativo al funzionamento dell'oggetto e quindi mando parnas a cagare con la sua information hiding.
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!

Ultima modifica di mindwings : 31-03-2009 alle 11:59.
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 11:54   #17
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Io sono certo che lo sia.
cioè, è indispensabile nei casi che get e set oltre a restituire/settare la variabile facciano anche qualcosa altro... cosa piuttosto comune in classi sufficientemente complesse.

Nel caso del get/set puro io li preferirei lo stesso, perchè impediscono all'utente di "spararsi nei piedi"... per esempio se tu offri l'accesso pubblico ad una variabile di una classe, a qualche furbo potrebbe venire in mente di prenderne il puntatore.
Al che, appena per qualsiasi motivo la elimini la parte user dell'applicazione crasha miseramente.

Per cui vi ricordo che il mondo della programmazione va a mode, ed eviterei di decidere come programmare sulla base di slogan
Questa roba lasciatela allo stadio plz.
Sono principi, piuttosto che chiedere ad un oggetto un suo campo privato per fare delle azioni bisogna dire all'oggetto fai questa azione per me.

Esempio:

Oggetto Impiegato, anziche' avere una God Class che raccoglie i dati da impiegato per fornire una visualizzazione via gui...

impiegatoRaoul.getName
impiegatoRaoul.getCognome
impiegatoRaoul.getCodiceFiscale

faccio questo impiegatoRaoul.displayInformazioniPersonali, se seguo la strada del get and set avro' una bella God class che
sicuramente colleghera' i dati ad un unica modalita' di presentazione di dati... (E se cambiabutto via tutto?)...
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!

Ultima modifica di mindwings : 31-03-2009 alle 12:01.
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 11:59   #18
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Non a caso C# ha i getters e i setters di default che vengono richiamati sia in lettura che in scrittura, basta definire un

get { ... codice ... } e un set { ... codice ... } et voilà, vengono richiamati quando occorrono, senza complicarsi la vita con i metodi .
Zuccherino sintattico?!
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 12:23   #19
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da mindwings Guarda i messaggi
Sono principi, piuttosto che chiedere ad un oggetto un suo campo privato per fare delle azioni bisogna dire all'oggetto fai questa azione per me.

Esempio:

Oggetto Impiegato, anziche' avere una God Class che raccoglie i dati da impiegato per fornire una visualizzazione via gui...

impiegatoRaoul.getName
impiegatoRaoul.getCognome
impiegatoRaoul.getCodiceFiscale

faccio questo impiegatoRaoul.displayInformazioniPersonali, se seguo la strada del get and set avro' una bella God class che
sicuramente colleghera' i dati ad un unica modalita' di presentazione di dati... (E se cambiabutto via tutto?)...
Allora non ci sto capendo nulla

riprendendo il tuo esempio:

impiegatoRaoul.getName <- questo sarà un metodo pubblico o sbaglio ?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 12:51   #20
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Allora non ci sto capendo nulla

riprendendo il tuo esempio:

impiegatoRaoul.getName <- questo sarà un metodo pubblico o sbaglio ?
si ma lui sta parlando del caso specifico in cui devi usare il getter per prendere i dati dell'impiegato da visualizzare in una gui...
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
12 MW e oltre 20.000 pannelli: Stellanti...
Sono bastate solo 5 ore per insegnare a ...
Fastweb + Vodafone e TIM: un accordo per...
Scaleway apre una nuova cloud region a M...
Il PC non dà accesso al disco C:/...
Attenzione alle app IPTV: nascondono Per...
Controller Xbox in offerta su Amazon: co...
vivo X300 Pro 5G a 1.199€ su Amazon: il ...
"Portraits of Italians": la ca...
Roborock Qrevo Curv 2 Pro crolla di prez...
Uber ha trovato il partner per i robotax...
Sony pronta a dire addio al marchio PSN:...
ARCTIC Senza AI 370: il PC 'sotto la scr...
Corsair 3200D, il mid-tower sotto i 100€...
Esiste un SSD NVMe M.2 2280 da 16 TB, ma...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v