En Java, le littéral null sert à représenter l'absence de valeur.
Les types primitifs en Java ont tous une valeur par défaut et ne peuvent donc jamais être null.
Par convention, ils commencent par une lettre minuscule, par exemple int.
Les types de référence contiennent l'adresse mémoire d'un objet et peuvent avoir la valeur null.
Ils commencent généralement par une lettre majuscule, par exemple String.
Tenter d'affecter la valeur null à une variable primitive provoque une erreur de compilation, car cette variable contient toujours une valeur primitive du type qui lui a été attribué.
//Throws compile time error stating the required type is int, but null was provided
int number = null;
Affecter la valeur null à une variable de référence ne provoque pas d'erreur de compilation, car les variables de référence peuvent être nulles.
//No error will occur as the String variable str is nullable
String str = null;
Dans cet exercice, tu vas écrire du code pour imprimer des badges nominatifs pour les employés d'une usine.
Les employés ont un identifiant, un nom et un service. Les libellés des badges des employés sont au format suivant : "[id] - name - DEPARTMENT".
Implémente la méthode Badge.print() pour renvoyer le libellé du badge d'un employé :
Badge badge = new Badge();
badge.print(734, "Ernest Johnny Payne", "Strategic Communication");
// => "[734] - Ernest Johnny Payne - STRATEGIC COMMUNICATION"
Note que le service doit être écrit en majuscules sur le libellé.
À cause d'une bizarrerie du système informatique, les nouveaux employés n'ont parfois pas encore d'identifiant lorsqu'ils commencent à travailler à l'usine.
Comme les badges sont obligatoires, ils reçoivent un badge temporaire sans le préfixe d'identifiant. Modifie la méthode Badge.print() pour prendre en charge les nouveaux employés qui n'ont pas encore d'identifiant :
Badge badge = new Badge();
Badge.print(null, "Jane Johnson", "Procurement");
// => "Jane Johnson - PROCUREMENT"
Même le propriétaire de l'usine doit porter un badge en permanence.
Cependant, un propriétaire n'a pas de service. Dans ce cas, le libellé doit afficher "OWNER" à la place du nom du service.
Modifie la méthode Badge.print() pour afficher un libellé pour le propriétaire :
Badge badge = new Badge();
badge.print(254, "Charlotte Hale", null);
// => "[254] - Charlotte Hale - OWNER"
Note qu'il est possible que le propriétaire soit aussi un nouvel employé :
Badge badge = new Badge();
badge.print(null, "Charlotte Hale", null);
// => "Charlotte Hale - OWNER"
Inscris-toi sur Exercism pour apprendre et maîtriser Java avec 26 concepts158 exercices, et un vrai mentorat humain, le tout gratuitement.