學習軌道
/
Java
Java
/
練習
/
行銷部的 Tim
行銷部的 Tim

行銷部的 Tim

學習練習

簡介

可空性

在 Java 中,null 常值用來表示缺少值。

Java 的基本資料型態都有預設值,因此永遠不會是 null。依照慣例,它們以小寫字母開頭,例如 int。

參考型別存放物件的記憶體位址,而且值可以是 null。它們通常以大寫字母開頭,例如 String。

如果把 null 指定給基本資料型態的變數,會產生編譯時期錯誤,因為這種變數永遠存放著所指定型別的基本值。

//Throws compile time error stating the required type is int, but null was provided
int number = null;

把 null 值指定給參考型別的變數則不會產生編譯時期錯誤,因為參考變數可以是 null。

//No error will occur as the String variable str is nullable
String str = null;

說明

在這項練習中,你將撰寫程式碼,為工廠員工印製名牌。

1. 為員工印製名牌

員工有 ID、姓名和部門名稱。員工名牌標籤的格式如下:"[id] - name - DEPARTMENT"。 請實作 Badge.print() 方法,回傳員工的名牌標籤:

Badge badge = new Badge();
badge.print(734, "Ernest Johnny Payne", "Strategic Communication");
// => "[734] - Ernest Johnny Payne - STRATEGIC COMMUNICATION"

請注意,標籤上的部門名稱必須是大寫。

2. 為新進員工印製名牌

由於電腦系統的某個小毛病,新進員工剛到工廠上班時,有時還沒有 ID。 由於名牌是必備的,他們會拿到一張沒有 ID 前綴的臨時名牌。請修改 Badge.print() 方法,讓它支援還沒有 ID 的新進員工:

Badge badge = new Badge();
Badge.print(null, "Jane Johnson", "Procurement");
// => "Jane Johnson - PROCUREMENT"

3. 為老闆印製名牌

即使是工廠的老闆,也必須隨時佩戴名牌。 不過,老闆沒有所屬部門。在這種情況下,標籤應該印出 "OWNER",而不是部門名稱。 請修改 Badge.print() 方法,為老闆印出標籤:

Badge badge = new Badge();
badge.print(254, "Charlotte Hale", null);
// => "[254] - Charlotte Hale - OWNER"

請注意,老闆也可能同時是新進員工:

Badge badge = new Badge();
badge.print(null, "Charlotte Hale", null);
// => "Charlotte Hale - OWNER"
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Java Exercism

準備好開始 行銷部的 Tim 了嗎?

註冊 Exercism,透過 26 個概念158 個練習 和真人引導來學習並精通 Java,全部免費。