38
Classes e objetos P. O. O. Prof. Grace

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;

Embed Size (px)

Citation preview

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

38

Saída jGrasp