0% acharam este documento útil (0 voto)
11 visualizações2 páginas

Prova de POO em Java: Veículos e Garagem

A prova prática avalia conhecimentos em Programação Orientada a Objetos em Java, focando em Herança, Classes, Objetos, Classes Abstratas, Interfaces e Generics. O objetivo é desenvolver um sistema para gerenciar veículos, incluindo a criação de uma classe abstrata Veiculo, subclasses Carro e Moto, uma interface Transportavel e uma classe genérica Garagem. O programa principal deve instanciar objetos, implementar métodos e gerenciar a frota de veículos de forma estruturada e comentada.

Enviado por

Gustavo Duarte
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
11 visualizações2 páginas

Prova de POO em Java: Veículos e Garagem

A prova prática avalia conhecimentos em Programação Orientada a Objetos em Java, focando em Herança, Classes, Objetos, Classes Abstratas, Interfaces e Generics. O objetivo é desenvolver um sistema para gerenciar veículos, incluindo a criação de uma classe abstrata Veiculo, subclasses Carro e Moto, uma interface Transportavel e uma classe genérica Garagem. O programa principal deve instanciar objetos, implementar métodos e gerenciar a frota de veículos de forma estruturada e comentada.

Enviado por

Gustavo Duarte
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Prova Prática de Programação Orientada a Objetos em Java

Instruções

Esta prova prática avalia seu conhecimento sobre Herança, Classes, Objetos, Sobrescrita,
Classes Abstratas, Interfaces e Generics. Leia atentamente as instruções e implemente cada
requisito corretamente. Utilize boas práticas de programação, com código bem estruturado e
comentado. Ao finalizar, envie os arquivos do código-fonte no Moodle.

Contexto

Uma empresa de transportes precisa de um sistema para gerenciar diferentes tipos de


veículos. Os veículos podem ser carros e motos, ambos possuem características em comum,
mas também particularidades. Além disso, a empresa precisa de um sistema genérico para
gerenciar sua frota de veículos.

1. Tarefa: Criar uma Classe Abstrata Veiculo

Crie uma classe abstrata chamada Veiculo que será a classe base para os veículos do sistema.
Essa classe deve possuir três atributos protegidos: marca (String), ano (int) e velocidadeAtual
(double).

O construtor da classe deve inicializar esses atributos, e ela deve conter os seguintes métodos:
 Um método abstrato exibirDetalhes( ), que será implementado pelas subclasses.
 Um método public void acelerar(double incremento), que aumenta a velocidade do
veículo.
 Um método public void frear(double decremento), que reduz a velocidade do veículo,
mas não pode deixá-la menor que zero.
 Um método public double getVelocidadeAtual( ), que retorna a velocidade atual do
veículo.

2. Tarefa: Criar as Classes Carro e Moto

Crie as classes Carro e Moto, que devem herdar de Veiculo e implementar o método
exibirDetalhes( ), exibindo todas as informações do veículo.

A classe Carro deve possuir um atributo quantidadePortas(int) e um atributo


arCondicionadoLigado (boolean). Além disso, deve conter os seguintes métodos:
 public void ligarArCondicionado( ), que liga o ar-condicionado.
 public void desligarArCondicionado( ), que desliga o ar-condicionado.
 public boolean isArCondicionadoLigado( ), que retorna o estado do ar-condicionado.
A classe Moto deve possuir um atributo cilindrada (int) e um atributo capaceteObrigatorio
(boolean), que sempre deve ser true. Além disso, deve conter um método chamado public void
empinar( ), que exibe uma mensagem informando que a moto está empinando.

3. Tarefa: Criar uma Interface Transportavel

Crie uma interface chamada Transportavel, que deverá ser implementada pelas classes Carro e
Moto. A interface deve conter os seguintes métodos:

 void transportar(String destino);, que exibe uma mensagem informando que o veículo
está transportando algo até o destino informado.
 double calcularCustoTransporte(double distancia);, que retorna o custo do transporte
baseado na distância.
o A implementação desse método deve considerar os seguintes valores:
 Carro: R$2,50 por km.
 Moto: R$1,50 por km.

4. Tarefa: Criar uma Classe Genérica Garagem<T>

Crie uma classe genérica chamada Garagem<T>, que poderá armazenar veículos de qualquer
tipo. Essa classe deve conter um atributo private List<T> veiculos; para armazenar os veículos.

A classe deve fornecer os seguintes métodos:


 void adicionarVeiculo(T veiculo), que adiciona um veículo à lista.
 void listarVeiculos( ), que exibe os veículos armazenados.
 T obterVeiculoMaisVelho( ), que percorre a lista e retorna o veículo com o ano mais
antigo.

A classe Garagem<T> deve ser restrita para aceitar apenas objetos que herdam de Veiculo,
garantindo que apenas veículos possam ser armazenados.

5. Tarefa: Criar o Programa Principal (Main)

Crie uma classe Main, onde será implementado o programa principal. Nele, você deve:
 Criar objetos das classes Carro e Moto, fornecendo valores reais para seus atributos.
 Chamar os métodos exibirDetalhes( ), acelerar( ), frear( ) e exibir a velocidade atual dos
veículos.
 Usar os métodos específicos, como ligarArCondicionado( ) e empinar( ), verificando
seu funcionamento.
 Implementar a interface Transportavel, chamando transportar( ) para diferentes
destinos e calculando o custo do transporte para distâncias variadas.
 Criar um objeto Garagem<Veiculo>, adicionar veículos à garagem e listar os veículos
armazenados.
 Obter e exibir o veículo mais antigo da garagem, utilizando o método
obterVeiculoMaisVelho( ).

Você também pode gostar