Logo Passei Direto
Buscar

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

LPOO-Lista7.pdf
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MAT A55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
 
Lista 7 de Exercícios (Herança, sobreposição, polimorfismo) 
 
1) Uma livraria precisa de um sistema para cadastrar seus títulos. A livraria trabalha com 
livros e revistas. Sabe-se que todo livro possui um nome, autor principal, editora, resumo 
e preço. Existem livros que são didáticos. Para estes também é registrada a sua área (ex. 
informática, história, geografia, etc). As revistas possuem um nome, editora, preço e 
periodicidade. 
Para o cenário acima, modelar a estrutura das classes e implementar em java. Construir os 
seguintes métodos: 
• Um método para criar uma revista. 
• Um método para criar um livro didático. 
• Um método para consultar o resumo de um livro. 
• Verificar se uma revista tem a mesma editora que outra. 
• Método toString para retornar uma string com os dados de um livro ou de 
uma revista. 
• Construir uma classe aplicaçãoLivraria, que possua o nome da Livraria 
acessível para todas as instâncias de livros e revistas. 
• Nesta Livraria deve-se implementar um método comprar utilizando o 
conceito de polimorfismo. Na nota fiscal deve aparecer o nome da livraria, 
o nome do livro, a quantidade, o preço total que deve ter um desconto de 
3% de ISS para livro, 10% para Livro didático e 2% para revista. 
 
2) Em uma faculdade os cursos são cadastrados a partir do seu código, nome e área. Os 
cursos de graduação possuem um número de disciplinas obrigatórias e um número de 
disciplinas optativas. Os cursos de pós-graduação possuem uma carga horária máxima a 
ser cursada pelos alunos. Para o cenário acima, modelar a estrutura das classes e 
implementar em java. Construir os seguintes métodos: 
• Um método para criar um curso de graduação 
• Um método para criar um curso de pós graduação 
• Um método para consultar o nome do curso e o número total de 
disciplinas que devem ser cursadas na graduação 
• Um método para consultar o nome do curso e a carga horária de um curso 
de pós-graduação. 
• Uma classe AplicaçãoFaculdade que use os conceitos de array e 
polimorfismo. Colocar comentários explicativos dos métodos e dos 
conceitos usados. 
 
LPOO-Lista8-2012.pdf
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MAT A55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
 
Lista 8 de Exercícios (Classes Abstratas e Interfaces) 
 
1) Refaça os exercícios de herança 
a) Pessoa, funcionário e chefe departamento -> Pessoa deve ser uma classe 
abstrata e o método calcula empréstimo um método abstrato. 
 
2) Considere uma aplicação para gerenciar aparelhos Eletrodomésticos. 
Inicialmente estes podem ser apenas TV ou Radio. Um eletrodoméstico possui 
uma voltagem e pode estar ligado ou desligado. TV possuem tamanho em 
polegadas, canal e volume. Um Radio possui uma banda (AM ou FM), um 
volume e uma sintonia (90.1, 101, etc). Para todas instancias de rádio as bandas 
são AM=1 e FM=2. Todos os objetos devem ser instanciados desligados e com 
volume em zero, TV canal zero, Radio com banda FM e sintonia zero. Para TV, 
quando ligadas devem ser colocadas no canal 3 e volume 12. Os Radios, 
quando ligados devem ser colocados em sintonia 88.1f e volume 18. Ao serem 
desligados os atributos retornam iguais aos da instanciação. 
 
Criar uma aplicação que crie instancias e mude canal, volume, sintonia destes 
eletrodomésticos. 
 
 
3) Considere o seguinte diagrama de classes UML: 
 
a) Crie uma interface de nome Motorizado onde são declarados os métodos void 
ligarMotor() e void abastecer(int numLitros). 
b) Implemente a interface Motorizado nas classes Aviao e Carro. 
c) Escreva um pequeno programa de teste capaz de verificar a implementação 
anterior. 
d) Crie uma interface de nome Conduzivel onde é declarado o método 
void curvar(float angulo). 
e) Implemente a interface Conduzivel nas classes Aviao, Carro e Bicicleta. 
f) Complete o programa de teste efectuado anteriormente por forma a testar estas 
últimas implementações. 
 
