La construction orientée objet fondamentale en Java est la classe, qui combine des données (champs) et un comportement (méthodes). Les champs et les méthodes d'une classe sont appelés ses membres.
L'accès aux membres peut être contrôlé par des modificateurs d'accès, dont les deux plus courants sont :
public : le membre est accessible depuis n'importe quel code (aucune restriction).private : le membre n'est accessible que depuis le code de la même classe.On peut voir une classe comme un modèle pour créer des instances de cette classe.
Pour créer une instance d'une classe (aussi appelée objet), on utilise le mot-clé new :
class Car {
}
// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();
Les champs ont un type et un nom (défini en camelCase) et peuvent être définis n'importe où dans une classe (dont le nom suit par convention le PascalCase) :
class Car {
// Accessible by anyone
public int weight;
// Only accessible by code in this class
private String color;
}
On peut éventuellement affecter une valeur initiale à un champ. Si un champ ne spécifie pas de valeur initiale, il prend la valeur par défaut de son type. On peut accéder aux valeurs des champs d'une instance et les modifier avec la notation pointée.
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;
Les champs privés sont généralement mis à jour par effet de bord, lorsqu'on appelle une méthode.
Ces méthodes ne renvoient en général aucune valeur, auquel cas le type de retour doit être void :
class CarImporter {
private int carsImported;
public void importCars(int numberOfCars)
{
// Update private field from public method
carsImported = carsImported + numberOfCars;
}
}
Dans cet exercice, tu vas jouer avec une voiture télécommandée, que tu as enfin pu t'offrir après avoir économisé assez d'argent.
Les voitures commencent avec une batterie pleine (100 %). Chaque fois que tu fais rouler la voiture avec la télécommande, elle parcourt 20 mètres et vide un pour cent de la batterie.
La voiture télécommandée dispose d'un écran LED sophistiqué qui affiche deux informations :
"Driven <METERS> meters"."Battery at <PERCENTAGE>%".Si la batterie est à 0 %, tu ne peux plus faire rouler la voiture et l'écran de la batterie affiche "Battery empty".
Tu as six tâches, chacune d'elles portant sur des instances de voiture télécommandée.
Implémente la méthode (statique) JedliksToyCar.buy() pour renvoyer une instance de voiture télécommandée toute neuve :
JedliksToyCar car = JedliksToyCar.buy();
Implémente la méthode JedliksToyCar.distanceDisplay() pour renvoyer la distance telle qu'elle est affichée sur l'écran LED :
JedliksToyCar car = JedliksToyCar.buy();
car.distanceDisplay();
// => "Driven 0 meters"
Implémente la méthode JedliksToyCar.batteryDisplay() pour renvoyer le pourcentage de la batterie tel qu'il est affiché sur l'écran LED :
JedliksToyCar car = JedliksToyCar.buy();
car.batteryDisplay();
// => "Battery at 100%"
Implémente la méthode JedliksToyCar.drive() qui met à jour le nombre de mètres parcourus :
JedliksToyCar car = JedliksToyCar.buy();
car.drive();
car.drive();
car.distanceDisplay();
// => "Driven 40 meters"
Mets à jour la méthode JedliksToyCar.drive() pour qu'elle mette à jour le pourcentage de la batterie :
JedliksToyCar car = JedliksToyCar.buy();
car.drive();
car.drive();
car.batteryDisplay();
// => "Battery at 98%"
Mets à jour la méthode JedliksToyCar.drive() pour qu'elle n'augmente plus la distance parcourue et ne diminue plus le pourcentage de la batterie quand la batterie est vide (à 0 %) :
JedliksToyCar car = JedliksToyCar.buy();
// Drain the battery
// ...
car.distanceDisplay();
// => "Driven 2000 meters"
car.batteryDisplay();
// => "Battery empty"
Inscris-toi sur Exercism pour apprendre et maîtriser Java avec 26 concepts158 exercices, et un vrai mentorat humain, le tout gratuitement.