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;
}
}
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:
"Driven <METERS> meters"."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.
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();
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"
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%"
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"
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%"
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"
Crie sua conta no Exercism para aprender e dominar Java com 26 conceitos158 exercícios e mentoria humana de verdade, tudo de graça.