Atividade 05: OOP
Exercício 01: Gerador de Personagem
Seção intitulada “Exercício 01: Gerador de Personagem”Criar um programa que gere e manipule personagens de jogo usando classes.
Instruções
Seção intitulada “Instruções”- Crie uma classe chamada
Personagemque implemente os atributosnome,vidaeataque, além de dos métodosreceberDanoeatacar; - O método
receberDanorecebe um parâmetro do tipointque subtrai davidado objeto. Se o valor davidafor menor ou igual a zero, o método deve imprimir uma mensagem informando que o personagem foi derrotado; - O método
atacarrecebe um parâmetro do tipoPersonagemchamadoalvoe chama o métodoreceberDano, passando o ataque do personagem atacante como parâmetro. Caso a vida doalvoseja igual a zero, o método deve imprimir uma mensagem informando que oataque falhou; - No método
mainda classe principal, crie crie uma lista dePersonagemchamada deinimigose adicione pelo menos três personagens diferentes; - Crie um
Personagemchamadojogadore use o métodoatacarpassando como parâmetro aleatoriamente um dos personagens da listainimigos. O jogador não deve atacar inimigos com vida igual a 0; - Após o ataque do jogador, crie um loop que percorre a lista de
inimigose chama o métodoatacarde cada um deles passando como parâmetro ojogador; - Repita os dois últimos passos até que o
jogadorou todos osinimigostenham a vida zerada e imprima o resultado final.
Entradas (inputs)
Seção intitulada “Entradas (inputs)”Orc / Vida: 100 / Ataque: 10Goblin / Vida: 50 / Ataque: 5Lobo / Vida: 75 / Ataque: 15Cavaleiro / Vida: 200 / Ataque: 20Dragão / Vida: 500 / Ataque: 50
Steve / Vida: 100 / Ataque: 20Saídas (outputs)
Seção intitulada “Saídas (outputs)”Orc foi derrotado!Goblin foi derrotado!Steve foi derrotado!Exercício 02: Barcos e Portos
Seção intitulada “Exercício 02: Barcos e Portos”Criar um programa que gere e manipule barcos e portos usando classes e herança.
Instruções
Seção intitulada “Instruções”- Crie uma classe chamada
Barcocontendo os atributosnomeetamanho; - Crie uma classe chamada
BasePortocontendo os atributosnome, um array debarcosAtracadose dois métodos método chamadosatracarBarcoedesatracarBarco; - O método
atracarBarcorecebe um objetoBarcoe adiciona o barco ao array debarcosAtracados; - O método
desatracarBarcorecebe um objetoBarcoe remove o barco do array debarcosAtracados; - Crie uma classe chamada
PortoPequenoque herda da classeBasePorto. Sobreescreva o métodoatracarBarcospara que ele permita apenas a atracagem de barcos com tamanho menor ou igual a 10; - Crie uma classe chamada
PortoGrande que herda da classeBasePorto. Sobreescreva o métodoatracarBarcos` para que ele permita apenas a atracagem de barcos com tamanho maior ou igual a 10; - No método
main:- Crie uma lista contendo 5 barcos com diferentes tamanhos e dois portos (um pequeno e um grande);
- Percorra a lista de barcos e use o método
atracarBarcopara atracar cada barco em um dos portos; - Os barcos devem tentar ser atracados primeiramente no porto pequeno e, se não puderem, devem ser atracados no porto grande.
Entradas (inputs)
Seção intitulada “Entradas (inputs)”Barco 1: Tamanho 2Barco 2: Tamanho 5Barco 3: Tamanho 7Barco 4: Tamanho 12Barco 5: Tamanho 20Saídas (outputs)
Seção intitulada “Saídas (outputs)”Barco 1 atracado no porto pequenoBarco 2 atracado no porto pequenoBarco 3 atracado no porto pequenoBarco 4 atracado no porto grandeBarco 5 atracado no porto grandeExercício 03: Buscador de Músicas
Seção intitulada “Exercício 03: Buscador de Músicas”Crie um programa, utilizando Collections e Exceptions, que seja capaz de armazenar uma lista de músicas e permita o usuário criar playlists.
Instruções
Seção intitulada “Instruções”- Crie uma classe chamada
Musicacom os atributostituloeartista. - Crie uma classe chamada
Playlistcom os atributosnomeemusicas. - Crie uma classe chamada
MusicCloudcom os atributosmusicasDisponiveis.-
- Insira diferentes nomes de músicas na lista
musicasDisponiveis.
- Insira diferentes nomes de músicas na lista
-
- Crie um método para pesquisar as músicas disponíveis.
-
- Crie uma classe chamada
Mainpara testar o programa.-
- Peça ao usuário para inserir o nome da playlist.
-
- Peça ao usuário para inserir o nome da música.
-
- Se a música existir, adicione na playlist
-
- Se a música não existir, retorne uma mensagem de erro
-
- Repita os passos 2 ao 4 até que o usuário decida parar.
-
- Imprima a playlist.
-
Entradas (inputs)
Seção intitulada “Entradas (inputs)”Digite o nome da música:Hino do Real PaulistaSaídas (outputs)
Seção intitulada “Saídas (outputs)”Você adicionou a música Hino do Real Paulista na playlist.Você adicionou a música Macarena na playlist.Você adicionou a música Evidências na playlist.A música Hino do Real Paulista não foi encontrada no sistema.
Playlist:- Hino do Real Paulista- Macarena- EvidênciasExercício 04: Compartilhar Postagem
Seção intitulada “Exercício 04: Compartilhar Postagem”Crie um programa, utilizando Interfaces, para implementar o compartilhamento em diferentes plataformas de mídia social.
Instruções
Seção intitulada “Instruções”- Crie uma interface chamada
PlataformaSocialcom os métodoscompartilharPostagem(Postagem postagem),compartilharImagem(Postagem postagem),compartilharVideo(Postagem postagem). - Crie uma classe chamada
MyBookque implementa a interfacePlataformaSocial. - Crie uma classe chamada
Fotogramque implementa a interfacePlataformaSocial. - Crie uma classe chamada
AnyTubeque implementa a interfacePlataformaSocial. - Crie uma classe chamada
Postagemque recebe umtitulo,descricaoetipo(texto, imagem, video). - O Fotogram deve gerar uma exceção no método
compartilharPostagem - O AnyTube deve gerar uma exceção no método
compartilharImagem - O MyBook não gera nenhuma exceção e deve imprimir todos os métodos;
- Crie uma classe chamada
Mainpara testar o programa.-
- Crie uma instância da classe
Postageme peça ao usuário para inserir o título, descrição e tipo da postagem.
- Crie uma instância da classe
-
- Crie uma instância da classe
MyBooke chame o métodocompartilharPostagempassando a instância da classePostagemcomo parâmetro.
- Crie uma instância da classe
-
- Crie uma instância da classe
Fotograme chame o métodocompartilharImagempassando a instância da classePostagemcomo parâmetro.
- Crie uma instância da classe
-
- Crie uma instância da classe
AnyTubee chame o métodocompartilharVideopassando a instância da classePostagemcomo parâmetro.
- Crie uma instância da classe
-
Entradas (inputs)
Seção intitulada “Entradas (inputs)”Titulo: Minha primeira postagemDescrição: Esta é uma descrição da minha primeira postagem.Tipo: imagemSaídas (outputs)
Seção intitulada “Saídas (outputs)”Você compartilhou essa postagem no MyBook.Você compartilhou essa postagem no Fotogram.Ocorreu um erro ao compartilhar essa postagem no AnyTube.- Você pode utilizar de enumeradores para representar os tipos de postagem.
- O objetivo é garantir que nenhuma classe compartilhe postagens que incluem tipo de dados que não são suportados pela plataforma. Por isso teste todos os objetos criados no main com diferentes configurações.
Exercício 05: Ticket do Cinema
Seção intitulada “Exercício 05: Ticket do Cinema”Crie um programa, utilizando Exceções e Collections, que permita realizar a compra de tickets para assistir filmes no cinema.
Instruções
Seção intitulada “Instruções”- Crie uma classe chamada
Cliente,Cinema,FilmeeIngresso. - Na classe cliente, implemente um POJO contendo os atributos
nomee ‘idade’. - Na classe
Cinema, adicione uma collection (sugestão:ArrayList) comfilmesDisponiveise insira pelo menos 5 filmes. - Na classe
Cinema, adicione uma lista comingressosVendidos. - Na classe
Filme, adicione os atributosnome,preco,idadeMinima. - Na classe
Ingresso, adicione os atributoscliente,filmeeassento. - Crie uma classe
Mainpara testar o programa.-
- Crie uma instância da classe
Cinemae adicione os filmes disponíveis.
- Crie uma instância da classe
-
- Crie uma instância da classe
Ingressoe peça ao usuário para inserir o nome do cliente, o nome do filme e o assento desejado (de A1 a F5).
- Crie uma instância da classe
- 2.1. O programa deve retornar uma Exception caso o assento não esteja mais disponível ou a idade do cliente não seja compatível com a idade mínima do filme.
-
- Adicione o ingresso à lista de ingressos vendidos.
-
- Imprima uma mensagem informando que o ingresso foi vendido com sucesso.
-
- Repita os passos 2 ao 4 novamente.
-
Entradas (inputs)
Seção intitulada “Entradas (inputs)”Que filme você deseja assistir?Homen AranhaQual assento você deseja?A1Qual o seu nome?RivelinoQual a sua idade?16Saídas (outputs)
Seção intitulada “Saídas (outputs)”O ingresso não pode ser vendido pois sua idade não permite!O ingresso não pode ser vendido pois seu assento não está mais disponível!Ingresso vendido com sucesso! Homen Aranha - A1 - RivelinoExercício 06: Controle de Ponto
Seção intitulada “Exercício 06: Controle de Ponto”Criar um programa, utilizando sobrecarga, para registrar as horas trabalhadas de funcionários de uma empresa.
Instruções
Seção intitulada “Instruções”- Crie uma classe chamada
Funcionariocontendo os atributosnomeehorasTrabalhadas(valor inicial 0); - Crie dois construtores sobrecarregados:
- Um que recebe apenas o
nome; - Um que recebe o
nomee o valor inicial dehorasTrabalhadas;
- Um que recebe apenas o
- Crie o método
baterPontosobrecarregado de duas formas:baterPonto(): registra 8 horas (jornada padrão) e imprime uma mensagem;baterPonto(int horas): registra a quantidade de horas informada e imprime uma mensagem;
- No método
main:- Crie pelo menos 3 funcionários usando os diferentes construtores;
- Chame as diferentes versões do método
baterPontopara cada funcionário; - Imprima o total de horas trabalhadas de cada funcionário.
Entradas (inputs)
Seção intitulada “Entradas (inputs)”Ana / Jornada: padrãoBruno / Horas: 4Carla / Horas: 6Saídas (outputs)
Seção intitulada “Saídas (outputs)”Ana bateu ponto: 8 horas trabalhadas.Bruno bateu ponto: 4 horas trabalhadas.Carla bateu ponto: 6 horas trabalhadas.
Total de horas trabalhadas:Ana: 8 horasBruno: 4 horasCarla: 6 horasExercício 07: Sistema de Pagamentos
Seção intitulada “Exercício 07: Sistema de Pagamentos”Criar um programa, utilizando classes abstratas, para calcular o valor final de pagamentos em diferentes formas.
Instruções
Seção intitulada “Instruções”- Crie uma classe abstrata chamada
Pagamentocontendo:- O atributo
valor; - Um construtor que recebe o
valor; - Um método abstrato
calcularValorFinal();
- O atributo
- Crie as subclasses da classe
Pagamento:PagamentoDinheiro: o valor final é o mesmo valor informado;PagamentoCartao: o valor final é acrescido de 5%;PagamentoPix: o valor final tem 3% de desconto;
- No método
main:- Crie uma lista de
Pagamentocom pelo menos uma instância de cada forma de pagamento; - Percorra a lista e imprima o valor final de cada pagamento;
- Crie uma lista de
- O programa deve gerar um erro de compilação se alguém tentar instanciar a classe
Pagamentodiretamente, pois ela é abstrata.
Entradas (inputs)
Seção intitulada “Entradas (inputs)”Dinheiro: R$ 100.00Cartão: R$ 100.00PIX: R$ 100.00Saídas (outputs)
Seção intitulada “Saídas (outputs)”Pagamento em dinheiro: R$ 100.00Pagamento no cartão: R$ 105.00Pagamento via PIX: R$ 97.00Exercício 08: Representação de Objetos
Seção intitulada “Exercício 08: Representação de Objetos”Criar um programa que sobrescreva o método toString() para exibir objetos de forma amigável.
Instruções
Seção intitulada “Instruções”- Crie uma classe chamada
Livrocom os atributostitulo,autoreano; - Sobrescreva o método
toString()para retornar o texto no formato<titulo> - <autor> (<ano>); - No método
main:- Crie uma lista com pelo menos 3 livros;
- Imprima cada livro da lista (o
System.out.printlnchama otoString()automaticamente);
- Opcional: sobrescreva também o método
equals()para que dois livros sejam considerados iguais quando possuírem o mesmotituloeautor.
Entradas (inputs)
Seção intitulada “Entradas (inputs)”Dom Casmurro / Machado de Assis / 1899O Cortiço / Aluísio Azevedo / 1890Vidas Secas / Graciliano Ramos / 1938Saídas (outputs)
Seção intitulada “Saídas (outputs)”Dom Casmurro - Machado de Assis (1899)O Cortiço - Aluísio Azevedo (1890)Vidas Secas - Graciliano Ramos (1938)