• Nenhum resultado encontrado

4ª LISTA DE EXERCÍCIOS TÓPICO: HERANÇA DE CLASSES EM JAVA

N/A
N/A
Protected

Academic year: 2021

Share "4ª LISTA DE EXERCÍCIOS TÓPICO: HERANÇA DE CLASSES EM JAVA"

Copied!
4
0
0

Texto

(1)

4ª LISTA DE EXERCÍCIOS

TÓPICO: HERANÇA DE CLASSES EM JAVA

Observações:

1. Todas classes devem utilizar os atributos private 2. Todas as classes devem possuir os métodos get/set

3. Utilize a classe Scanner para entrada de dados em todos os exercícios

1. Herança sobre “Ingressos”

Crie uma classe chamada Ingresso que possui um valor em reais e um método imprimeValor().

a) crie uma classe VIP, que herda Ingresso e possui um valor adicional. Crie um método que retorne o valor do ingresso VIP (com o adicional incluído).

b) crie uma classe Normal, que herda Ingresso e possui um método que imprime: "Ingresso Normal".

c) crie uma classe CamaroteInferior (que possui a localização do ingresso e métodos para acessar e imprimir esta localização) e uma classe CamaroteSuperior, que é mais cara (possui valor adicional). Esta última possui um método para retornar o valor do ingresso.

d) Ambas as classes herdam a classe VIP.

Numa classe Principal, crie um ingresso. Peça para o usuário digitar 1 para normal e 2 para VIP. Conforme a escolha do usuário, diga se o ingresso é do tipo normal ou VIP. Se for VIP, peça para ele digitar 1 para camarote superior e 2 para camarote inferior.

Conforme a escolha do usuário, diga se que o VIP é camarote superior ou inferior. Imprima o valor do ingresso.

2. Herança sobre “Imóveis”

Crie a classe Imovel, que possui um endereço e um preço.

a) crie uma classe ImovelNovo, que herda de Imovel e possui um atributo que corresponde a um adicional no preço. Crie métodos de acesso e impressão deste valor adicional.

b) crie uma classe ImovelVelho, que herda de Imovel e possui um atributo que corresponde ao desconto no preço. Crie métodos de acesso e impressão para este desconto.

Numa classe de teste, crie um imóvel. Peça para o usuário digitar 1 para novo e 2 para velho. Conforme a definição do usuário, imprima o valor final do imóvel.

3. Herança entre “Animais”

Um animal contém um nome, comprimento, número de patas (o padrão é 4), uma cor, ambiente e uma velocidade (em m/s).

 Um peixe é um animal, tem 0 patas, o seu ambiente é o mar (padrão), cor cinzenta (padrão). Além disso, o peixe tem como característica: barbatanas e cauda;

 Um mamífero é um animal, o seu ambiente é a terra (padrão);

 Um urso é um mamífero, cor castanho e o seu alimento preferido é o mel.

 Codifique as classes animal, peixe e mamífero.

SISTEMAS DE INFORMAÇÃO

PROGRAMAÇÃO ORIENTADA A OBJETOS COM JAVA PROF: GIULIANO PRADO DE MORAIS GIGLIO

(2)

Para a classe Animal, codifique os métodos:

Animal (String nome, String cor, String ambiente, int comprimento, float velocidade, int patas);

void alteraNome(String nome);

void alteraComprimento(int comprimento);

void alteraPatas(int patas);

void alteraCor(String cor);

void alteraAmbiente(String ambiente);

void alteraVelocidade(float velocidade);

E os seus atributos são:

String nome( );

int comprimento( );

int patas( );

String cor( );

String ambiente( );

float velocidade( );

void dados( ); // imprime os dados do animal Para a classe Peixe, codifique:

Peixe(String nome, String caracteristica, int comprimento, float velocidade);

void alteraCaracteristica(String caracteristica);

String caracteristica( ); // retorna a características de um determinado peixe;

void dados( ); // imprimir na tela todos os dados Para a classe Mamifero, codifique:

Mamifero (String nome, String cor, String alimento,int comprimento, float

velocidade, int patas);

void alteraAlimento(String alimento);

String alimento( ); // retorna o alimento de um determindado uso

void dados( ); // imprimir na tela todos os dados

Por último, crie uma classe de teste (por exemplo TesteAnimais.java) de forma a ter um jardim zoológico com os seguintes animais: camelo, tubarão, urso-do-canadá.

Exemplo de execução:

--- Animal: Camelo Comprimento: 150 cm Patas: 4

Cor: Amarelo Ambiente: Terra Velocidade: 2.0 m/s --- Animal: Tubarão Comprimento: 300 cm Patas: 0

Cor: Cinzento Ambiente: Mar Velocidade: 1.5 m/s

Característica: Barbatanas e cauda.

--- Animal: Urso-do-canadá Comprimento: 180 cm

(3)

Patas: 4 Cor: Vermelho

Ambiente: Terra Velocidade: 0.5 m/s Alimento: Mel

4. Herança entre “Produtos”

4.1 Faça uma classe Produto que contenha o número serial, o volume (inteiro) e também uma string que inicialmente possui o valor "não testado". O numero serial será passado no construtor.

Deverá possuir um método booleano testaUnidade que somente poderá ser executado uma vez. O produto terá 90% de chance de estar OK. Caso esteja OK, a string passará de "não testado" para

"aprovado". Caso não esteja OK, passará para "reprovado". Retorna true se foi aprovado e false se não foi. Deverá também conter um método setVolume e um método toString que retornará em uma string o numero serial, o volume e o resultado do teste.