3)Mostre através de um exemplo simples que, ao contrário do que acontece com as 
classes Java, que só suportam herança simples, as interfaces suportam tanto 
herança simples como herança múltipla. 
 
4) Considere as classes PintorCasa, PintorQuadro e Escultor 
 
a) Crie uma interface, de nome Pintor, onde são declarados os métodos Object 
pintar(Object o) e Object limpar(Object o). 
b) Crie uma interface, de nome Artista, onde é declarado o método void expor(Vetor 
obrasArte). 
c) Implemente a interface Pintor na classe PintorCasa 
d) Implemente a interface Artista na classe Escultor 
e) Implemente as interfaces Pintor e Artista nas classe PintorQuadro e Escultor 
f) Crie um pequeno programa Java capaz de testar as implementações de interfaces 
efetuadas anteriormente. 
 
LPOO_Lista1.pdf
 
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MAT A55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
 
Lista 1 de Exercícios 
 
1. Criar uma classe em Java que represente um automóvel. É importante guardar o 
tipo de combustível que ele utiliza (podendo ser gasolina, álcool, ou flex), o 
fabricante, o ano e o modelo. Será necessário calcular a quantidade de combustível 
necessária para percorrer determinado percurso sabendo-se que: automóvel a 
álcool faz 15 km/l e automóvel a gasolina faz 12 km/l. Para aqueles com tipo de 
combustível flex considerar metade do caminho como gasolina e a outra metade 
como álcool. 
 
2. Criar uma classe em Java que represente uma impressora. Deve-se guardar para 
esta, o fabricante, modelo, capacidade de impressão (em número de páginas), 
tecnologia (jato tinta ou laser, ou matricial) e velocidade (páginas por segundo). A 
classe deve atender aos seguintes itens: 
• informar o tempo necessário para imprimir um texto a partir do número de 
páginas; 
• receber um texto e imprimir (para este método considere a impressão na tela 
do texto recebido como se fosse na impressora); 
• informar a quantidade de páginas que ainda podem ser impressas com a 
carga atual. 
 
3. Criar o modelo e implementar em Java uma classe Retângulo. A classe possui os 
atributos comprimento e largura. Esta classe deve possuir métodos que calculam o 
perímetro e a área do retângulo. A criação da classe deve garantir que comprimento 
e largura assumam valores maiores do que 0. 
 
4. Criar o modelo e implementar em Java uma classe que represente animais. A 
classe possui os atributos tipo (mamífero, anfíbio, ave), nome, idade. Esta classe 
deve possuir o seguinte método: 
• métodos para calcular a quantidade de alimento consumido por dia e por 
tempo de vida, sabendo-se que a cada ano de vida um mamífero come 2 
quilos/dia, uma ave come 100g/dia um anfíbio 20g/dia. A quantidade deve 
ser retornada em quilogramas. 
 
5. Criar o modelo e implementar em Java uma classe Aluno. A classe possui os 
atributos nome, ano de ingresso, curso e qtd de disciplinas aprovadas. Esta classe 
deve possuir os seguintes métodos: 
• método para calcular o número de créditos do aluno, sabendo-se que cada 
disciplina aprovada representa 4 créditos 
• método para calcular o tempo (em anos) de permanência do aluno na 
faculdade. 
LPOO_Lista2.pdf
 
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MAT A55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
 
Lista 2 de Exercícios (complementares) 
 
1. Uma conta corrente possui um número, um saldo, um status que informa se ela é 
especial
ou não e um limite. Crie uma classe conta que forneça métodos para que 
sejam feitos criações de conta, saques (uma conta corrente só pode fazer saques 
desde que o valor não exceda o limite de saque e o saldo), depósitos e emissão de 
saldo. 
 
