Composição

This commit is contained in:
Luiz Otávio
2022-11-15 14:31:14 -03:00
parent 7bde086ccf
commit 4b78d48dd5

45
aula136.py Normal file
View File

@@ -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')