學習軌道
/
Java
Java
/
練習
/
做你的千層麵
做你的千層麵

做你的千層麵

學習練習

簡介

基礎

Java 是靜態型別的語言,這代表變數的型別在編譯期就已經確定。 把值指定給一個名稱,就稱為定義變數。 定義變數時,必須明確指定它的型別。

int explicitVar = 10;

更新變數的值是透過=運算子來完成。 在這裡,=並不代表數學上的相等。 它只是把值指定給變數而已。 變數一旦定義之後,型別就永遠不會改變。

int count = 1; // Assign initial value
count = 2;     // Update to new value

// Compiler error when assigning a different type
// count = false;

Java 是一種物件導向語言,而且所有函式都必須定義在一個_類別_中。 class關鍵字就是用來定義類別。

class Calculator {
    // ...
}

類別內的函式稱為_方法_。 每個方法可以有零個或多個參數。 所有參數都必須明確標註型別,參數沒有型別推斷。 同樣地,回傳型別也必須明確標示。 方法使用return關鍵字回傳值。 若要讓其他類別能呼叫某個方法,就必須加上 public 存取修飾子。

class Calculator {
    public int add(int x, int y) {
        return x + y;
    }
}

呼叫方法時,需要指定它的類別與方法名稱,並為方法的每個參數傳入引數。

int sum = new Calculator().add(1, 2);  // here the  "add" method has been called to perform the task of addition

Java 中的作用域定義在{與}字元之間。

Java 支援兩種註解。 單行註解以//開頭,多行註解則放在/*與*/之間。

說明

在這個練習中,你會寫一些程式碼,幫助你照著最愛的食譜做出美味的千層麵。

你有四項任務,全都和烹調千層麵所花的時間有關。

1. 定義預期的烤箱時間(分鐘)

定義expectedMinutesInOven()方法,這個方法不接受任何參數,並回傳千層麵應該在烤箱中烤幾分鐘。根據食譜,預期的烤箱時間是 40 分鐘:

Lasagna lasagna = new Lasagna();
lasagna.expectedMinutesInOven();
// => 40

2. 計算剩餘的烤箱時間(分鐘)

定義remainingMinutesInOven()方法,這個方法接受千層麵已經在烤箱中的實際分鐘數作為參數,並根據上一項任務的預期烤箱時間,回傳千層麵還需要在烤箱中待幾分鐘。

Lasagna lasagna = new Lasagna();
lasagna.remainingMinutesInOven(30);
// => 10

3. 計算準備時間(分鐘)

定義preparationTimeInMinutes()方法,這個方法接受你加到千層麵中的層數作為參數,並回傳你準備千層麵花了多少分鐘,假設每一層需要花 2 分鐘準備。

Lasagna lasagna = new Lasagna();
lasagna.preparationTimeInMinutes(2);
// => 4

4. 計算總共的工作時間(分鐘)

定義totalTimeInMinutes()方法,這個方法接受兩個參數:第一個參數是你加到千層麵中的層數,第二個參數是千層麵已經在烤箱中的分鐘數。這個函式應該回傳你烹調千層麵總共花了幾分鐘,也就是準備時間的分鐘數,加上千層麵當下已經在烤箱中待的分鐘數。

Lasagna lasagna = new Lasagna();
lasagna.totalTimeInMinutes(3, 20);
// => 26
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Java Exercism

準備好開始 做你的千層麵 了嗎?

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