Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação III
Atributos e Métodos: Encapsulamento
Objetivos
● Objetos
● Implementação de uma classe
● Declaração de atributos e métodos
● Classes cliente, uso de métodos
● Encapsulamento e modificadores de acesso
● Métodos Getter e Setter
● Mecanismo de autoreferenciamento
Objetos
● Objetos apresentam:
○ Métodos = ações, definem os comportamentos do objeto e permitem sua interação com outros
objetos e o ambiente externo
Objetos
Carro PrevisaoTempo
- cor - data
- fabricante - tempMedia
- modelo - tempMinima
- ano - tempMaxima
- velocidadeAtual - humidade
+ ligarMotor() - percentChuva
+ acelerar() + imprimir()
+ frear() + atualizar()
+ bucinar()
+ virar(direcao)
Objetos
● Cada objeto tem uma cópia de seus atributos ou variáveis de instância (que definem
o estado dele)
● Os métodos são compartilhados entre todos os objetos do mesmo tipo
Cat
- name
- age
+ info()
+ makeSound()
A classe Cat em Java
A classe cliente CatExample em Java ...
A classe Cat em Java ...
● Métodos em Java
● Métodos em Python
Encapsulamento
● Exemplos: https://www.baeldung.com/java-access-modifiers
Encapsulamento
● Exemplos: https://www.geeksforgeeks.org/access-modifiers-in-python-public-
private-and-protected/
Encapsulamento
● Ofuscamento de identificadores
● Em java contornamos o problema usando o mecanismo de autoreferenciamento (this)
Autorefereciamento - Java
● A palavra-chave this permite referenciar o objeto corrente (que fez a chamada)
dentro de um método ou construtor
● Em Java, quando se chama a um método, se passa automaticamente um argumento
implícito que é uma referencia ao objeto invocado
● Os usos mais comuns do autoreferenciamento são
● Resolver conflitos de nomes entre variáveis locais (parâmetros) e variáveis de instância (atributos)
● Invocar um método ou construtor da classe corrente
● Retornar um objeto da classe corrente
● Passar um argumento na chamada de um método ou construtor
● Exemplo: 03_UseThis
Autorefereciamento - Python
● Todos os métodos de uma classe em Python tem como primeiro parâmetro uma
referencia ao próprio objeto
● A referência é declarada de forma explicita na definição do método
● A referência é enviada ao método de forma implícita, não é inclusa entre os
parâmetros na chamada
● Geralmente usamos self para identificar esta referencia
● self não é uma palavra reservada em Python, pero frequentemente usamos este
identificador para melhorar a legibilidade do código
Autorefereciamento - Python
● Exemplo: 03_AutoreferenciamentoSelf