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.

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.
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.
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.
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.
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