![Page 1: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/1.jpg)
Classes e objetos
P. O. O.
Prof. Grace
![Page 2: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/2.jpg)
2
Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis);
Utiliza conceitos de:– Encapsulamento;– Herança;– Polimorfismo;– Sobrecarga;
Engloba a programação estruturada
Programação Orientada a Objetos
![Page 3: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/3.jpg)
3
Classes e Objetos
Classe
Abstração
Molde
(Projeto)
Objeto
Concreto
Ocorrência real
Instância
(Produto)
X
![Page 4: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/4.jpg)
4
Composição de uma Classe
Características: implementados por meio dos
atributos (variáveis);
Comportamento: implementados por meio de
métodos (operações/ funções);
![Page 5: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/5.jpg)
5
Exemplo: Conta bancária
Classe: Conta bancária Atributos (variáveis de instância)
– Número da conta– Saldo– Titular
Métodos (tarefas)– Depósito( )– Saque( )– Ver Saldo( )
![Page 6: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/6.jpg)
6
Exemplo: Círculo
Classe: Círculo Atributos (variáveis de instância)
– Raio
Métodos (tarefas)– Alterar/ informar raio– Calcular diâmetro– Calcular área– Calcular circunferência– Exibir Dados
![Page 7: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/7.jpg)
7
Definindo uma Classe
public class nome_classe
{
// atributos
// métodos
} Armazenar em um arquivo que tenha o mesmo
nome da classe Extensão do arquivo => .java
![Page 8: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/8.jpg)
8
Exemplo
Chaves
Métodospúblicos
Atributos
![Page 9: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/9.jpg)
9
Métodos
Cabeçalho do método composto por:– Modificador de acesso (public, private)– Tipo de retorno (void, int, double, etc.)– Nome do método– Parênteses (argumentos, se tiver)
Corpo do método deve ser descrito entre chaves “{ }”
![Page 10: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/10.jpg)
10
Exemplo
![Page 11: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/11.jpg)
11
Cuidado!!!
Declarar mais de uma classe public no
mesmo arquivo é um erro de compilação.
Porém, podemos ter vários métodos public
declarados em uma mesma classe
![Page 12: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/12.jpg)
12
Como testar uma classe?
Classe Circulo não tem método main
Execução de programa em Java: programas
(ou aplicativos) com método main
Se tentarmos executar uma classe?
– ERRO!
![Page 13: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/13.jpg)
13
Programas usando classes
new: cria instância de classe (objeto)
– new + nome da classe + parênteses.
Chamando um método:
– Nome de objeto + ponto (.) + nome do método +
parênteses.
![Page 14: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/14.jpg)
14
Programa usando classe Circulo
Instancia objeto c do tipo Circulo
Chama método exibeDados do objeto c
![Page 15: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/15.jpg)
15
Métodos com parâmetros
Informações adicionais são passadas para o método por meio de parâmetros
Neste exemplo, usamos o valor do parâmetro r para alterarmos o atributo raio.
![Page 16: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/16.jpg)
16
Alterando o programa
Chamando método com parâmetro
![Page 17: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/17.jpg)
17
Variáveis de instância xVariáveis locais
Atributos ou variáveis de instância:– Variáveis declaradas na declaração de classe;
– Cada objeto (instância) da classe tem uma instância separada da variável;
– Existe enquanto o objeto existir: antes e depois de chamadas aos métodos;
Variáveis locais: – Declaradas no corpo do método;
– Só podem ser utilizadas nesse método;
– Só existem durante a execução do método;
![Page 18: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/18.jpg)
18
Exemplo: Classe Circulo
Variável de instância: raio;
Cada objeto do tipo Circulo tem seu próprio raio;
Pela prática de encapsulamento de O.O., atributos são privados (somente o próprio objeto pode vê-lo);
Métodos públicos são interfaces para que programas acessem atributos privados dos objetos;
Para alterar ou ler seu valor, criamos métodos públicos: set e get;
![Page 19: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/19.jpg)
19
Relembrando: Encapsulamento
Uma das principais características da P. O. O.;
Envolve dados e funções numa única estrutura
(objeto);
Permite ocultação de informações (visibilidade:
modificadores de acesso);
Comunicação por meio de uma interface pública;– Ex.: Conta bancária; Circulo;
![Page 20: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/20.jpg)
20
Encapsulamento
Comunicação por meio de interfaces: públicas
Atributos encapsulados: privados
![Page 21: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/21.jpg)
21
Visualização de métodos e atributos
Modificadores de acesso– Public: em geral, métodos públicos de interface
com cliente;– Private: métodos ou atributos não acessíveis fora
da classe;
Recomendação: todas as variáveis de instância sejam private
![Page 22: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/22.jpg)
22
Métodos Set e Get
Método set(altera)
Método get(informa)
Variável de instância
![Page 23: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/23.jpg)
23
Boa prática de programação
Listar os atributos de uma classe antes de
declarar métodos da classe: ao ler o código, você
vê os nomes e tipos das variáveis antes de usá-los
nos métodos.
É possível listar os campos da classe em qualquer
lugar na classe (fora dos métodos), mas sua
dispersão tende a resultar em um código de difícil
leitura.
![Page 24: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/24.jpg)
24
Importância do encapsulamento
Porque encapsular e ocultar?- Criamos classes para “clientes” (reuso)
- Capacidade de usar sem conhecer detalhes internos
- Alterações na implementação não afetam cliente
- Garantia de acesso seguro aos dados
Posso ter círculo com raio negativo?
Supondo que não, devemos validar no método set.
![Page 25: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/25.jpg)
25
Alterando o método Set
![Page 26: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/26.jpg)
26
Exercício: Altere a classe Circulo
Atributo (variáveis de instância)– Raio
Métodos (tarefas)– Alterar/ informar raio– Calcular diâmetro– Calcular área– Calcular circunferência– Exibir Dados: informa diâmetro, área e circunferência.
Obs.: Utilize a classe Math– Math.PI– Math.pow( )
![Page 27: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/27.jpg)
27
Exemplo de saída// Alterar exemplo?
![Page 28: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/28.jpg)
28
Inicializando variáveis de instância
Como inicializar atributos de um novo objeto?
– Não inicializa: valor padrão (default)
– Cria objeto (new) depois usa métodos set
– Por meio de construtor!!!
![Page 29: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/29.jpg)
29
Construtor
O que é?– Método especial que cria ou instancia novos
objetos assegurando seu estado consistente;
– Objetivo: Inicializar variáveis de instância;
– Tem o mesmo nome da classe;
Boa prática. Inicialize as variáveis de instância
de uma classe no seu construtor.
![Page 30: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/30.jpg)
30
Construtores Java
O Java requer um construtor para cada classe.
O Java fornecerá um construtor sem argumentos-
padrão, caso nenhum seja fornecido.
Chamados quando a palavra-chave new precede o
nome da classe. Ex.:
Scanner entrada = new Scanner(System.in);
Circulo c = new Circulo( );
![Page 31: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/31.jpg)
31
Classe Circulo com construtor
Não apresenta tipo de retorno
Argumento para inicializar atributo
![Page 32: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/32.jpg)
32
Usando classe com construtor
![Page 33: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/33.jpg)
33
Exercício: Altere a classe Circulo
Atributo (variáveis de instância)– Raio
Métodos (tarefas)– Construtor: inicializa raio– Alterar/ informar raio– Calcular diâmetro– Calcular área– Calcular circunferência– Exibir Dados: informa diâmetro, área e circunferência.
Obs.: Utilize a classe Math– Math.PI– Math.pow( )
![Page 34: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/34.jpg)
34
Exemplo de saída
![Page 35: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/35.jpg)
35
Classe Circulo.java
Inicio da declaração da classe Circulo
Atributos
Métodos
Aloca memória inicializa atributos do obj.
Altera atributo com segurança (encapsulamento)
Acessa valor armazenado no atributo
![Page 36: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/36.jpg)
36
Classe Circulo.java (cont.) devolve o diâmetro
circunferência
Método sem parâmetros e sem valor devolvido
devolve a área Métodos sem parâmetros
fim da declaração da classe
![Page 37: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/37.jpg)
37
Uso da classe declarada
Programa java (possui método main)– Instancia um círculo c de raio 5 e exibe seus dados– Altera o raio de c para 15 e exibe seus dados novamente
![Page 38: Classes e objetos P. O. O. Prof. Grace. 2 Programas realizam suas tarefas usando classes e objetos (módulos reutilizáveis); Utiliza conceitos de: – Encapsulamento;](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc11b497959413d8c9ffd/html5/thumbnails/38.jpg)
38
Saída jGrasp