diff --git a/aula134.py b/aula134.py new file mode 100644 index 0000000..7623ba9 --- /dev/null +++ b/aula134.py @@ -0,0 +1,39 @@ +# Relações entre classes: associação, agregação e composição +# Associação é um tipo de relação onde os objetos +# estão ligados dentro do sistema. +# Essa é a relação mais comum entre objetos e tem subconjuntos +# como agregação e composição (que veremos depois). +# Geralmente, temos uma associação quando um objeto tem +# um atributo que referencia outro objeto. +# A associação não especifica como um objeto controla +# o ciclo de vida de outro objeto. +class Escritor: + def __init__(self, nome) -> None: + self.nome = nome + self._ferramenta = None + + @property + def ferramenta(self): + return self._ferramenta + + @ferramenta.setter + def ferramenta(self, ferramenta): + self._ferramenta = ferramenta + + +class FerramentaDeEscrever: + def __init__(self, nome): + self.nome = nome + + def escrever(self): + return f'{self.nome} está escrevendo' + + +escritor = Escritor('Luiz') +caneta = FerramentaDeEscrever('Caneta Bic') +maquina_de_escrever = FerramentaDeEscrever('Máquina') +escritor.ferramenta = maquina_de_escrever + +print(caneta.escrever()) +print(maquina_de_escrever.escrever()) +print(escritor.ferramenta.escrever())