![Page 1: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/1.jpg)
Classes e objetosArrays e Sobrecarga
P. O. O.
Prof. Grace
![Page 2: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/6.jpg)
6
Saque e deposito
![Page 7: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/7.jpg)
7
verDados( ) e setTitular( )
![Page 8: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/8.jpg)
8
Gets
![Page 9: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/10.jpg)
10
Exemplo: Array de 12 elementos
![Page 11: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/15.jpg)
15
Exemplo: Criando um vetor
![Page 16: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/17.jpg)
17
Uso de Constante eInicialização com valores calculados
![Page 18: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/20.jpg)
20
Exemplo: Dias do mês
![Page 21: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/21.jpg)
21
Criando a classe Data
![Page 22: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/22.jpg)
22
Criando a classe Data (cont.)
![Page 23: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/23.jpg)
23
Teste da Classe Data
![Page 24: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/33.jpg)
33
Exemplo (caixa eletrônico)
![Page 34: Classes e objetos Arrays e Sobrecarga P. O. O. Prof. Grace](https://reader036.vdocuments.net/reader036/viewer/2022081602/552fc11b497959413d8c9ff3/html5/thumbnails/34.jpg)
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;