2. Em um sistema para o Detran, a carteira de motorista é representada por um 
número, CPF do proprietário, tipo (A, B ou AB), data de validade, data de 
expedição, pontos e situação (Valida, apreendida, vencida). Quando uma pessoa 
passa no exame do Detran, uma nova carteira é emitida com os dados do seu 
proprietário. Neste momento o proprietário não possui nenhum ponto na carteira. A 
medida que o tempo passa, se o proprietário fizer alguma infração, ele recebe 
pontos que são acumulados em sua carteira. Caso ele ultrapasse 20 pontos sua 
carteira é apreendida. Esporadicamente, os pontos são zerados. Construa uma 
classe que represente uma carteira. Forneça métodos para criar uma carteira, 
acrescentar pontos, consultar o saldo de pontos, zerar a carteira, apreender a 
carteira, verificar se esta está válida. 
 
3. Criar uma classe que represente um contrato de aluguel de um imóvel. Um 
contrato possui um número, valor da prestação, quantidade de meses total, 
quantidade de prestações pagas, quantidade de prestações em atraso, percentual 
de juros por atraso e quantidade de meses para despejo. Fornecer os seguintes 
membros (métodos): 
• Criar um contrato. 
• Consultar o valor de uma prestação sem juros 
• Calcular valor dos juros para um mês de atraso 
• Pagar uma prestação sem juros. 
• Verificar se deve ser disparada a ordem de despejo de um imóvel dada a 
quantidade de meses já executados (quantos meses já se passaram desde a 
data de inicio do contrato). Imóveis cujo contrato falta apenas 6 meses para 
finalizar não podem ter ordem de despejo. 
 
 
 
LPOO_Lista4_composicaoSobrecarga.pdf
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MAT A55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
 
Lista 4 (Sobrecarga, Composição, Estruturas de Controle e Repetição) 
 
 
 
1. Considere que o Detran precisa de um sistema para controlar a carteira de motorista de 
um determinado condutor. Em nosso problema hipotético, cada possível condutor deverá 
ter informações relacionadas ao seu nome, identificação (RG ou CPF, por exemplo) e a 
carteira de motorista a qual lhe pertence. Toda carteira de motorista tem um número, 
status (se está ativa ou cancelada) e categoria (podendo ser A, B ou C). Uma carteira 
pode também acumular pontos. 
Dado um determinado condutor, precisamos oferecer para o usuário do sistema a 
possibilidade de: 
a. modificar a categoria da carteira; 
b. inclusão de pontos em sua carteira; 
c. consulta dos pontos atuais da carteira; e 
d. verificar se a carteira está cancelada (considere que uma carteira é cancelada quando 
tem mais de 30 pontos). 
 
Obs.: Utilize os conceitos de sobrecarga e composição 
 
Será possível instanciar um condutor que já tenha uma carteira, carteira e condutor ao 
mesmo tempo, condutor sem carteira. 
 
2. Uma imobiliária hipotética necessita registrar contratos de aluguel de imóveis. Um 
contrato possui um número, valor do aluguel, quantidade de meses total, quantidade de 
prestações já pagas, quantidade de prestações em atraso, percentual de juros a ser cobrado 
por prestação atrasado, quantidade de meses atrasados suficientes para despejo e um 
status para indicar a situação atual do contrato (ativo ou inativo). Além disso, cada 
contrato deve possuir um fiador. 
As informações necessárias para um fiador são: nome, cpf e renda mensal. O sistema só 
deverá aceitar contratos ativos caso o fiador correspondente tenha renda mensal superior 
a 3 vezes o valor do aluguel. Precisamos ainda fornecer a possibilidade de: 
a. consultar o valor da prestação sem juros; 
b. calcular o valor da prestação para um mês de atraso; 
c. pagar uma prestação sem juros; 
d. verificar se deve ser disparada a ordem de despejo de um imóvel dada a quantidade de 
meses em atraso. Imóveis cujo contrato falta apenas 6 meses para finalizar não podem ter 
ordem de despejo. 
e. modificar a renda mensal do fiador cadastrado; e 
f. modificar o fiador do contrato; 
 
Obs.: Utilize os conceitos de sobrecarga e composição. 
 
