Upload
internet
View
105
Download
2
Embed Size (px)
Citation preview
Classes e objetosArrays 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).
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
4
UML
Modelagem mínima solicitada para ContaCorrente
Decisão de projeto
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
6
Saque e deposito
7
verDados( ) e setTitular( )
8
Gets
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
10
Exemplo: Array de 12 elementos
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 ].
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.
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 ];
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
15
Exemplo: Criando um vetor
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;
17
Uso de Constante eInicialização com valores calculados
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
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.
20
Exemplo: Dias do mês
21
Criando a classe Data
22
Criando a classe Data (cont.)
23
Teste da Classe Data
24
Quantos construtores uma classe pode ter?
Nenhum (construtor padrão: não recomendável)
Apenas 1 construtor
Vários construtores!!!
Sobrecarga
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
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);}
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;}
(...)
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());}
}
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;
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.
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.
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.
33
Exemplo (caixa eletrônico)
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;