Ex07 - Classes em Java III
Ex07 - Classes em Java III
Lembre-se que antes de implementar devemos modelar, e pensar nos testes que sero realizados. Ao
modelar devemos pensar no objeto da classe, quais sero suas caractersticas e interao com outras classes.
Em todos os exerccios implemente a main com os testes.
Exerccio 5
Escreva uma classe que contenha mtodos estticos para calcular as mdias e somas de dois, trs,
quatro e cinco valores, considerando que os argumentos e retorno dos mtodos podem ser dos tipos
int e double. Um total de 16 mtodos devero ser criados.
Exerccio 6
Escreva uma classe SerieLimitada, que encapsula um valor inteiro seqencial como os usados em notas e sries
de gravuras. Essa classe deve permitir que um programa crie um nmero limitado de instncias dela, cada
uma numerada com um valor seqencial. O nmero total de instncias controlado pelo campo
mximoDeInstncias, declarado como static final, e o de instncias j criadas controlado pelo campo contador
declarado como static. Escreva tambm uma aplicao que crie algumas instncias da classe para demonstrar
seu funcionamento.
Exerccio 7
Crie um enumerador que represente as moedas em uso atualmente no Brasil. Associe a smbolos
representando as moedas os seus valores.
Exerccio 8
Crie um enumerador que represente os dias da semana. Associe aos smbolos dos dias da semana valores
booleanos que indicam se o dia fim-de-semana ou no.
Exerccio 9
Crie um enumerador que represente os meses em um ano. Associe aos smbolos dos meses valores inteiros
que indicam quantos dias temos no ms se o ano for bissexto e no bissexto.
Exerccio 10
Crie um enumerador que represente diferentes tipos de tortas em uma lanchonete. Associe aos smbolos dos
tipos de tortas valores inteiros correspondentes s calorias da torta e valores de ponto flutuante
correspondentes aos preos das tortas.
Exerccio 11
Crie um enumerador que represente os pases da Amrica do Sul. Associe aos smbolos dos pases valores
para representar sua rea, populao e capital.
Exerccio 14
Identifique e explique o(s) erro(s) nas classes abaixo.
public class Ponto2D_V2 {
private double x, y;
public Ponto2D_V2(double _x, double _y) {
x = _x; y = _y;
}
}
public class Ponto3D_V2 extends Ponto2D_V2 {
private double z;
public Ponto3D_V2(double _x, double _y, double _z) {
x = _x;
y = _y;
z = _z;
}
}
Sobreposio de Mtodos
Exerccio 15
Considere o seguinte modelo de classes:
Exerccio 1:
Sobreposio de Mtodos
Exerccio 2:
Exerccio 17
Considere o seguinte modelo de classes:
ClienteFidelizacaoEspecial
11
Acrescentar a classe ClienteFidelizacao o metodo adicionaBonus que recebe o valor da compra realizada pelo
cliente e soma ao bo nus do cliente 5% do valor desta compra.
Suponha que agora, no sistema, existe mais um tipo de Cliente, o ClienteFidelizacaoEspecial, que apresenta as
mesmas caracteri sticas do ClienteFidelizacao porem, ganha bo nus de 10% em cima das compras realizadas.
Exerccio 18
Implemente uma classe Conta que contenha os atributos nome do cliente, numero da conta, saldo e limite.
Estes valores deverao ser informados no construtor, sendo que o limite nao podera ser maior que o valor do
salario mensal do cliente. Implemente tambem um metodo deposito e outro metodo saque. O metodo saque
retorna um booleano indicando se o saque po de ser efetuado ou nao.
Classes Abstratas
Implemente uma classe ContaEspecial que funciona da mesma forma que a classe Conta, mas que aceita um
limite de ate 3 vezes o valor do salario do cliente.
14
Exerccio 20
Por que campos em interfaces devem ser inicializados em sua declaracao? Explique.
Exerccio 21
Explique com suas palavras por que uma classe abstrata no pode ser instanciada.
Exerccio 22
Explique com suas palavras por que uma interface no pode ter mtodos estticos.
Exerccio 23
Explique, com suas palavras, por que interfaces no podem ter construtores.
Exerccio 24
Explique com suas palavras por que no podemos ter construtores declarados com a palavra- chave abstract.
Exerccio 25
Identifique e explique o(s) erro(s) na classe abaixo.
public class Produto {
private String identificao; private double custoDeFabricao;
Produto(String i, double c) {
identificao = i;
custoDeFabricao = c;
}
abstract public String toString();
abstract public void novoCusto(double nc);
}
Exerccio 26
Identifique e explique o(s) erro(s) na classe abaixo.
public interface Resetavel {
public void reseta();
}
public interface Modificavel {
public void reseta(int origem);
public void modifica(int tamanho);
}
public class Contador implements Resetavel, Modificavel {
int valor;
public void reseta() {
valor = 1;
}
public void modifica(int tam) {
valor = tam;
}
}
Exerccio 27
Considere a seguinte Interface Forma Geometrica
interface FormaGeometrica {
public double area( );
public double comprimento( );
}
Construir as classe Quadrado e Circulo que implementam a interface FormaGeometrica;
Implementar programa de testes que declara duas variaveis do tipo FormaGeometrica e instancia dois objetos
um do tipo Circulo e outro do tipo Quadrado. Exibir a area e o comprimento dos objetos instanciados.
Exerccio 2:
A classe InfoCliente do modelo de clientes
Exerccio
28
abaixo
poderia se tornar uma interface?
A classe InfoCliente do modelo de clientes abaixo poderia se tornar uma interface?
Exerccios
Exerccio
3:
Programao Orientada a Objeto - Mrcio Bueno
Exerccio 29
Considere o seguinte modelo:
18
Implementar uma aplicacao que declara uma variavel polimorfica do tipo OperacaoMatematica.
A partir de dados fornecidos pelo usuario, a aplicacao deve realizar uma operacao matematica e imprimir o seu
resultado.
Oferecer para o usuario um menu para a escolha entre as operacoes matematicas disponi veis.
Programao Orientada a Objeto - Mrcio Bueno
19
OBS 1: Nao defina a e b como atributos.
OBS 2: Implemente um construtor padrao para cada uma das classes.
Fontes:
Material fornecido pelos professores Pedro Moura, Edirlei Lima, Geiza Hamazaki.
Fontes da Internet:
Mrcio Bueno: http://marciobueno.com/ensino/programacao-orientada-objetos
Rafael Santos: http://www.lac.inpe.br/~rafael.santos/Docs/IntroPOOJava/POO-EXER.pdf