3. Construir uma classe que represente os clientes de um cinema. Todo cliente possui os 
atributos nome e idade. Construir um construtor para a classe e um método para calculo 
do valor do ingresso sabendo-se que: 
- Crianças (menos 14 anos) e idosos (mais de 65 anos) pagam meia entrada R$ 8,00 
- Existe uma promoção onde todos pagam meia nas quartas e quintas feiras. 
- Receber como argumento o dia da semana. 
 
4. Construir uma classe comparação que terá um atributo um valor e métodos para: 
Construtor 
Receber um número e verificar se ele é igual ao da classe 
Receber dois números e verificar se eles são iguais 
Receber um número e verificar se ele é menor que o da classe 
Receber dois números e verificar se o primeiro é maior que o segundo. 
 
 
LPOO_Lista5.pdf
 
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MAT A55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
 
Lista 5 de Exercícios (todos os conceitos estudados) 
 
1. Defina uma classe Data com os dados: dia, mês e ano. Esta classe conterá os métodos 
de modificar e recuperar atributos, e um método que imprime a data na tela. Além disso, 
esta classe deverá conter uma função que imprima, por extenso, o mês para a qual a data 
está instanciada. Ex: data: 01/05/09 Saída: MAIO. 
 
 
2. Defina uma classe Professor com os dados: nome do professor, nome do departamento, 
data de admissão (utilizando o exercício anterior), número de registro. Inclua na classe 
um construtor para setar os dados e um método para imprimir o conteúdo, imprimindo a 
data por extenso. 
 
3. Crie a classe Carro composto pelas classes Pneu e Motor, além de atributos como 
número de portas, ano do modelo e tipo do carro (hatch, sedan e minivan). Para cada 
atributo crie métodos para leitura e Modificação dos dados. As classes Pneu e Motor 
devem conter apenas uma breve descrição do tipo do item. Caso não seja informado, o 
número de portas de um carro é igual a 2. Um Carro possui um método que imprime 
todos os seus atributos na tela. 
 
4. O valor de xy pode ser calculado como sendo x multiplicado por si mesmo y vezes (se 
y for inteiro). Escreva uma classe chamada “SeriesMatemáticas” que contenha um 
construtor para inicializar x e y, um método chamado “elevadoA” que calcule e retorne o 
resultado de xy , e um método chamado “imprimeResultado” que mostre o resultado 
obtido. Obs: Use uma estrutura de Repetição. 
 
 
 
LPOO_Lista6.pdf
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MAT A55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
 
 
Exercícios – Lista 6 (Arrays em Java) 
 
 
1. Construa uma classe em Java capaz de armazenar e gerenciar em um vetor 
os registros de temperatura de uma determinada localidade. Crie dois 
construtores: primeiro, um construtor para receber um vetor já criado com os 
valores das temperaturas já inseridos; segundo, um construtor para receber o 
tamanho de um vetor a ser criado. A classe deverá possuir métodos 
para: 
a. adicionar nova temperatura, caso haja espaço no vetor; 
b. remover temperatura, caso a temperatura a ser removida esteja no 
vetor; 
c. obter a temperatura máxima; 
d. obter a temperatura mínima; 
e. obter a amplitude térmica; 
f. obter a média das temperaturas; 
g. ordenar o vetor crescentemente; 
Obs.: Considere que seja
possível ter mais de uma temperatura igual no vetor. 
 
No momento de remoção, escolha retirar a primeira ocorrência da temperatura a 
ser deletada, caso tenha mais de uma. 
 
2. Construa uma classe em Java que seja capaz de sortear dezenas para o jogo 
da Mega-sena e divulgar o resultado na tela do computador. O sorteio das 
dezenas poderá ser solicitado quantas vezes for necessário. Além disso, 
construa um método capaz de retornar, quando solicitado, os últimos 10 jogos 
sorteados. 
 
Dica: Como gerar números aleatórios em Java. 
 
a) importar antes da declaração de classe o pacote java.util.Random; 
 
Exemplo: 
 
import java.util.Random; 
public classe NomeDaClasse 
{ 
... 
} 
 
 
 
 
 
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MAT A55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
 
 
 
b) Em seguida, veja como utilizar a classe Random dentro do código. 
Exemplo: 
 
