Implemente:
b) Uma subclasse de MeioDeTransporte chamada Carro. Carro deve ter os atributos marca (String), nome (String) e quilometragem (tipo int) e os métodos necessários para ler os atributos e alterá-los (get e set). A quilometragem não pode ser negativa, nem ultrapassar o valor 999999. A velocidade do Carro não pode ser negativa, nem ultrapassar 200.
b) Uma subclasse de MeioDeTransporte chamada Carro. Carro deve ter os atributos marca (String), nome (String) e quilometragem (tipo int) e os métodos necessários para ler os atributos e alterá-los (get e set). A quilometragem não pode ser negativa, nem ultrapassar o valor 999999. A velocidade do Carro não pode ser negativa, nem ultrapassar 200.
Passo 1
Beleza, vamos lá! O enunciado pede para a gente criar uma subclasse chamada Carro que herda de MeioDeTransporte. Isso envolve conceitos de Programação Orientada a Objetos (POO), como herança e encapsulamento. Precisamos definir os atributos marca (String), nome (String) e quilometragem (int), além de métodos para ler (get) e alterar (set) esses atributos. Tem também umas regras: a quilometragem não pode ser negativa nem passar de 999999, e a velocidade do carro não pode ser negativa nem ultrapassar 200. Vamos usar Java para implementar isso.
Passo 2
Primeiro, vamos criar a classe Carro que estende a classe MeioDeTransporte. Isso significa que Carro vai herdar todas as características de MeioDeTransporte e a gente pode adicionar mais especificidades.
public class Carro extends MeioDeTransporte {
// Atributos e métodos vão aqui
}
Passo 3
Agora, vamos declarar os atributos marca, nome e quilometragem. Em POO, é uma boa prática deixar esses atributos privados para proteger os dados e acessar eles somente através de métodos get e set.
private String marca;
private String nome;
private int quilometragem;
Passo 4
Vamos criar os métodos get e set para cada atributo. Os métodos get retornam o valor do atributo, e os set permitem alterar o valor, respeitando as regras que o enunciado deu.
Primeiro, para marca:
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
E para nome:
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
Passo 5
Agora, vamos cuidar da quilometragem. A gente precisa garantir que ela nunca seja negativa e não passe de 999999. Então, no método setQuilometragem, vamos colocar uma condição para verificar isso.
public int getQuilometragem() {
return quilometragem;
}
public void setQuilometragem(int quilometragem) {
if (quilometragem >= 0 && quilometragem <= 999999) {
this.quilometragem = quilometragem;
} else {
System.out.println("Quilometragem inválida. Deve ser entre 0 e 999999.");
}
}
Passo 6
Por último, precisamos garantir que a velocidade do carro também respeite as regras: não pode ser negativa e não pode passar de 200. Vamos supor que a classe MeioDeTransporte já tem um atributo velocidade e métodos get e set para ele. Então, vamos sobrescrever o método setVelocidade para adicionar as verificações.
@Override
public void setVelocidade(int velocidade) {
if (velocidade >= 0 && velocidade <= 200) {
super.setVelocidade(velocidade);
} else {
System.out.println("Velocidade inválida. Deve ser entre 0 e 200.");
}
}
Resposta
Juntando tudo, a classe Carro ficaria assim:
public class Carro extends MeioDeTransporte {
private String marca;
private String nome;
private int quilometragem;
// Getter e Setter para marca
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
// Getter e Setter para nome
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
// Getter e Setter para quilometragem com validação
public int getQuilometragem() {
return quilometragem;
}
public void setQuilometragem(int quilometragem) {
if (quilometragem >= 0 && quilometragem <= 999999) {
this.quilometragem = quilometragem;
} else {
System.out.println("Quilometragem inválida. Deve ser entre 0 e 999999.");
}
}
// Sobrescreve o método setVelocidade com validação
@Override
public void setVelocidade(int velocidade) {
if (velocidade >= 0 && velocidade <= 200) {
super.setVelocidade(velocidade);
} else {
System.out.println("Velocidade inválida. Deve ser entre 0 e 200.");
}
}
}
Pronto! Agora você tem a subclasse Carro com os atributos e métodos necessários, seguindo todas as regras do enunciado.
Exercícios relacionados
Escreva as seguintes classes:
a) Uma classe Pessoa com atributos nome e sobrenome. Cada um desses atributos deve ter métodos get e set. A classe Pessoa ainda deve ter um método chamado getNomeCompleto que não possui parâmetros de entrada e que retorna a concatenação do atributo nome com o atributo sobrenome. Além disso, a classe deve possuir um construtor sem parâmetros e um outro construtor que recebe como parâmetros o nome e o sobrenome da pessoa e altera respectivamente os atributos nome e sobrenome.
a) Uma classe Pessoa com atributos nome e sobrenome. Cada um desses atributos deve ter métodos get e set. A classe Pessoa ainda deve ter um método chamado getNomeCompleto que não possui parâmetros de entrada e que retorna a concatenação do atributo nome com o atributo sobrenome. Além disso, a classe deve possuir um construtor sem parâmetros e um outro construtor que recebe como parâmetros o nome e o sobrenome da pessoa e altera respectivamente os atributos nome e sobrenome.
Implemente:
c) Uma classe que contenha o método main que permita ao usuário digitar os dados de 5 carros. Adicione os objetos em um array de carro. Por fim exiba os dados dos 5 carros.
c) Uma classe que contenha o método main que permita ao usuário digitar os dados de 5 carros. Adicione os objetos em um array de carro. Por fim exiba os dados dos 5 carros.
Para cada um dos problemas abaixo, desenhe uma hierarquia de classes que as represente. Não deve-se implementar nenhum código.
a) Considere uma universidade com alunos. Os alunos podem ser de graduação e de pós-graduação. Os alunos de graduação podem ser calouros, intermediários ou formandos. Os alunos de pós-graduação podem ser de mestrado ou de doutorado.
a) Considere uma universidade com alunos. Os alunos podem ser de graduação e de pós-graduação. Os alunos de graduação podem ser calouros, intermediários ou formandos. Os alunos de pós-graduação podem ser de mestrado ou de doutorado.
Implemente programas para os problemas descritos a seguir.
Crie um programa para simular uma aplicação bancária. O banco possui clientes com contas bancárias (Conta). Além disso, existem outros dois tipos de contas que compartilham informações da conta base, mas que possuem suas próprias peculiaridades: conta especial (ContaEspecial) e conta poupança (ContaPoupanca). As funcionalidades de cada uma são descritas a seguir, mas caso seja necessário, novos atributos e métodos podem ser adicionados.
Crie um programa para simular uma aplicação bancária. O banco possui clientes com contas bancárias (Conta). Além disso, existem outros dois tipos de contas que compartilham informações da conta base, mas que possuem suas próprias peculiaridades: conta especial (ContaEspecial) e conta poupança (ContaPoupanca). As funcionalidades de cada uma são descritas a seguir, mas caso seja necessário, novos atributos e métodos podem ser adicionados.
Conta | ContaPoupanca | ContaEspecial | |
---|---|---|---|
Atributos | Cliente: Nome completo <br> Saldo: Saldo da conta | Taxa: Taxa de rendimento <br> fixada pelo banco para todos os <br> clientes | Limite: Cada cliente <br> possui um limite especial, <br> limitado emno máximo <br> R$10.000,00 |
Métodos | Sacar: Retirar do saldo <br> (não pode deixar a conta <br> negativa) <br> Depositar: Colocar no <br> saldo | Atualizar: Atualiza o saldo <br> baseado na taxa definida | Sacar: Reimplementar a <br> funcionalidade levando <br> em consideração o novo <br> limite |
O programa deve prover as seguintes funcionalidades:
- Abrir contas de qualquer tipo para novos clientes
- Exibir informações de uma determinada conta com o saldo (busca deverá ser feita pelo nome do cliente)
- Atualizar o saldo da conta poupança de todos os clientes
- Sacar ou depositar valores em uma determinada conta
Dica: Na classe que contiver o método principal crie 3 Arrays que