Você está na página 1de 55

Centro Federal de Educação Tecnológica de Minas Gerais

Departamento de Computação

Prof. Glender Brás


glender@cefetmg.br
Recapitulando
Recapitulando
 Na Programação Orientada a Objetos passamos a
enxergar o mundo com se fosse uma coleção de objetos
que se relacionam entre si.

 Precisamos passar pelo processo de abstração para


transformar nossas entidades reais em representações
computacionais

 Classes são “moldes” para criação de objetos


Diferenciando classe e objeto
 A classe é o modelo, o objeto é a concretização desse
modelo

 A classe apresenta a estrutura de cada entidade que


pertence a ela, o objeto é a entidade em si

 A classe é um tipo de dado (abstrato), o objeto é um


elemento pertencente à este tipo possui as características
(atributos) e executa as ações (métodos) definidas pela
classe

 De maneira simplificada podemos entender que cada


objeto é uma variável do “tipo” classe.
Atributos
 São as variáveis internas da classe (variáveis de instância)

 Representam as características inerentes aos objetos que


serão criados

 Armazenam os dados no objeto

 Devem possuir um tipo: int, doble, char, String,


boolean, etc.

 Definem o estado do objeto.


 O estado é o conjunto de valores dos atributos dos objeto
Métodos
 São as funções contidas na classe

 Definem o comportamento dos objetos

 Podem ou não retornar um valor

 Podem ou não conter argumentos (receber parâmetros)

 Também possuem um tipo, que será o tipo de dado que ele


retorna. Métodos que não possuem retorno são do tipo
void
Resumindo...
 Os atributos representam os dados com que nosso sistema
trabalhará

 Os métodos implementam as funcionalidades do sistema


Classes e Objetos

 Podemos modelar qualquer coisa


utilizando os conceitos da Programação
Orientada a Objetos?
Classes e Objetos
 Tudo que precisamos é de uma boa
especificação.

 E se ela não for tão boa assim,


precisaremos de uma maior capacidade
de abstração
Classes e Objetos
 Tudo que precisamos é de uma boa
especificação.

 E se ela não for tão boa assim,


precisaremos de uma maior capacidade
de abstração

Vamos tentar?
Classes e Objetos
 Conhece a “dança do créu”?

Conseguirmos extrair entidades,


atributos e métodos desta
“especificação”?
Classes e Objetos

Disposição

5 velocidades
Habilidade
Classes e Objetos

São características de
Disposição
quem?
Habilidade
5 velocidades Quais entidades podemos
extrair?
Classes e Objetos

São características de
Disposição quem?
Habilidade
5 velocidades Quais entidades podemos
extrair?

Créu? Dança? Dançarino?


Classes e Objetos
Dançarino Créu
Atributos Atributos
▪Disposição ▪velocidade
▪Habilidade
Classes e Objetos
Dançarino Créu
Atributos Atributos
▪Disposição ▪velocidade
▪Habilidade

Métodos? Métodos?
Classes e Objetos
Dançarino Créu
Atributos Atributos
▪Disposição ▪velocidade
▪Habilidade

Métodos? Métodos?
Dancar() VerificaVelocidade()
SubirNivel() ExecutaDanca()
Classes e Objetos
Dançarino Créu
Atributos Faltou algo?
Atributos
▪Disposição Use a criatividade e
▪velocidade
▪Habilidade abstraia

Métodos? Métodos?
Dancar() VerificaVelocidade()
SubirNivel() ExecutaDanca()
Classes e Objetos
Dançarino Créu Faltou algo?
Atributos Atributos Use a criatividade e
▪Disposição ▪velocidade abstraia
▪Habilidade

Métodos? Métodos?
Dancar() VerificaVelocidade()
SubirNivel() ExecutaDanca()

Fácil não é?
Pilares da POO
Encapsulamento,
construtores e
métodos de acesso
Encapsulamento
 Os objetos podem ter acesso às informações internas das
classes?

 Objeto de uma classe podem acessar informações


particulares de outra classe?

 Uma classe pode acessar e modificar atributos de outra


classe?
Encapsulamento
Técnica que faz com que detalhes internos do
funcionamento dos métodos de uma classe permaneçam
ocultos para os objetos.

Forma de “proteção” de atributos e métodos de uma classe,


para que não sejam visíveis nem manipuláveis por outras
classes.
Encapsulamento
Técnica que faz com que detalhes internos do
funcionamento dos métodos de uma classe permaneçam
ocultos para os objetos.

Forma de “proteção” de atributos e métodos de uma classe,


para que não sejam visíveis nem manipuláveis por outras
classes.

