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 escritor = Escritor("Rick Riodan") caneta = Caneta('Bic') maquina = MaquinaDeEscrever() escritor.ferramenta = caneta escritor.ferramenta.escrever() del escritor print(caneta.marca) maquina.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 Caneta c1 = Caneta('Bic', 'Azul', 0.5) c2 = Caneta('KKK', 'Verde', 1.0) print(c1.modelo, c1.cor, c1.ponta) # print(c2.modelo, c2.cor, c1.ponta)
''' 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('Joãozinho') caneta = Caneta('bic') maquina = MaquinaDeEscrever() print(escritor.nome) print(caneta.marca) print(maquina) maquina.escrever() escritor.ferramenta = caneta escritor.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()
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()
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)
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('José') caneta = Caneta('Divers') maquina = MaquinaDeEscrever() # Associação entre os objetos: escritor.ferramenta = caneta escritor.ferramenta.escrever()