Buscar

329512055-Ex07-Classes-Em-Java-III

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

1 
Lista de Exercícios 07 – Classes e Interfaces 
 
Lembre-se que antes de implementar devemos modelar, e pensar nos testes que serão realizados. Ao 
modelar devemos pensar no objeto da classe, quais serão suas características e interação com outras classes. 
Em todos os exercícios implemente a main com os testes. 
 
Parte I – Métodos Estáticos e Enumeradores 
 
Exercício 1 
Escreva a classe ConversaoDeUnidadesDeArea com métodos estáticos para conversão das unidades de área 
segundo a lista abaixo. 
1 metro quadrado = 10.76 pés quadrados 
1 pé quadrado = 929 centímetros quadrados 
1 milha quadrada = 640 acres 
1 acre = 43.560 pés quadrados 
 
A área de um campo de futebol é de 8.250 metros quadrados. Usando a classe ConversaoDeUnidadesDeArea, 
escreva um programa em Java que mostre qual é a área de um campo de futebol em pés quadrados, acres e 
centiḿetros quadrados. Escreva métodos adicionais para a classe ConversaoDeUnidadesDeArea, se necessário. 
 
Exercício 2 
Escreva a classe ConversaoDeUnidadesDeVolume com métodos estáticos para conversão das unidades 
de volume segundo a lista abaixo. 
1 litro = 1000 centímetros cúbicos 
1 metro cúbico = 1000 litros 
1 metro cúbico = 35.32 pés cúbicos 
1 galão americano = 231 polegadas cúbicas 
1 galão americano = 3.785 litros 
 
O volume de uma piscina olímpica é de 1.890 metros cúbicos. Usando a classe 
ConversaoDeUnidadesDeVolume, escreva um programa em Java que mostre qual é o volume de uma piscina 
olímpica em litros, pés cúbicos e centímetros cúbicos. Escreva métodos adicionais para a classe 
ConversaoDeUnidadesDeVolume, se necessário. 
 
Exercício 3 
Escreva a classe ConversaoDeUnidadesDeTempo com métodos estáticos para conversão 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 mês = 30 dias 
1 ano = 365.25 dias 
 
O tempo de gestacã̧o de um elefante indiano é de aproximadamente 624 dias. Usando a classe 
ConversaoDeUnidadesDeTempo, escreva um programa em Java que mostre qual é o tempo de gestacã̧o de um 
elefante indiano em dias, horas, minutos e segundos. Escreva métodos adicionais para a classe 
ConversaoDeUnidadesDeTempo, se necessário. 
 
Exercício 4 
Escreva uma classe que contenha métodos estáticos para retornar o maior e o menor de dois, três, 
quatro e cinco valores (com um total de oito métodos), considerando que os argumentos e retorno dos 
métodos podem ser dos tipos int e double. Dica: Os métodos podem ser chamados em cascata: para 
calcular o maior de três valores a, b e c, pode-se calcular o maior valor de a e b, e comparar esse 
resultado com c. 
 
 2 
Exercício 5 
Escreva uma classe que contenha métodos estáticos para calcular as médias e somas de dois, três, 
quatro e cinco valores, considerando que os argumentos e retorno dos métodos podem ser dos tipos 
int e double. Um total de 16 métodos deverão ser criados. 
 
Exercício 6 
Escreva uma classe SerieLimitada, que encapsula um valor inteiro seqüencial como os usados em notas e séries 
de gravuras. Essa classe deve permitir que um programa crie um número limitado de instâncias dela, cada 
uma numerada com um valor seqüencial. O número total de instâncias é controlado pelo campo 
máximoDeInstâncias, declarado como static final, e o de instâncias já criadas é controlado pelo campo contador 
declarado como static. Escreva também uma aplicação que crie algumas instâncias da classe para demonstrar 
seu funcionamento. 
 
Exercício 7 
Crie um enumerador que represente as moedas em uso atualmente no Brasil. Associe a símbolos 
representando as moedas os seus valores. 
Exercício 8 
Crie um enumerador que represente os dias da semana. Associe aos símbolos dos dias da semana valores 
booleanos que indicam se o dia é fim-de-semana ou não. 
Exercício 9 
Crie um enumerador que represente os meses em um ano. Associe aos símbolos dos meses valores inteiros 
que indicam quantos dias temos no mês se o ano for bissexto e não bissexto. 
Exercício 10 
Crie um enumerador que represente diferentes tipos de tortas em uma lanchonete. Associe aos símbolos dos 
tipos de tortas valores inteiros correspondentes às calorias da torta e valores de ponto flutuante 
correspondentes aos preços das tortas. 
Exercício 11 
Crie um enumerador que represente os países da América do Sul. Associe aos símbolos dos países valores 
para representar sua área, população e capital. 
 
Parte II – Herança e Sobrecarga 
 
Exercício 12 
É possível evitar completamente a necessidade de sobreposição de métodos criando métodos em classes 
descendentes que tenham assinaturas diferentes. Por exemplo, a classe Pessoa poderia ter o método 
imprimePessoa para imprimir seus atributos, e a classe Aluno que estende a classe Pessoa poderia ter o 
método imprimeAluno para imprimir os atributos de Aluno. Que vantagens e desvantagens essa abordagem 
teria sobre a sobreposição de métodos? 
 
