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