É A PROTEÇÃO DOS DADOS!!!


Encapsulamento
Encapsulamento
 Objetos são estruturas que encapsulam dados.

 Precisamos definir o nível de visibilidade e acesso de cada


elemento da classe
 Private: visível apenas para a própria classe.
 Protected: visível para todas as classes do mesmo pacote e
classes derivadas.
 Public: visível para todas as classes.
Métodos de acesso
 Métodos GET e SET

 Servem para acessar os dados encapsulados.

 Quanto quisermos atribuir ou visualizar o valor de uma


variável de instancia, utilizaremos estes dois métodos.
 GET– obtém o valor de determinada variável
 SET – atribui valor a determinada variável
 IMPORTANTE: Nenhuma outra operação dever ser
realizada nesses métodos. Apenas atribuição e retorno
Métodos GET e SET
Construtor
 Método responsável por instanciar um objeto, ou seja,
criá-lo em memória com as configurações padrão.

 Possuem o mesmo
nome da classe e não
possuem retorno

 Uma classe pode ter


mais de um
construtor, contanto
que os parâmetros
sejam diferentes
(sobrecarga)
Criando uma classe
 Definir um nome que deixe claro o que aquela classe
representa

 Definir e criar os atributos

 Definir e criar os construtores

 Definir e criar os métodos

 NÃO ESQUECER dos métodos GET e SET


Criando uma Classe
Criando uma Classe

Utilizamos o identificador
this para referenciar o
próprio objeto e manipular
os dados da classe.
Instanciando um objeto
 Para instanciar um objeto utilizamos o operador new

 É criada uma instância desta classe, carregando todas as


informações (atributos e métodos) definidos nela.

 Cada objeto contém seu próprio conjunto de atributos,


sendo assim podemos criar vários objetos (instâncias) da
mesma classe de forma independente. As alterações
feitas em um objeto não influenciarão em outro objeto
da mesma classe
Exemplo
 Criando uma classe e instanciando um objeto
Exemplo
 Instanciando dois objetos da mesma classe
Exemplo
 Operador new
Exemplo
 Criando e chamando um método

- Chama o método volume para a


caixa 1

- Chama o método volume para a


caixa 2
Exemplo
 Um método pertencente à classe pode acessar seus
atributos diretamente
 A melhor forma de
obter um dado de
determinada classe é
criando um método de
retorne este dado e não
que simplesmente o
imprima como o
exemplo anterior.

Armazena o dado retornado


Exemplo
 Armazenando o retorno do método em uma variável.

 O tipo da variável e o tipo de retorno do método devem


ser compatíveis.
Exemplo
 Utilizando o método que retorna o volume
Objetos e Referência
 Ao instanciar um objeto, criamos uma referência na
memória para este objeto, ou seja, ao fazer qualquer
alteração neste objeto em uma parte específica do código,
ele será alterado em todo o programa.

 Diferente dos tipos primitivos não é possível fazer


atribuição direta de valores entre objetos (igualar um
objeto a outro)
Objetos e Referência

Está correto?
Objetos e Referência
INCORRETO!
O programa tentará alterar a
referência do objeto aluno1 na
Está correto? memória para a mesma referência
do objeto aluno2. Basicamente
teremos duas referências para uma
mesma entidade.
Objetos e Referência

Está correto?
Objetos e Referência

Está correto?

ENCAPSULAMENTO!!
Funciona se os atributos
forem públicos, porém
fere os princípios do
encapsulamento.
Objetos e Referência
Está correto?
Objetos e Referência
CORRETO!!
Utilizando os métodos Está correto?
get e set seu código fica
TOP e de acordo com os
princípios da OO.
Composição
 Uma classe pode ter objetos de outra classe com
atributos

 Dizemos que esta classe é composta por objetos de


outra.

 Ou seja, atributos não precisam ser apenas de tipos


primitivos
Composição

Um relógio é
composto por data e
hora
Composição

Se Banco deixa de
existir, os outros
objetos também
serão excluídos.
Agregação
 Quando uma classe utiliza outra em suas operações

 Um objeto da classe “todo” somente existe se os


objetos das classes “parte” também existirem.
Agregação

Venda só pode existir


se os demais objetos
também existirem
Agregação

Uma turma é
composta por uma
coleção (vetor) de
Alunos
Composição X Agregação

Uma turma é
composta por uma
coleção (vetor) de
Alunos, porém aluno
pode existir mesmo
que não exista turma
Composição X Agregação

Uma turma é
composta por uma
coleção (vetor) de
Alunos, porém aluno
pode existir mesmo
que não exista turma

Você também pode gostar