Exercício 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(); 
} 
} 
 
 
 3 
Exercício 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; 
} 
} 
 
Exercício 15 
Considere o seguinte modelo de classes: 
 
 
A classe Funcionario é abstrata. 
As classes Gerente e Programador são concretas. 
 
Uma chamada ao aumentaSalario( ) do Funcionario aumenta seu salário em 5%. 
 
Uma chamada ao aumentaSalario( ) do Gerente aumenta seu salário em 10%. 
 
Uma chamada ao aumentaSalario( ) do Programador aumenta seu salário em 20%. 
 
 
Exercício 16 
Implemente uma aplicacã̧o que declara três variáveis do tipo Funcionario e cria três 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 usuário com as seguintes opcõ̧es: 
 Imprimir dados – O usuário deverá informar se ele deseja imprimir os dados do Gerente, do 
Programador ou do AnalistaDeSistemas. 
 Aumentar salário – O usuário deverá informar se ele deseja aumentar o salário do Gerente, do 
Programador ou do AnalistaDeSistemas. 
 
7 
Sobreposição de Métodos 
Exercício 1: 
Programação Orientada a Objeto - Márcio Bueno 
 4 
Exercício 17 
Considere o seguinte modelo de classes: 
 
 
Acrescentar a classe ClienteFidelizacao o método adicionaBonus que recebe o valor da compra realizada pelo 
cliente e soma ao bô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śticas do ClienteFidelizacao porém, ganha bônus de 10% em cima das compras realizadas. 
 
Exercício 18 
Implemente uma classe Conta que contenha os atributos nome do cliente, número da conta, saldo e limite. 
Estes valores deverão ser informados no construtor, sendo que o limite não poderá ser maior que o valor do 
salário mensal do cliente. Implemente também um método depósito e outro método saque. O método saque 
retorna um booleano indicando se o saque pôde ser efetuado ou não. 
 
Implemente uma classe ContaEspecial que funciona da mesma forma que a classe Conta, mas que aceita um 
limite de até 3 vezes o valor do salário do cliente. 
 
Exercício 19 
Implementar, usando classe abstrata, o seguinte modelo de classes. 
 
 
 
 
 
11 
Sobreposição de Métodos 
Exercício 2: 
ClienteFidelizacaoEspecial 
Programação Orientadaa Objeto - Márcio Bueno 14 
Classes Abstratas 
Exercício 4: Implementar, usando classe 
abstrata, o seguinte modelo de classes. 
 5 
Exercício 20 
Por que campos em interfaces devem ser inicializados em sua declaracã̧o? Explique. 
 
Exercício 21 
Explique com suas palavras por que uma classe abstrata não pode ser instanciada. 
 
Exercício 22 
Explique com suas palavras por que uma interface não pode ter métodos estáticos. 
 
Exercício 23 
Explique, com suas palavras, por que interfaces não podem ter construtores. 
 
Exercício 24 
Explique com suas palavras por que não podemos ter construtores declarados com a palavra- chave abstract. 
 
Exercício 25 
Identifique e explique o(s) erro(s) na classe abaixo. 
public class Produto { 
private String identificação; private double custoDeFabricação; 
Produto(String i, double c) { 
 identificação = i; 
 custoDeFabricação = c; 
 } 
abstract public String toString(); 
abstract public void novoCusto(double nc); 
} 
 
Exercício 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; 
} 
} 
 
Exercício 27 
Considere a seguinte Interface Forma Geométrica 
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 variáveis do tipo FormaGeometrica e instancia dois objetos 
um do tipo Circulo e outro do tipo Quadrado. Exibir a área e o comprimento dos objetos instanciados. 
 6 
 
Exercício 28 
A classe InfoCliente do modelo de clientes abaixo poderia se tornar uma interface? 
 
 
Exercício 29 
Considere o seguinte modelo: 
 
 
Implementar uma aplicacã̧o que declara uma variável polimórfica do tipo OperacaoMatematica. 
 
A partir de dados fornecidos pelo usuário, a aplicacã̧o deve realizar uma operacã̧o matemática e imprimir o seu 
resultado. 
Oferecer para o usuário um menu para a escolha entre as operacõ̧es matemáticas disponiv́eis. 
OBS 1: Não defina a e b como atributos. 
OBS 2: Implemente um construtor padrão para cada uma das classes. 
 
 
Fontes: 
Material fornecido pelos professores Pedro Moura, Edirlei Lima, Geiza Hamazaki. 
Fontes da Internet: 
 Márcio Bueno: http://marciobueno.com/ensino/programacao-orientada-objetos 
 Rafael Santos: http://www.lac.inpe.br/~rafael.santos/Docs/IntroPOOJava/POO-EXER.pdf 
 
Programação Orientada a Objeto - Márcio Bueno 18 
Exercícios 
Exercício 2: 
A classe InfoCliente do modelo de clientes 
abaixo poderia se tornar uma interface? 
Programação Orientada a Objeto - Márcio Bueno 19 
Exercícios 
Exercício 3: 
http://marciobueno.com/ensino/programacao-orientada-objetos
http://www.lac.inpe.br/~rafael.santos/Docs/IntroPOOJava/POO-EXER.pdf

Continue navegando