Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - in concreto le differenze tra......
Forum - Java - in concreto le differenze tra......

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 15:46
Lunedì, 06/12/2010
salve..vorrei capire delle cose.....

Quale differenza c'è tra:

Dipendenza

Aggregazione

Ereditarietà ?

mi fate anche degli esempi pratici per capirlo ?
grazie :)

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 17:22
Lunedì, 06/12/2010
Dipendenza: classe A utilizza la classe Math per fare alcuni calcoli. Quindi A dipende da Math.

Aggregazione: classe Auto ha un array di 4 oggetti Ruota. Quindi Auto aggrega Ruota.

Codice sorgente - presumibilmente Java

  1. class Auto{
  2.   Ruota ruote[4];
  3.   /* ... */
  4. }



Ereditarieta': classe Cerchio e' una Figura. Quindi Cerchio eredita da Figura.

Codice sorgente - presumibilmente Java

  1. class Figura{
  2.  
  3. }
  4.  
  5. class Cerchio extends Figura{
  6.  
  7. }



Il mio blog: https://piero.dev
PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 19:28
Lunedì, 06/12/2010
quindi è scorretto dire che
Cuore extends Corpo? ( ereditarieta ) ?  :) mmm..difficile sta cosa..come le rappresento strutturalmente ? alcuni mi dicono Aggregazione....bo..non ci sto capendo nulla..xD..mi faresti capire per bene :) ? anche praticamente come logica :) ..grazie

Ultima modifica effettuata da killer il 06/12/2010 alle 19:29
PM Quote
Avatar
nihal (Ex-Member)
Pro


Messaggi: 109
Iscritto: 12/04/2010

Segnala al moderatore
Postato alle 19:57
Lunedì, 06/12/2010
Bè in questo caso è aggregazione... Il cuore non è una specializzazione del corpo umano, bensì è una parte di esso che si aggrega... Al massimo, la classe Cuore può implementare un'interfaccia generica ParteDelCorpo, ma questo non c'entra... Come criterio generale potresti vederla così: quando una classe è una versione più specifica di un'altra più generica (Animale-Mammifero-Cane ecc.), allora è sicuramente ereditarietà; al contrario, se in una classe utilizzo oggetti esterni e istanziati da altre classi (quindi non metodi statici come per Math), si parla di aggregazione.

PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 20:33
Lunedì, 06/12/2010
quindi se non erro dovrei aver capito adesso...
in pratica cercando di fare qualche esempio..

1-public class Mammifero extends Animale

2-public class Fegato extends Organo

3-public class Pistone extends Motore

4-public class Lamborghini extends Auto

per le prime e 4 si parla di ereditarieta..sono giuste? il concetto e questo?

poi a seguire

5-public class Tastiera extends ComputerFisso
              
         Tipo t=new Tipo("....")......etc....  

qui si parla di aggregazione ?

e
la
6- public class Numeri  extends Generatore{

           Math........ utilizzandolo in maniera statica , la classe Numeri 'dipenderebbe'  da Math ?
           anche dovendo derivare da Generatore ?
}


Ultima modifica effettuata da killer il 06/12/2010 alle 20:35
PM Quote
Avatar
nihal (Ex-Member)
Pro


Messaggi: 109
Iscritto: 12/04/2010

Segnala al moderatore
Postato alle 21:25
Lunedì, 06/12/2010
Le prime 4 vanno bene tranne quella del pistone: il pistone non è un particolare tipo di motore, è una parte del motore, quindi è aggregazione... La stessa cosa nel computer: la tastiera va aggregata al pc, quindi non si usa la extends.

PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 21:33
Lunedì, 06/12/2010
e cosa si utilizza al posto di extends ?

PM Quote
Avatar
nihal (Ex-Member)
Pro


Messaggi: 109
Iscritto: 12/04/2010

Segnala al moderatore
Postato alle 21:46
Lunedì, 06/12/2010
Banalmente come diceva Piero basta fare una cosa del genere:
Codice sorgente - presumibilmente Java

  1. public class ComputerFisso{
  2.     private Tastiera tastiera;
  3.     /* ... */
  4. }



Cioè il computer ha un membro che rappresenta la sua tastiera.

PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 22:02
Lunedì, 06/12/2010
ahhhhh ok ok ..perfettamente capito... !! :) grazie ancora..

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo