Example #1
0
#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
Example #2
0
"""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()
Example #4
0
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()
Example #5
0
"""
é 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)
Example #6
0
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()
Example #7
0
#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()
Example #8
0
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()
Example #9
0
"""
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()
Example #10
0
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()
Example #11
0
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)
Example #12
0
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()
Example #13
0
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
Example #14
0
""" 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)


Example #15
0
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()
Example #16
0
'''
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()

Example #17
0
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()
Example #18
0
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()