| English | 意味 |
|---|---|
| class method/klæs ˈmeθəd/ | クラスメソッド |
| static method/ˈstætɪk ˈmeθəd/ | スタティックメソッド |
クラスメソッドの呼び出し
- クラスメソッド(スタティックメソッド)はオブジェクトではなく、クラス自体に属します。
- クラス名とドットを使って呼び出します:
Math.sqrt(16)、Integer.parseInt("42")。 - オブジェクトが存在する必要はありません—メソッドはクラスに存在します。
- ヘッダー内のキーワード
staticが、メソッドをクラスメソッドであることを示します。
引数を渡す
- 引数を括弧の中に置きます:
Math.max(3, 8)。 - 値は、位置によってメソッドのパラメータに対応付けられます。
- 正しい数と型の引数を渡さなければ、コンパイルできません。
- 引数がなくても、空の括弧は書く必要があります:
sc.nextLine()。
返り値を使用する
- 多くのクラスメソッドは値を返します—変数に格納してください。
double r = Math.sqrt(16);は4.0をrに格納します。- 有用な返り値を無視することは、通常、結果を格納することを忘れたことを意味します。
- 返り値はそのまま別の式に渡すこともできます。
スタティック vs. インスタンス — 最初の確認
- **クラス(スタティック)**メソッドはクラスに対して呼び出します:
Math.abs(-5)。 - インスタンスメソッド(次のレッスン)はオブジェクトに対して呼び出します:
word.length()。 - 見分けるポイント: クラス名の後にドットがあるか、オブジェクトの後にドットがあるかです。
- クラスメソッドにはオブジェクトは不要ですが、インスタンスメソッドには必要です。
クラスメソッドはクラス名に対して呼び出し、オブジェクトに対してではありません: Math.sqrt(16)、決して m.sqrt(16) でありません。 引数の数と型をメソッドのパラメータに合わせ、返り値を格納することを忘れないでください—Math.sqrt(16); だけで計算して 4.0 を破棄してしまいます。引数がなくても空の括弧は必須です。
クラスメソッド呼び出しの組み合わせ:
int bigger = Math.max(3, 8);→biggerは8です。double root = Math.sqrt(bigger + 1);→Math.sqrt(9)→3.0.- 返り値(
8)をそのまま次の呼び出しに渡します。
クラス(静的)メソッドはクラス名に対して呼び出します: Math.sqrt(16)。右側の引数(位置と型で一致するもの)を括弧内に渡し、返り値を変数に格納して使用します。これはオブジェクトに対して呼び出すインスタンスメソッドとは異なります。
スタティックメソッドの呼び出し
Math.maxはクラスに対して呼び出され、より大きい値を返す。
Mathクラスのスタティックメソッドsqrtを正しく呼び出すにはどうすればよいか?
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
クラスメソッドはクラス名にドットを使って呼び出す。
Math.max(3, 8)は何を返すか?
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
maxは2つの引数のうち大きい方を返す。
メソッドをクラス(スタティック)メソッドとしてマークするキーワードは...
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
staticはメソッドがオブジェクトではなくクラスに属することを意味する。
Math.sqrt(16); を単独の行に書くと、後で使うために4.0を格納する。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
4.0を計算して破棄するだけである — 返り値を格納しなければならない。
クラスメソッドはクラス名に対して呼び出し、インスタンスメソッドはオブジェクトに対して呼び出す。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
Math.abs(-5) (クラス) と word.length() (オブジェクト)。