Encapsulamento
Usamos esse princípio para juntar, ou encapsular, dados e comportamentos relacionados em entidades únicas, que chamamos de objetos.
Por exemplo, se quisermos modelar uma entidade do mundo real, por exemplo Computador.
Encapsular é agregar todos os atributos e comportamentos referentes à essa Entidade dentro de sua Classe.
Dessa forma, o mundo exterior não precisa saber como um Computador liga e desliga, ou como ele realiza cálculos matemáticos!
Basta instanciar um objeto da Classe Computador, e utilizá-lo!
O princípio do Encapsulamento também afirma que informações importantes devem ser contidas dentro do objeto de maneira privada e apenas informações selecionadas devem ser expostas publicamente.
Veja a imagem abaixo que exemplifica a relação entre atributos e métodos públicos e privados:

A implementação e o estado de cada objeto são mantidos de forma privada dentro da definição da Classe.
Outros objetos não têm acesso a esta classe ou autoridade para fazer alterações.
Eles só podem chamar uma lista de funções ou métodos públicos.
Essa característica de ocultação de dados fornece maior segurança ao programa e evita corrupção de dados não intencional.

Esse código não consegue alterar os atributos MARCA e MODELO, pois estão encapsulados, PRIVADOS ao acesso externo. Vejamos o próximo código:

Agora criamos um método PÚBLICO chamado alteraValores, com ele conseguimos acessar os atributos privados, pois esse acesso é realizado pela própria classe.
Mas ainda conseguimos reduzir e simplificar mais esse código. Criaremos um tipo especial de método chamado MÉTODO CONSTRUTOR, com ele conseguimos instanciar o objeto e ao mesmo tempo alterar os valores de suas propriedades. Vejamos o código abaixo:

ATIVIDADE
- Recrie o último exemplo
- Crie a classe Conta utilizando a linguagem Python. Utilize o diagrama de classes abaixo para implementar o código.

muito daora essa aula ciro
gostei da aula
asmei a sua aulinha Ciro
class conta:
def __init__(self, banco, agencia, numero_conta, saldo):
self.__banco = agencia
self.__agencia = banco
self.__numero_conta = saldo
self.__saldo = numero_conta
def imprime(self):
print(‘banco:’,self.__banco)
print(‘agencia:’,self.__agencia)
print(‘numero da conta:’,self.__numero_conta)
print(‘saldo:’,self.__saldo)
objetoconta = conta(‘Santander’,’Caixa’,’10.000′,’4002-8922′)
objetoconta.imprime()
class conta:
def __init__(self, banco, agencia, numero_conta, saldo):
self.__banco = agencia
self.__agencia = banco
self.__numero_conta = saldo
self.__saldo = numero_conta
def imprime(self):
print(‘banco:’,self.__banco)
print(‘agencia:’,self.__agencia)
print(‘numero da conta:’,self.__numero_conta)
print(‘saldo:’,self.__saldo)
objetoconta = conta(‘Santander’,’Caixa’,’10.000′,’4002-8922′)
objetoconta.imprime()