Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

34
Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace

Transcript of Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

Page 1: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

Classes e objetosArrays e Sobrecarga

P. O. O.

Prof. Grace

Page 2: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

2

Exercício (para entregar)

1. Elabore o diagrama de classes para a

classe ContaCorrente;

2. Implemente a classe ContaCorrente– O valor inicial do saldo deve ser sempre maior

ou igual a 0;

– Não esqueça de validar os valores de saque e

depósito (não devem ser menores que zero).

Page 3: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

3

Classe ContaCorrente

Atributos (variáveis de instância)– Número da conta

– Titular

– Saldo

Métodos (operações/ tarefas)– Construtor: inicializa titular, numero da conta e saldo (sempre

maior ou igual a zero);

– Depósito (atualizar saldo acrescido da quantia depositada);

– Saque (atualizar saldo decrescido da quantia sacada);

– Exibir dados da conta

Page 4: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

4

UML

Modelagem mínima solicitada para ContaCorrente

Decisão de projeto

Page 5: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

5

Implementação

Não apresenta tipo de retorno

Usa método set

Não possui método set

Não possui método set

Page 6: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

6

Saque e deposito

Page 7: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

7

verDados( ) e setTitular( )

Page 8: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

8

Gets

Page 9: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

9

O são Arrays?

Arrays ou vetores são objetos que contêm uma coleção de elementos do mesmo tipo

Cada elemento pode ser acessado ou referenciado individualmente por um índice numérico

Esse valor inteiro representa a posição do elemento dentro do vetor

Elementos podem ser de tipo primitivo, objetos ou outros arrays

Page 10: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

10

Exemplo: Array de 12 elementos

Page 11: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

11

Arrays

Índice:– Número da posição entre colchetes.– Deve ser inteiro positivo ou expressão de inteiro.– Primeiro elemento tem o índice zero:

a = 5;b = 6;c[ a + b ] += 2;

Adiciona 2 ao elemento c[ 11 ].

Page 12: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

12

Cuidado com o tipo do índice

Utilizar um valor de tipo long como um índice

de array resulta em um erro de compilação.

Um índice deve ser um valor int ou um valor

de um tipo que possa ser convertido para int

— byte, short ou char, mas não long.

Page 13: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

13

Declarando e criando arrays

São criados dinamicamente com a palavra-chave new

int c[] = new int[ 12 ];

Equivalente a:

int c[]; // declaraçãoc = new int[ 12 ]; // criação

Também podemos criar arrays de objetos:

String b[] = new String[ 100 ];

Page 14: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

14

Erro comum de programação

Especificar o número de elementos entre os colchetes da declaração Ex. int c[ 12 ];// Erro

Múltiplas variáveis em única declaração:Ex.:

int[] a, b, c; // Um vetor e dois inteiros?

// Ou 3 vetores?

int a[], b, c; // Um vetor e dois inteiros

Page 15: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

15

Exemplo: Criando um vetor

Page 16: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

16

Definindo constantes

Também são chamadas

– constantes identificadas

– variáveis de leitura (read-only).

Tornam programas mais legíveis

– Ex.: constante TAM indica tamanho do vetor;

Page 17: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

17

Uso de Constante eInicialização com valores calculados

Page 18: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

18

Cuidados com constantes

Atribuir um valor a uma constante depois de

a variável ter sido inicializada é um erro de

compilação.

Tentar utilizar uma constante antes de ela

ser inicializada é um erro de compilação

Page 19: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

19

Inicializando array com uma lista

Utiliza a lista inicializadora:– Itens entre chaves ({ }).– Itens em uma lista separada por vírgulas.

int n[] = { 10, 20, 30, 40, 50 }– Cria um array de cinco elementos.– Indexa valores de 0, 1, 2, 3, 4.

Não precisa da palavra-chave new.

Page 20: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

20

Exemplo: Dias do mês

Page 21: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

21

Criando a classe Data

Page 22: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

22

Criando a classe Data (cont.)

Page 23: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

23

Teste da Classe Data

Page 24: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

24

Quantos construtores uma classe pode ter?

Nenhum (construtor padrão: não recomendável)

Apenas 1 construtor

Vários construtores!!!

Sobrecarga

Page 25: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

25

Sobrecarga

O que é?– Recurso que permite que vários métodos, com

mesmo nome sejam definidos

– Obrigatório diferentes parâmetros: quantidade,

tipos e ordem dos argumentos

– Usada para definir vários construtores de acordo

com a necessidade

Page 26: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

26

Construtores sobrecarregados - Classe Data

// construtor existentepublic Data (int d, int m, int a){

setData(d, m, a);}

// construtor com mês e anopublic Data (int m, int a){

setData(1, m, a);}

// construtor com apenas anopublic Data (int a){

setData(1, 1, a);}

Page 27: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

27

Incluir métodos get

(...) // método público – obtém diapublic int getDia (){

return dia;}// método público – obtém mêspublic int getMes (){

return mes;}// método público – obtém anopublic int getAno (){

return ano;}

(...)

Page 28: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

28

Teste Classe Data

public class TesteData { public static void main (String args[]){

Data data1, data2, data3;data1 = new Data(27, 04, 2009);data2 = new Data(2008);data3 = new Data(6, 2012);

System.out.println(“ Hoje é “ + data1.toString() +“ ingressei no segundo semestre de “ + data2.getAno() +“ e me formarei em “ + data3.getMes()

+”/”+data3.getAno());}

}

Page 29: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

29

Atividade 1: Conta corrente

Altere a classe conta corrente considerando um novo

atributo: Limite

Considere este atributo no construtor da classe;

Durante a operação de saque atualize saldo

considerando que:– Só é permitido sacar se a quantia estiver dentro do saldo

mais limite do cliente;

– Caso a quantia não esteja coberta pelo limite, informe que

não foi possível realizar o saque por falta de recursos;

Page 30: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

30

Atividade 1: Conta corrente

Sobrecarga:– Codifique um segundo construtor que receba

número da conta, titular e saldo. Neste caso, o

Limite padrão é de R$100,00.

– Codifique um terceiro construtor que receba

apenas o número da conta e titular. Neste caso,

saldo e limite devem ser inicializados com 0.

Page 31: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

31

Atividade 2: Caixa Eletrônico

Escreva um programa em Java que utilize a classe conta

corrente para simular um caixa eletrônico.

A aplicação deve solicitar: número, titular, saldo e limite da

conta corrente para instanciar o objeto (abertura da conta).

Em seguida apresente um menu com as opções de Saque,

Deposito, Saldo e Sair.

Após a realização da operação selecionada, volte a exibir as

opções do menu até que seja selecionada a saída da

aplicação.

Page 32: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

32

Exemplo (1ª parte do programa)

Sugestão: reescreva o método exibeDados( ) de modo a apresentar apenas numero da conta e titular;

Escreva um novo método verSaldo( ) que apresenta saldo e limite.

Page 33: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

33

Exemplo (caixa eletrônico)

Page 34: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace.

34

Atividade 3

Altere a classe Data incluindo o método

bissexto( ) que informa se o ano é bissexto

ou não (booleano);

Utilize este método para validar a quantidade

de dias de fevereiro;

Elabore o diagrama UML desta classe;