import java.util.Random; 
public class NomeDaClasse 
{ 
... 
public void algumMetodo() 
{ 
Random gerador = new Random(); 
int num = gerador.nextInt(500); 
System.out.print(num); 
} 
... 
} 
 
Obs.: O sorteio da Mega-sena contém 6 dezenas de 0 a 99 não repetidas. 
Neste exemplo, o objeto gerador, que é uma 
instância da classe Random, gera um número 
inteiro qualquer de 0 a 499 e imprime na 
tela.Observe o parâmetro 500 do método nextInt. 
Este parâmetro define o limite do número inteiro a 
ser gerado (não incluindo ele 
mesmo), por isso vai de 0 a 499. 
Lista3.pdf
 
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MAT A55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
Lista3 (Sobrecarga, this,Get e Set) 
 
1 - Utilizando a classe Automóvel do exercício da lista anterior, suponha que o usuário 
poderá escolher se quer ou não informar o tipo de Combustível e o ano. Caso ele não 
informe os dois atributos o valor padrão para tipo de Combustível será “gasolina” e ano 
será “2009”. Utilize os conceitos aprendidos na última aula. 
2 – Implemente a Classe Triângulo. Esta classe possuirá os atributos a, b e c (lados do 
triângulo) . Caso o objeto seja instanciado apenas com um parâmetro, o triângulo deverá 
ser eqüilátero (três lados iguais), caso o objeto seja instanciado com dois parâmetros, o 
triângulo deverá ser isósceles e o primeiro parâmetro indicará o tamanho de a e b, caso 
haja 
três parâmetros na iniciação do objeto, estes serão atribuídos a a, b e c. 
3 – Utilizando o Exercício 2, crie os métodos calculaPerimetro(), que calculará o 
perímetro do triângulo atual e calculaPerimetro(a,b,c), que calculará o perímetro de um 
triângulo de lados a, b e c. 
 
4 - Defina uma classe Professor com os dados: nome do professor, nome do 
departamento, data de admissão, número de registro. Inclua na classe os dados um 
método para imprimir o conteúdo. Suponha que, caso o usuário não informe a data de 
admissão do professor, a mesma será “01/01/2009”. 
 
5 – Ainda utilizando a classe Professor, da questão acima, sabendo-se que os 
departamentos existentes são: 
1 - Departamento de Ciência da Computação 
2 – Departamento de Matemática 
3 – Departamento de Física 
4 – Departamento de Música 
Crie o método setDepartamento que poderá receber como parâmetro uma string ou um 
inteiro. Caso seja uma string, esta função atribuirá esta string ao nome do departamento, 
caso seja um inteiro, esta função atribuirá o departamento correspondente a este inteiro. 
Por exemplo, caso o passe como parâmetro da função o inteiro 3 então a função deverá 
atribuir “Departamento de Física” ao nome do departamento. 
 
6. Conta pode ser comum, especial, poupança o investimento. Uma conta corrente possui 
um número, um saldo, um status que informa se ela é comum, especial, poupança ou 
investimento. Contas especiais possuem um limite. conta poupança e investimento 
possuem uma taxa rendimento mensal. Para a conta poupança informa-se o percentual de 
rendimento mensal que deve ser aplicado, para conta investimento além deste percentual 
é também informado a taxa de IOF (valor absoluto) que deve ser subtraído do valor após 
aplicado o rendimento. 
Crie uma classe conta que forneça métodos para que sejam feitos criações de conta, 
saques (uma conta corrente só pode fazer saques desde que o valor não exceda o limite de 
saque e o saldo), depósitos, emissão de saldo, rendimento mensal. 
 
 
Lista_-_Vetores_e_Matrizes.pdf
Lista de Exercícios de Orientação a Objetos – Vetores e Matrizes 
 
