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.