Qual a diferença de Composição de Classe para Instanciar uma classe dentro de uma classe? Seria a mesma coisa? Porque na composição de classe cria-se uma propriedade com o tipo da classe.
Qual a diferença de Composição de Classe para Instanciar uma classe dentro de uma classe? Seria a mesma coisa? Porque na composição de classe cria-se uma propriedade com o tipo da classe.
Beatriz,
Fui pesquisar, pois não sabia sobre "composição" para explicar. Pelo que eu entendi, a herança usa-se o ": inherit" (herdar). Na composição, apenas chama-se as classes relacionadas, NÃO tem palavra-chave especial para invocar, sendo assim, digamos, puramente técnico o conceito. Os atributos NÃO são "herdados", mas, talvez eu possa dizer "usados".
A instância é a própria chamada do modelo, o objeto propriamente dito.
Frase clássica: "Objeto é uma instância de uma classe".
Achei um texto do José Carlos Macoratti excelente, recomendo ler e montar o exemplo proposto:
==========================================================
C# - Herança ou Composição ?
As classes e objetos criados por herança são fortemente acoplados porque alterar a classe base ou classe pai em um relacionamento de herança corre o risco de quebrar seu código.
As classes e objetos criados por meio da composição são fracamente acoplados, o que significa que você pode alterar mais facilmente as partes do componente sem quebrar seu código.
Quando devo usar herança ?
Na programação orientada a objetos, podemos usar a herança quando sabemos que existe um relacionamento do tipo "é um" entre uma classe filha e sua classe pai.
Quando devo usar Composição ?
Na programação orientada a objetos, podemos usar a composição nos casos em que um objeto "possui" (ou faz parte de) outro objeto. Alguns exemplos seriam:
https://www.macoratti.net/20/05/c_compoher1.htm
==========================================================
Por favor, leia também:
==========================================================
O que é um objeto de uma classe?
Objeto é uma instância de uma classe. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos. Exemplo de objetos da classe Humanos: João, José, Maria. Atributos são características de um objeto.
Qual a diferença de uma classe para um objeto?
A classe é um modelo, um planejamento, tal como a maquete de uma casa. O objeto seria a classe materializada, ou seja, um objeto com os devidos atributos qualificados: uma casa azul, térrea, com garagem, construída em 2015, com valor venal de $ 100.000,00, com área construída de 60m2, etc.
==========================================================
Tudo isso nos leva a duas palavras muito importantes: ACOPLAMENTO e COESÃO.
==========================================================
O que é acoplamento de software?
2022-02-10
O que é alta coesão e baixo acoplamento?
No design de software, alta coesão significa que a classe deve fazer uma coisa e uma coisa muito bem. A alta coesão está intimamente relacionada ao princípio da responsabilidade única . Um baixo acoplamento sugere que a classe deve ter menos dependências possíveis.
==========================================================
Procure buscar sempre ALTA coesão e BAIXO acoplamento. Desta forma a equipe de manutenção de software irá te agradecer sempre.
[]'s,
Fabio I.