1. Escreva uma classe chamada “MatrizDeInteiros” que tenha como atributo uma matriz 
de inteiros e um construtor que receba como parâmetro a ordem da matriz, a instancie e 
inicialize com zeros. Acrescente a classe os seguintes métodos: 
a. um método que receba como parâmetro três números inteiros indicando 
respectivamente linha, coluna e o valor que deve ser armazenado na linha e 
coluna indicada. 
Obs: Caso a linha ou a coluna passadas como parâmetro estejam fora da ordem 
da matriz indique com uma mensagem o erro. 
b. um método “éQuadrada”, que retorna true se a matriz for quadrada (isto é, tem 
o mesmo número de linhas e colunas). 
c. um método total que some todos os valores da matriz retornando o resultado. 
d. um método que receba como parâmetro um determinado valor e retorne a linha 
onde o elemento foi encontrado na matriz ou –1 caso contrário. 
 
2. Escreva uma classe chamada “VetorDeChar” que tenha como atributo um vetor de char 
e um construtor que receba como parâmetro uma frase. No construtor deve ser passada 
a frase para o vetor de char. 
Dica: Use o método “toCharArray” da classe String para colocar os elementos da frase 
no vetor. 
Exemplo: char vetor[] = frase.toCharArray(); 
Acrescente os seguintes métodos a classe: 
a. um método que retorne o número de vogais existentes na frase. 
b. um método que retorne o número palavras iguais na frase. 
 
3. Escreva uma classe “Funcionário” com os atributos matricula (int), nome (String), 
departamento (int), salário (float) e função (String). Adicione na classe um construtor 
que receba todos os parâmetros para inicializar os dados de um funcionário. 
 
4. Escreva uma classe “SetorPessoal” que tenha como atributo um vetor da classe 
“Funcionário” e uma variável inteira para ser usada como índice do vetor. Crie um 
construtor que receba como parâmetro o número de funcionários de uma empresa para 
instanciar o vetor e inicialize o índice do vetor com zero. Acrescente os seguintes 
métodos a classe: 
 
a. um método para adicionar funcionários no vetor definido na classe; 
b. um método que possa imprimir a folha de pagamento informando o nome dos 
funcionários e o seus respectivos salários. 
c. um método que possa retornar o valor total da folha de pagamento. 
d. um método que possa retornar o nome do funcionário que recebe o maior 
salário. 
e. um método que possa receber como parâmetro o número de um 
determinado departamento e mostrar o nome e o cargo de todos os 
funcionários daquele departamento. 
f. um método que possa receber como parâmetro o nome de uma 
determinada função e posteriormente imprimir o nome de todas as 
pessoas que exercem essa função. 
g. um método que possa imprimir a folha de pagamento informando o 
nome dos funcionários e o seus respectivos salários em ordem crescente 
de salário. 
Dica: É necessário criar outro vetor que conterá o vetor original e 
posteriormente ordená-lo. 
 
Lista_6.1_-_Static_e_Entrada.pdf
Universidade Federal da Bahia
Departamento de Ciência da Computação
MATA55 – Programação Orientada
a Objeto
Professora: Rita Suzana Pitangueira Maciel
Monitor: Gustavo Damasceno de Araújo Carvalho
 
Métodos Estáticos e Entrada
 
Construa um classe que represente uma locadora. Cada locadora possui nome, CNPJ, 
uma lista de filme e uma lista de clientes. Cada filme possui titulo, ano e quantidade de cópias 
disponíveis. Cada cliente possui um nome, cpf/cnpj, um identificador se é pessoa física ou 
juridica, e quantidade de filmes que já locou. Os seguintes metódos devem ser implementados 
em locadora:
● Dado um filme, imprimir suas informações;
● Verificar se um dado filme é válido, ou seja, se o titulo não for vazio e se o ano for maior 
que 1900 e menor que 2013;
● Adicionar filme passando as informações através da entrada de dados e não por 
parâmetros;
● Pesquisar filmes por nome através da entrada de dados;
● Adicionar cliente por entrada de dados;
● Verificar se, dado um cliente, ele é especial. Cliente é especial se: for pessoa física e já 
tiver locado mais de 20 filmes ou for pessoa jurídica e tiver locado mais de 40 filmes;
● Mesma função anterior, mas usando entrada de dados para procurar pelo nome do 
cliente;
 
 
Obs.: Utilize a classe Keyboard para entrada de dados.
 
Lista_de_Herança.pdf
Universidade Federal da Bahia 
Departamento de Ciência da Computação 
MATA55 – Programação Orientada a Objeto 
Professora: Rita Suzana Pitangueira Maciel 
 
Lista de Exercícios 
(Herança) 
 
 
1. Um determinado supermercado necessita representar os seus funcionários 
distinguindo-os através de suas funções. Todo funcionário deve possuir: nome, CPF 
e um salário básico. Os funcionários do supermercado podem ser: empacotadores ou 
operadores de caixa (ou simplesmente caixa). Empacotadores são os únicos 
funcionários que podem ter deficiência auditiva. Portanto, é necessário informar, 
quando solicitado. Se o empacotador tem ou não deficiência. Se o operador possui 
deficiência ganha um auxilio de 10% do salário básico. Os operadores de caixa são 
os únicos funcionários que podem fazer hora extra. Portanto, para operadores de 
caixa. É preciso obter e alterar, quando solicitado informação da quantidade de 
horas extras realizadas no mês corrente. 
 
a. Crie os métodos construtores, gets e sets necessários nas classes 
Funcionario, Empacotador e Caixa; 
b. Crie um método “calculaSalario” na classe de funcionário. 
c. Utilize o conceito de redefinição de métodos para redefinir o método 
“calculaSalario” na classe Caixa para retornar o salário corrigido 
considerando um adicional de R$ 10,00 por hora extra trabalhada. 
d. Crie um método que permita alterar, quando solicitado informação da 
quantidade de horas extras realizadas no mês corrente. 
e. Utilize o conceito de redefinição de métodos para redefinir o método 
“calculaSalario” na classe Empacotador para retornar o salário corrigido 
considerando um adicional de 10% em cima da salário base para o caso do 
funcionário ser portador de alguma deficiência. 
 
2. Uma biblioteca possui um nome, um endereço e armazena um conjunto de 
publicações. Atualmente, as publicações disponíveis são os artigos e os livros. 
Todas as publicações possuem data de publicação, um título, uma lista de outras 
publicações a que elas fazem referência e o conjunto de autores da publicação. São 
atributos relevantes para um autor: o seu nome e sua titulação. São atributos 
relevantes para artigos: o seu título, a sua data de publicação, o seus autores, as 
outras publicações que ele faz referência e o seu resumo. Para os livros é relevante 
armazenar seu título, sua data de publicação, as outras publicações que ele 
referencia seus autores, o número da edição, o nome da editora e o seu ISBN. As 
mas na biblioteca não existem objetos publicações; o que ela vai efetivamente 
armazenar são livros ou artigos. Livros podem ser locados por uma semana e artigo 
duas. 
a. Crie os métodos construtores, gets e sets necessários para as classes 
Publicacao, Artigo, Livro e Autor; 
b. Crie um método na classe Publicacao que informe se uma determinada 
publicação está ou não disponível. 
c. Crie um método “locar” na classe Biblioteca que recebe um livro como 
parâmetro e efetua a locação do livro; 
d. Usando os conceitos de sobreposição defina outro método “locar” que 
recebe um artigo como parâmetro; 
e. Defina o método “devolver” na classe Biblioteca que recebe um artigo ou 
um livro como parâmetro e efetua a devolução; 
f. Crie um método “inserirLivro” na classe Biblioteca que permite adicionar 
um ou mais livros no acervo da biblioteca. Use os conceitos de 
sobreposição. 
g. Crie um método “inserirArtigo” na classe Biblioteca que permite adicionar 
um ou mais artigos no acervo da biblioteca. Use os conceitos de 
sobreposição. 
h. Crie um método “inserirAutor” na classe Publicacao que permite adicionar 
um ou mais autores do livro. Use os conceitos de sobreposição; 
i. Crie um método “inserirReferencias” na classe Publicacao que permite 
adicionar uma ou mais publicações. Use os conceitos de sobreposição; 
j. Crie o método “listaAutores” que mostra dos os autores de uma 
determinada publicação; 
k. Crie um método “listaReferencias”, na classe Publicacao, que para cada 
referência imprime os o nome da referência, o tipo (se é um livro ou um 
artigo), os autores, a edição, a editora e o ISBN no formato ABNT.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?