Você está na página 1de 6

Lista de Exerccios 07 Classes e Interfaces

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.

Parte I Mtodos Estticos e Enumeradores


Exerccio 1
Escreva a classe ConversaoDeUnidadesDeArea com mtodos estticos para converso das unidades de rea
segundo a lista abaixo.
1 metro quadrado = 10.76 ps quadrados
1 p quadrado = 929 centmetros quadrados
1 milha quadrada = 640 acres
1 acre = 43.560 ps quadrados
A area de um campo de futebol e de 8.250 metros quadrados. Usando a classe ConversaoDeUnidadesDeArea,
escreva um programa em Java que mostre qual e a area de um campo de futebol em pes quadrados, acres e
centi metros quadrados. Escreva metodos adicionais para a classe ConversaoDeUnidadesDeArea, se necessario.
Exerccio 2
Escreva a classe ConversaoDeUnidadesDeVolume com mtodos estticos para converso das unidades
de volume segundo a lista abaixo.
1 litro = 1000 centmetros cbicos
1 metro cbico = 1000 litros
1 metro cbico = 35.32 ps cbicos
1 galo americano = 231 polegadas cbicas
1 galo americano = 3.785 litros
O volume de uma piscina olmpica de 1.890 metros cbicos. Usando a classe
ConversaoDeUnidadesDeVolume, escreva um programa em Java que mostre qual o volume de uma piscina
olmpica em litros, ps cbicos e centmetros cbicos. Escreva mtodos adicionais para a classe
ConversaoDeUnidadesDeVolume, se necessrio.
Exerccio 3
Escreva a classe ConversaoDeUnidadesDeTempo com mtodos estticos para converso aproximada
das unidades de velocidade segundo a lista abaixo.
1 minuto = 60 segundos
1 hora = 60 minutos
1 dia = 24 horas
1 semana = 7 dias
1 ms = 30 dias
1 ano = 365.25 dias
O tempo de gestacao de um elefante indiano e de aproximadamente 624 dias. Usando a classe
ConversaoDeUnidadesDeTempo, escreva um programa em Java que mostre qual e o tempo de gestacao de um
elefante indiano em dias, horas, minutos e segundos. Escreva metodos adicionais para a classe
ConversaoDeUnidadesDeTempo, se necessario.
Exerccio 4
Escreva uma classe que contenha mtodos estticos para retornar o maior e o menor de dois, trs,
quatro e cinco valores (com um total de oito mtodos), considerando que os argumentos e retorno dos
mtodos podem ser dos tipos int e double. Dica: Os mtodos podem ser chamados em cascata: para
calcular o maior de trs valores a, b e c, pode-se calcular o maior valor de a e b, e comparar esse
resultado com c.

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.

Parte II Herana e Sobrecarga


Exerccio 12
possvel evitar completamente a necessidade de sobreposio de mtodos criando mtodos em classes
descendentes que tenham assinaturas diferentes. Por exemplo, a classe Pessoa poderia ter o mtodo
imprimePessoa para imprimir seus atributos, e a classe Aluno que estende a classe Pessoa poderia ter o
mtodo imprimeAluno para imprimir os atributos de Aluno. Que vantagens e desvantagens essa abordagem
teria sobre a sobreposio de mtodos?
Exerccio 13
Identifique e explique o(s) erro(s) na classe abaixo.
public class DataHora extends Data,Hora {
public DataHora(byte d, byte m, short a, byte hor, byte min, byte seg) {
super(d, m, a); super(hor, min, seg);
}
public String toString() {
return super.toString() + " " + super.toString();
}
}

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:

Programao Orientada a Objeto - Mrcio Bueno

A classe Funcionario abstrata.


As classes Gerente e Programador so concretas.
Uma chamada ao aumentaSalario( ) do Funcionario aumenta seu salrio em 5%.
Uma chamada ao aumentaSalario( ) do Gerente aumenta seu salrio em 10%.
Uma chamada ao aumentaSalario( ) do Programador aumenta seu salrio em 20%.
Exerccio 16
Implemente uma aplicacao que declara tres variaveis do tipo Funcionario e cria tres objetos um do tipo
Gerente, outro do tipo Programador e o terceiro do tipo AnalistaDeSistemas. Em seguida, o programa deve
oferecer um menu para o usuario com as seguintes opcoes:
Imprimir dados O usuario devera informar se ele deseja imprimir os dados do Gerente, do
Programador ou do AnalistaDeSistemas.
Aumentar salario O usuario devera informar se ele deseja aumentar o salario do Gerente, do
Programador ou do AnalistaDeSistemas.

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

Exerccio 4: Implementar, usando classe


abstrata, o seguinte modelo de classes.
Exerccio 19

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.

Implementar, usando classe abstrata, o seguinte modelo de classes.

Programao Orientada a Objeto - Mrcio Bueno

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