Trilhas
/
Java
Java
/
Exercícios
/
O carrinho de brinquedo de Jedlik
O carrinho de brinquedo de Jedlik

O carrinho de brinquedo de Jedlik

Exercício de aprendizagem

Introdução

Classes

A principal construção orientada a objetos em Java é a classe, que combina dados (campos) e comportamento (métodos). Os campos e os métodos de uma classe são conhecidos como seus membros.

O acesso aos membros pode ser controlado por meio de modificadores de acesso, sendo os dois mais comuns:

  • public: o membro pode ser acessado por qualquer código (sem restrições).
  • private: o membro só pode ser acessado por código da mesma classe.

Você pode pensar em uma classe como um modelo para criar instâncias dessa classe. Para criar uma instância de uma classe (também conhecida como objeto), usa-se a palavra-chave new:

class Car {
}

// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();

Os campos têm um tipo e um nome (definidos em camelCase) e podem ser definidos em qualquer lugar dentro de uma classe (por convenção, escritos em PascalCase):

class Car {
    // Accessible by anyone
    public int weight;

    // Only accessible by code in this class
    private String color;
}

Você pode, opcionalmente, atribuir um valor inicial a um campo. Se um campo não especificar um valor inicial, ele será definido com o valor padrão do seu tipo. Os valores dos campos de uma instância podem ser acessados e atualizados usando a notação de ponto.

class Car {
    // Will be set to specified value
    public int weight = 2500;

    // Will be set to default value (0)
    public int year;
}

Car newCar = new Car();
newCar.weight; // => 2500
newCar.year;   // => 0

// Update value of the field
newCar.year = 2018;

Campos privados geralmente são atualizados como efeito colateral da chamada de um método. Esses métodos normalmente não retornam nenhum valor e, nesse caso, o tipo de retorno deve ser void:

class CarImporter {
    private int carsImported;

    public void importCars(int numberOfCars)
    {
        // Update private field from public method
        carsImported = carsImported + numberOfCars;
    }
}

Instruções

Neste exercício, você vai brincar com um carro de controle remoto, que você finalmente juntou dinheiro suficiente para comprar.

Os carros começam com a bateria cheia (100%). Cada vez que você dirige o carro com o controle remoto, ele percorre 20 metros e consome um por cento da bateria.

O carro de controle remoto tem um display de LED sofisticado que mostra duas informações:

  • A distância total percorrida, exibida como: "Driven <METERS> meters".
  • A carga restante da bateria, exibida como: "Battery at <PERCENTAGE>%".

Se a bateria estiver em 0%, você não pode mais dirigir o carro e o display da bateria vai mostrar "Battery empty".

Você tem seis tarefas, e cada uma delas vai trabalhar com instâncias de carro de controle remoto.

1. Compre um carro de controle remoto novinho em folha

Implemente o método (estático) JedliksToyCar.buy() para retornar uma instância novinha em folha de carro de controle remoto:

JedliksToyCar car = JedliksToyCar.buy();

2. Exiba a distância percorrida

Implemente o método JedliksToyCar.distanceDisplay() para retornar a distância como ela aparece no display de LED:

JedliksToyCar car = JedliksToyCar.buy();
car.distanceDisplay();
// => "Driven 0 meters"

3. Exiba a porcentagem da bateria

Implemente o método JedliksToyCar.batteryDisplay() para retornar a porcentagem da bateria como ela aparece no display de LED:

JedliksToyCar car = JedliksToyCar.buy();
car.batteryDisplay();
// => "Battery at 100%"

4. Atualize o número de metros percorridos ao dirigir

Implemente o método JedliksToyCar.drive() que atualiza o número de metros percorridos:

JedliksToyCar car = JedliksToyCar.buy();
car.drive();
car.drive();
car.distanceDisplay();
// => "Driven 40 meters"

5. Atualize a porcentagem da bateria ao dirigir

Atualize o método JedliksToyCar.drive() para atualizar a porcentagem da bateria:

JedliksToyCar car = JedliksToyCar.buy();
car.drive();
car.drive();
car.batteryDisplay();
// => "Battery at 98%"

6. Impeça que o carro ande quando a bateria acabar

Atualize o método JedliksToyCar.drive() para não aumentar a distância percorrida nem diminuir a porcentagem da bateria quando a bateria estiver descarregada (em 0%):

JedliksToyCar car = JedliksToyCar.buy();

// Drain the battery
// ...

car.distanceDisplay();
// => "Driven 2000 meters"

car.batteryDisplay();
// => "Battery empty"
Editar via GitHub O link abre em uma nova janela ou aba
Java Exercism

Tudo pronto para começar O carrinho de brinquedo de Jedlik?

Crie sua conta no Exercism para aprender e dominar Java com 26 conceitos158 exercícios e mentoria humana de verdade, tudo de graça.