(obs: java.lang.Math.random() gera um numero de 0.0 a 1.0. Utilize-o para sortear a probabilidade de chance do teste da unidade e assim processa-lo como explicado acima).

4.2 Faça uma classe Radio que irá herdar de Produto. Deverá ter um método Escutar que retornará uma String contendo a estação e a banda (ex.: 94.9 FM) da radio. Deverá conter um método trocaEstacao e um método trocaBanda. Deverá alterar o método toString de forma a acrescentar a estação e a banda.

4.3 Faça uma classe TV que irá herdar de Produto. Deverá ter um método Assistir que retornará uma String contendo o canal que esta assistindo. Deverá conter um método trocaCanal. Deverá alterar o toString de forma a acrescentar o canal.

Numa classe de teste, crie um objeto Produto e peça ao usuário, antes de criação, o número serial do mesmo. Passe esse valor em seu construtor na instanciação. Teste a sua unidade.

Crie um objeto Radio e permita ao usuário escuta-lo, mostrando a identificação da estação e possibilite o usuário alterar o volume, pedindo-o qual o volume desejado. O usuário poderá trocar a estação e a banda somente uma vez, logo, permita-o realizar isso após o ajuste do volume.

Faça a mesma coisa com um objeto da classe TV.

5. Herança sobre “Pessoas”

5.1 Cria uma Classe Pessoa, contendo os atributos encapsulados, com seus respectivos seletores (getters) e modificadores (setters), e ainda o construtor padrão e pelo menos mais duas opções de construtores (passando os parâmetros e outro com entrada de dados na tela). Atributos: String nome; String endereço;

String telefone;

5.2 Considere, como subclasse da classe Pessoa (desenvolvida no exercício anterior) a classe Fornecedor.

Considere que cada instância da classe Fornecedor tem, para além dos atributos que caracterizam a classe Pessoa, os atributos valorCredito (correspondente ao crédito máximo atribuído ao fornecedor) e valorDivida (montante da dívida para com o fornecedor). Implemente na classe Fornecedor, para além dos usuais métodos seletores e modificadores, um método obterSaldo() que devolve a diferença entre os valores dos atributos valorCredito e valorDivida.

5.3 Numa classe de teste, crie um objeto Fornecedor pedindo o usuário para digitar suas informações e passa-las ao construtor desse objeto. Porém, os dados que ele herda de Pessoa devem ser preenchidos pelo construtor que solicita a entrada dos atributos via tela. Após a criação, exibir as informações do Fornecedor (utilize o método toString() na classe) e mostre o saldo do mesmo.

(4)

6. Herança sobre “Empregados”

6.1 Considere, como subclasse da classe Pessoa do exercício 5, a classe Empregado. Considere que cada instância da classe Empregado tem, para além dos atributos que caracterizam a classe Pessoa, os atributos codigoSetor (inteiro), salarioBase (vencimento base) e imposto (porcentagem retida dos impostos).

Implemente a classe Empregado com métodos seletores e modificadores e um método calcularSalario.

6.2 Implemente a classe Administrador como subclasse da classe Empregado. Um determinado administrador tem como atributos, para além dos atributos da classe Pessoa e da classe Empregado, o atributo ajudaDeCusto (ajudas referentes a viagens, estadias, ...). Note que deverá redefinir na classe Administrador o método herdado calcularSalario (o salário de um administrador é equivalente ao salário de um empregado usual acrescido das ajuda de custo).

Numa classe de testes, crie dois objetos, um de cada classe e calcule o salário de cada instancia. Mostre esse valor junto com todas as demais informações de cada objeto.

7. Herança sobre “Empregados”

7.1 Implemente a classe Operario como subclasse da classe Empregado do exercício 6 anterior. Um determinado operário tem como atributos, para além dos atributos da classe Pessoa e da classe Empregado, o atributo valorProducao (que corresponde ao valor monetário dos artigos efetivamente produzidos pelo operário) e comissao (que corresponde à porcentagem do valorProducao que será adicionado ao vencimento base do operário). Note que deverá redefinir nesta subclasse o método herdado calcularSalario (o salário de um operário é equivalente ao salário de um empregado usual acrescido da referida comissão). Escreva um programa de teste adequado para esta classe.

7.2 Implemente a classe Vendedor como subclasse da classe Empregado. Um determinado vendedor tem como atributos, para além dos atributos da classe Pessoa e da classe Empregado, o atributo valorVendas (correspondente ao valor monetário dos artigos vendidos) e o atributo comissao (porcentagem do valorVendas que será adicionado ao vencimento base do Vendedor). Note que deverá redefinir nesta subclasse o método herdado calcularSalario (o salário de um vendedor é equivalente ao salário de um empregado usual acrescido da referida comissão).

Numa classe de testes, crie dois objetos, um de cada classe e calcule o salário de cada instancia. Mostre esse valor junto com todas as demais informações de cada objeto.

Referências

Documentos relacionados

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of

A Psicologia, por sua vez, seguiu sua trajetória também modificando sua visão de homem e fugindo do paradigma da ciência clássica. Ampliou sua atuação para além da

Figura 8 – Isocurvas com valores da Iluminância média para o período da manhã na fachada sudoeste, a primeira para a simulação com brise horizontal e a segunda sem brise

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

Até o próximo domingo (19/02), as condições de Tempo não apresentarão mudanças significativas, ou seja, predomínio de sol, e a partir da tarde, pancadas de chuva/trovoadas

6 Consideraremos que a narrativa de Lewis Carroll oscila ficcionalmente entre o maravilhoso e o fantástico, chegando mesmo a sugerir-se com aspectos do estranho,

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos