OOP Recap de Associação, Agregação, Composição e Herança entre Classes

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ม.ค. 2025

ความคิดเห็น • 17

  • @elieldomartins1037
    @elieldomartins1037 ปีที่แล้ว +5

    A associação composição obriga a exclusão da parte na exclusão do todo. Ja na agregação a parte permanece após a exclusão do todo.

    • @marciopetry
      @marciopetry  ปีที่แล้ว

      Perfeito, amigo! Exatamente! 👍🤜🤛

  • @magnomani5865
    @magnomani5865 ปีที่แล้ว +2

    Parabéns!

    • @marciopetry
      @marciopetry  ปีที่แล้ว +1

      Olá Magno. Obrigado.

    • @magnomani5865
      @magnomani5865 ปีที่แล้ว +1

      @@marciopetry É como se, depois de uma longa viagem na procura de esclarecimento sobre o assunto, cheguei ao destino!
      Foi um sofrimento, mas já cheguei, ou seja, finalmente entendi!

  • @diegofelix9738
    @diegofelix9738 ปีที่แล้ว +2

    Olá, professor! Na agregação, se o carro deixar de existir, não significa que o rádio também deixará de existir. Já na composição, se a nota fiscal deixar de existir, o item da nota fiscal também não existirá. A nota fiscal sempre precisa ter pelo menos um item ou mais. Estou certo? Obrigado!

    • @marciopetry
      @marciopetry  ปีที่แล้ว +2

      Perfeito, Diego! Isso mesmo!! 👏👏

  • @MariliaCavenaghi
    @MariliaCavenaghi ปีที่แล้ว

    Olá Prof! Na agregação o todo contiua a existir se a parte for destruída, e vice-versa. Já na composição o todo deixa de existir se a parte é destruída e, vice-versa.
    Tenho uma dúvida quanto a herança: necessariamente TODOS atributos de uma classe filha são herdados da classe mãe? E quando eu preciso usar um atributo de uma classe filha para o cálculo de um atributo da classe mãe?
    Contextualizando: estou consitruindo um diagrama de classes para a avaliação econômica de projetos de plantas químicas. Preciso calcular os custos de capital de investimento, que é divido em subclasses, que por sua vez são divididos por subclasses. Também preciso calcular os custos variáveis, que também possuem subclasses. Minha dúvida é sobre como diferenciar uma subclasse (herança) e uma composição, visto que possuo um atributo comum de preço/custo em comum para todas essas classes/subclasses, mas atributos específicos para o cálculo de algumas dessas subclasses.

    • @marciopetry
      @marciopetry  ปีที่แล้ว +1

      Olá Marília, obrigado pelo contato! Sim, todos os atributos das "superclasses" são herdados nas classes filhas (subclasses), mesmo atributos privados, se assim estiverem declarados. Correto. Os métodos de cálculo, considerando esse seu contexto, também são herdados da mesma forma. No entanto, os métodos herdados podem aplicar sobrescrita (overriding) na classe filha, especializando o cálculo originalmente herdado da superclasse. Essa técnica se chama comportamento polimórfico e proporciona muita flexibilidade e aproveitamento de código. Acredito seja bem interessante para essa sua necessidade de calculos específicos e aprimorados, na medida que você implemente uma relação de herança entre classes bem coesa, tudo bem? Novamente muito obrigado pelo contato. Espero ter esclarecido sua dúvida.

    • @marciopetry
      @marciopetry  ปีที่แล้ว +1

      th-cam.com/video/TkJFSUhsOVM/w-d-xo.html por gentileza dê uma consultada nesse meu vídeo sobre a técnica de Overriding de métodos. Acho que pode lhe dar algum insight para sua necessidade. Abração. Petry

    • @MariliaCavenaghi
      @MariliaCavenaghi ปีที่แล้ว

      @@marciopetry muito obrigada pela resposta. Na verdade, estava com dúvida entre quando usar herança e quando usar composição, pois me parecem similares e a questão dos atributos e métodos eram a principal fonte de dúvidas. No entanto, vi em outros canais que é recomendado evitar o uso de herança sempre que possível e essa dica resolvei meu problema rsrs mas acho que em algum momento a dúvida de quando usar herança vai retornar novamente.
      Abs e obrigada!

    • @marciopetry
      @marciopetry  ปีที่แล้ว

      Ah ok, perfeitamente! Ambas abordagens conseguem modelar a solução, embora o uso de herança promova um forte acoplamento. Na contrapartida pode gerar melhorar aproveitamento de código (overriding de métodos) e aplicação de polimorfismo. Mas sim, há possibilidade de modelagem tanto associativa quanto por subclassificação (herança). Um abraço e obrigado novamente pela visita! 🙏

  • @luizcarlosgoncalvessilva9287
    @luizcarlosgoncalvessilva9287 4 หลายเดือนก่อน +1

    Penso, no mundo real todos esses caso são Associação com particularidades. Exemplos: chef tem faca, mas usa; carro tem radio, mas nem sempre e não usa; A NF tem Itens , existe uma relação de dependencia. São pequenas particularidades que para descobrir em um primeiro momento passam despercebidos ate se use uma lupa. Será que faz diferença significativa no desenvolvimento????

    • @marciopetry
      @marciopetry  4 หลายเดือนก่อน

      Boa noite Luiz! Obrigado pelo contato. Tem impacto no desenvolvimento sim! O tipo de Associação (Simples, Agregação ou Composição) dizem respeito diretamente à forma como são codificados e aplicados métodos construtores, por exemplo. O modelo dita a semântica que por sua vez orienta a técnica de codificação (acoplamento) correspondente. 👍🙏 Um abraço, grato novamente pelo contato. Petry

  • @euiveteandrade
    @euiveteandrade 2 ปีที่แล้ว

    👏🏻👏🏻👏🏻👏🏻

  • @muriloleiteprieto9687
    @muriloleiteprieto9687 ปีที่แล้ว

    Professor, só para sanar dúvidas, na associação um objeto pode existir sem dependências, a faca pode existir sem um cozinheiro e vice versa. Na Agregação você possui objetos que possuem certas dependências porem podem existir sem o outro, no caso o radio do carro pode existir sem um carro, mas ele não terá 100% das funcionalidades já que possui algumas dependências. A logica esta correta?

    • @marciopetry
      @marciopetry  ปีที่แล้ว

      Correto Murilo. Temos que observar no exemplo dado que o rádio do carro continua existindo, mas sua "existência" (semântica) só fará sentido quando ele estiver novamente numa relação associativa por agregação com outro veículo! todo-parte. no caso, rádio é uma "parte", então sim, seu raciocínio está corretíssimo. Muito obrigado pelo contato e pela visita ao canal! Abração. Petry