From 1859ee12d29541cfaf322cce5908525603353993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Tue, 15 Nov 2022 12:44:38 -0300 Subject: [PATCH] =?UTF-8?q?Rela=C3=A7=C3=B5es=20entre=20classes:=20associa?= =?UTF-8?q?=C3=A7=C3=A3o,=20agrega=C3=A7=C3=A3o=20e=20composi=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aula134.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 aula134.py 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())