From 4b78d48dd59b4f6bbbb261ceaaba833b83528d04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Tue, 15 Nov 2022 14:31:14 -0300 Subject: [PATCH] =?UTF-8?q?Composi=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aula136.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 aula136.py diff --git a/aula136.py b/aula136.py new file mode 100644 index 0000000..6714322 --- /dev/null +++ b/aula136.py @@ -0,0 +1,45 @@ +# Relações entre classes: associação, agregação e composição +# Composição é uma especialização da agregação. +# Mas nela, quando o objeto "pai" for apagado, todas +# as referências dos objetos filhos também são +# apagadas. +class Cliente: + def __init__(self, nome): + self.nome = nome + self.enderecos = [] + + def inserir_endereco(self, rua, numero): + self.enderecos.append(Endereco(rua, numero)) + + def inserir_endereco_externo(self, endereco): + self.enderecos.append(endereco) + + def listar_enderecos(self): + for endereco in self.enderecos: + print(endereco.rua, endereco.numero) + + def __del__(self): + print('APAGANDO,', self.nome) + + +class Endereco: + def __init__(self, rua, numero): + self.rua = rua + self.numero = numero + + def __del__(self): + print('APAGANDO,', self.rua, self.numero) + + +cliente1 = Cliente('Maria') +cliente1.inserir_endereco('Av Brasil', 54) +cliente1.inserir_endereco('Rua B', 6745) +endereco_externo = Endereco('Av Saudade', 123213) +cliente1.inserir_endereco_externo(endereco_externo) +cliente1.listar_enderecos() + +del cliente1 + + +print(endereco_externo.rua, endereco_externo.numero) +print('######################## AQUI TERMINA MEU CÓDIGO')