diferença entre agregação e composição

Ao implementarmos qual a diferença na prática entre agregação e composição ?
Eu sei quando se usa cada um na teoria, mas quando vou implementar como faço ?

Sei que composição e agração têm relacionamento todo-parte, porém diferenciam-se por um ser parte essencial e outro não. Mas em código java qual a diferença ?

Favor exemplificar com código… grato !

Opa… vamos ver c eu consigo te ajudar…

Bem. vamos pensar em um Objeto Pessoa(acho q e + usado por todos rsr)
Essa pessoa tem um trabalho, e essa pessoa tem um objeto coracao, sao coisas diferentes, mas e so pra exemplo…

O objeto coracao tem os atributos… arterias, vasos, etc…
Mas… a pessoa vive sem um coracao ? entao temos um objeto composto, certo?
E essa pessoa tem um trabalho com os atributos… localizacao, cnpj, etc… ou seja… vc n vive sem o seu trabalho, mas ele nao deixa de existir… entao temos para a relacao pessoa-coracao, temos uma composicao, e para pessoa-trabalho temos uma agregacao, ok ? agora vamos pra o codigo…

[code]public class Pessoa
private String nome;
private Double salario;

private Coracao coracao;
private Trabalho trabalho;
//… get’s e set’s[/code]

[code]public class Coracao
private Integer vasos;
private Integer arterias;

private Pessoa pessoa[/code]

public class Trabalho private Integer cnpj; private String localizacao; private Pessoa pessoa

OK? espero ter ajudado!

Olá Rafael ! Muito obrigado cara !

Valeu mesmo…mas tive algumas dúvudas…

  1. A classe trabalho e a classe coração são idêndicas, só muda o nome da classe e dos atributos…

2))A classe pessoa assim declara as duas classes supracitadas (coração e trabalho)

private Coracao coracao;
private Trabalho trabalho;

Ou seja idêndicamente…

Conclusão: Agregação e composição não se diferenciam quanto ao código ?..

Muitíssimo obrigado por sua observação.

Desculpem da pergunta, mas porque é presciso colocar um objeto Pessoa na classe Coracao e na Trabalho, a referências das mesmas na classe Pessoa não basta para eu trabalhar com essas classes???

Repondendo a primeira pergunta…

No código não muda nada a parte de programação, mas precisamos ter sempre especificado no class diagram, pra vc ter uma ideia conseitual da agrecação da uma olhada AQUI, que vai esta a parte conseitual, mas basicamente falando…

[quote]Agregação é quanto você fala de um objeto que compoem outro
[/quote]

E sobre a segunda pergunta… estava somente sitando um exemplo pra o irmão da pergunta acima, como disse, foi um exemplo pra destacar a diferença, ok ?