En Java, el literal null se usa para indicar la ausencia de un valor.
Todos los tipos de datos primitivos de Java tienen un valor por defecto y, por lo tanto, nunca pueden ser null.
Por convención, empiezan con una letra minúscula, por ejemplo, int.
Los tipos de referencia contienen la dirección de memoria de un objeto y pueden tener un valor null.
Normalmente empiezan con una letra mayúscula, por ejemplo, String.
Intentar asignar un valor null a una variable primitiva provocará un error en tiempo de compilación, ya que la variable siempre contiene un valor primitivo del tipo asignado.
//Throws compile time error stating the required type is int, but null was provided
int number = null;
Asignar un valor null a una variable de referencia no provocará un error en tiempo de compilación, ya que las variables de referencia pueden ser null.
//No error will occur as the String variable str is nullable
String str = null;
En este ejercicio vas a escribir código para imprimir insignias con el nombre de los empleados de una fábrica.
Los empleados tienen un identificador, un nombre y el nombre de su departamento. Las etiquetas de las insignias de los empleados tienen el siguiente formato: "[id] - name - DEPARTMENT".
Implementa el método Badge.print() para que devuelva la etiqueta de la insignia de un empleado:
Badge badge = new Badge();
badge.print(734, "Ernest Johnny Payne", "Strategic Communication");
// => "[734] - Ernest Johnny Payne - STRATEGIC COMMUNICATION"
Ten en cuenta que el departamento debe escribirse en mayúsculas en la etiqueta.
Debido a una peculiaridad del sistema informático, a veces los nuevos empleados todavía no tienen un identificador cuando empiezan a trabajar en la fábrica.
Como las insignias son obligatorias, recibirán una insignia temporal sin el prefijo del identificador. Modifica el método Badge.print() para admitir a los nuevos empleados que todavía no tienen un identificador:
Badge badge = new Badge();
Badge.print(null, "Jane Johnson", "Procurement");
// => "Jane Johnson - PROCUREMENT"
Incluso el dueño de la fábrica tiene que llevar una insignia en todo momento.
Sin embargo, un dueño no tiene departamento. En este caso, la etiqueta debe mostrar "OWNER" en lugar del nombre del departamento.
Modifica el método Badge.print() para imprimir una etiqueta para el dueño:
Badge badge = new Badge();
badge.print(254, "Charlotte Hale", null);
// => "[254] - Charlotte Hale - OWNER"
Ten en cuenta que es posible que el dueño también sea un nuevo empleado:
Badge badge = new Badge();
badge.print(null, "Charlotte Hale", null);
// => "Charlotte Hale - OWNER"
Regístrate en Exercism para aprender y dominar Java con 26 conceptos158 ejercicios y mentoría humana real, todo gratis.