Em Java, o literal null é usado para denotar a ausência de um valor.
Os tipos de dados primitivos em Java têm todos um valor padrão e, por isso, nunca podem ser null.
Por convenção, eles começam com uma letra minúscula, por exemplo int.
Os tipos de referência contêm o endereço de memória de um objeto e podem ter o valor null.
Em geral, eles começam com uma letra maiúscula, por exemplo String.
Tentar atribuir a uma variável primitiva um valor null resultará em um erro em tempo de compilação, pois a variável sempre contém um valor primitivo do tipo atribuído.
//Throws compile time error stating the required type is int, but null was provided
int number = null;
Atribuir a uma variável de referência um valor null não resultará em um erro em tempo de compilação, pois variáveis de referência são anuláveis.
//No error will occur as the String variable str is nullable
String str = null;
Neste exercício, você vai escrever código para imprimir crachás com nomes de funcionários de uma fábrica.
Funcionários têm um ID, um nome e o nome do departamento. Os rótulos dos crachás dos funcionários seguem o seguinte formato: "[id] - name - DEPARTMENT".
Implemente o método Badge.print() para retornar o rótulo do crachá de um funcionário:
Badge badge = new Badge();
badge.print(734, "Ernest Johnny Payne", "Strategic Communication");
// => "[734] - Ernest Johnny Payne - STRATEGIC COMMUNICATION"
Repare que o departamento deve aparecer em maiúsculas no rótulo.
Por causa de uma peculiaridade do sistema do computador, às vezes os funcionários novos ainda não têm um ID quando começam a trabalhar na fábrica.
Como os crachás são obrigatórios, eles recebem um crachá temporário sem o prefixo do ID. Modifique o método Badge.print() para aceitar funcionários novos que ainda não têm um ID:
Badge badge = new Badge();
Badge.print(null, "Jane Johnson", "Procurement");
// => "Jane Johnson - PROCUREMENT"
Até o dono da fábrica precisa usar um crachá o tempo todo.
No entanto, o dono não tem um departamento. Nesse caso, o rótulo deve imprimir "OWNER" no lugar do nome do departamento.
Modifique o método Badge.print() para imprimir um rótulo para o dono:
Badge badge = new Badge();
badge.print(254, "Charlotte Hale", null);
// => "[254] - Charlotte Hale - OWNER"
Repare que é possível que o dono também seja um funcionário novo:
Badge badge = new Badge();
badge.print(null, "Charlotte Hale", null);
// => "Charlotte Hale - OWNER"
Crie sua conta no Exercism para aprender e dominar Java com 26 conceitos158 exercícios e mentoria humana de verdade, tudo de graça.