#aula sobre Associação - o arquivo classes.py pertence a esta aula #uma classe utiliza outra classe diferente sem estar ligadas from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever escritor = Escritor('João') caneta = Caneta('Bic') maquina = MaquinaDeEscrever() escritor.ferramenta = caneta #associação de métodos entre classes, escritor.ferramenta recebeu o método caneta para executar escritor.ferramenta.escrever( ) #um método de uma classe executando um método de outra classe, associação simples
"""Associação: Relacionar classes independentes entre si """ from classes import Escritor, Caneta, MaquinaDeEscrever escritor = Escritor("Jacson") caneta = Caneta('Bic') maquina = MaquinaDeEscrever() print(escritor.nome) print(caneta.marca) maquina.escrever() print('-=' * 50) escritor.ferramenta = caneta #Associação atravéz do atributo ferramenta escritor.ferramenta.escrever() print('-=' * 50) escritor.ferramenta = maquina #Associação atravéz do atributo ferramenta escritor.ferramenta.escrever()
from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever escritor = Escritor('Valter') caneta = Caneta('neon') maquina = MaquinaDeEscrever('Eletrica') escritor.ferramenta = caneta escritor.ferramenta.escrever() escritor.ferramenta.apagar()
from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever #Criando objetos independentes - escritor / caneta / máquina escritor = Escritor('João') print(escritor.nome) caneta = Caneta('Bic') print(caneta.marca) maquina = MaquinaDeEscrever() print(maquina) print('------------------------') #criando associação entre as classes através da variável ferramenta da classe Escritor() escritor.ferramenta = maquina escritor.ferramenta.escrever()
""" é quando uma classe conversa com outra, mas nenhuma depende da outra """ from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever escritor = Escritor('João') #print(escritor.nome) caneta = Caneta('Bic') #print(caneta.marca) maquina = MaquinaDeEscrever() print(maquina)
from classes import Escritor, Caneta, MaquinaDeEscrever escritor = Escritor('José') caneta = Caneta('Divers') maquina = MaquinaDeEscrever() # Associação entre os objetos: escritor.ferramenta = caneta escritor.ferramenta.escrever()
#NA ASSOSSIAÇÃO UMA CLASSE NÃO PEDENDE DA OUTRA PARA FUNCIONAR, BASTA VOCÊ FAZER REALAÇÃO DE UM ATRIBUTO from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever e = Escritor('Yago') print(e.nome) c = Caneta('Bic') print(c.marca) m = MaquinaDeEscrever() m.escrever() #REALIZANDO ASSOCIAÇÃO ENTRE AS CLASSES ESCRITOR E CANETA/MAQUINADEESCREVER e.ferramenta = c #e.ferramenta = m e.ferramenta.escrever()
from classes import Escritor, Caneta, Maquina_De_Escrever escritor1 = Escritor('Paulo') caneta1 = Caneta('Bic') maquina1 = Maquina_De_Escrever() # ferramenta recebeu um objeto inteiro, maquina1 escritor1.ferramenta = maquina1 # Sendo assim, agora ferramenta possui maquina1 e pode acessar seus métodos escritor1.ferramenta.escrever()
""" Relções entre as classes1: Associação: Uma classe se relaciona com a outra classe, mas nenhuma das duas classes1 dependem uma da outra """ from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever escritor = Escritor('Rafael') caneta = Caneta('Jotinha') maquina = MaquinaDeEscrever() escritor.ferramenta = caneta escritor.ferramenta.escrever() escritor.ferramenta = maquina escritor.ferramenta.escrever()
Duas classes em python podem ter alguma associação, mas não necessariamente dependem uma da outro. Elass apenas usam umas as outras ex. ob1 = Objeto1() ob2 = Objeto2() ob1.atributo = ob2 ob1.atributo.[atrubuto ou metodo de ob2] OBS: neste tipo simples de referencia, após escluir o objeto princiapl os objetos que estavam referenciados, permanecem intactos """ from classes import Escritor, Caneta, Maquina print('\n##### Instanciando classes #####') escritor = Escritor('Ruy') caneta = Caneta('azul') maquina = Maquina() print('\n##### Associando caneta ao escritor #####') escritor.ferramenta = caneta escritor.ferramenta.escrever() print('\n##### Excluindo obj principal, e mantendo os referenciados #####') del escritor caneta.escrever()
from classes import Escritor, Caneta, MaquinaDeEscrever escritor = Escritor('Leialo') caneta = Caneta('Vermelha') maquina = MaquinaDeEscrever() escritor.ferramenta = caneta escritor.ferramenta.escrever() del escritor maquina.escrever() print(escritor)
from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever escritor = Escritor('Victor') caneta = Caneta('Bic') maquina = MaquinaDeEscrever() #imprimindo de forma independente print(escritor.nome) print(caneta.marca) maquina.escrever() #fazendo associação de classes enviando toda a classe (caneta) para o atributo em questão (ferramenta) escritor.ferramenta = caneta escritor.ferramenta.escrever()
from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever maquina = MaquinaDeEscrever() caneta = Caneta('Bic') escritor = Escritor('João') escritor.ferramenta = caneta # associando o escritor com a caneta ou maquina escritor.ferramenta.escrever( ) # executando o método da classe caneta através do escritor
""" Associação é associar comportamentos entre classes""" from classes import Escritor, Caneta, MaquinaDeEscrever escritor = Escritor('Veronica') caneta = Caneta('Bic') maquina = MaquinaDeEscrever() escritor.ferramenta = caneta escritor.ferramenta.escrever() escritor.ferramenta = maquina escritor.ferramenta.escrever(escritor.nome)
from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever escritor = Escritor('Joãozinho') caneta = Caneta('Bic') maquina = MaquinaDeEscrever() escritor.ferramenta = maquina escritor.ferramenta.escrever() #del escritor print(caneta.marca) maquina.escrever() print() escritor.ferramenta = caneta escritor.ferramenta.escrever()
''' Associação: Um objeto usa outro objeto Agregação: Um objeto tem outros objetos como parte de si Composição: Um objeto é dono de outros objetos Herança: Um objeto é outro objeto ''' from classes import Escritor, Caneta, MaquinaDeEscrever escritor = Escritor('Eça de Queiroz') caneta = Caneta('BIC') maquina = MaquinaDeEscrever('Olivetti') escritor.ferramenta = caneta escritor.ferramenta.escrever()
from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever escritor = Escritor("Rick Riodan") caneta = Caneta('Bic') maquina = MaquinaDeEscrever() escritor.ferramenta = caneta escritor.ferramenta.escrever() del escritor print(caneta.marca) maquina.escrever()
from classes import Escritor from classes import Caneta from classes import MaquinaDeEscrever escritor = Escritor('Danilo') caneta = Caneta('Bic') maquina = MaquinaDeEscrever() # print(escritor.nome) # print(caneta.marca) # maquina.escrever() escritor.ferramenta = caneta escritor.ferramenta.escrever()