3

私はJavaの初心者で、メインクラスとメインメソッドについて基本的な質問があります。メインメソッドの下に追加などのメソッドを作成しようとしています。「非静的メソッド」のようなエラーをスローします。理由は何ですか?ありがとう...

4

5 に答える 5

3

静的メソッドとは、インスタンス (オブジェクト) でメソッドを呼び出す必要がないことを意味します。非静的 (インスタンス) メソッドは、インスタンスで呼び出す必要があります。考えてみてください: メソッドchangeThisItemToTheColorBlue()があり、それをメイン メソッドから実行しようとすると、どのインスタンスが変更されるでしょうか? それはわからない。someItem のように、インスタンスに対してインスタンス メソッドを実行できます。changeThisItemToTheColorBlue() .

詳細については、http://en.wikipedia.org/wiki/Method_ (computer_programming)#Static_methods を参照してください。

静的メソッドから非静的メソッドを呼び出す唯一の方法は、非静的メソッドを含むクラスのインスタンスを持つことです。定義上、非静的メソッドはあるクラスのインスタンスで呼び出されるメソッドですが、静的メソッドはクラス自体に属します。

インスタンスなしでクラス String の非静的メソッド startsWith を呼び出そうとしたときのようです。

 String.startsWith("Hello");

必要なのは、インスタンスを作成してから非静的メソッドを呼び出すことです。

 String greeting = new String("Hello World");
 greeting.startsWith("Hello"); // returns true 

そのため、インスタンスを作成して呼び出す必要があります。

そして、参照できる静的メソッドについてより明確にするために

https://softwareengineering.stackexchange.com/questions/211137/why-can-static-methods-only-use-static-data

于 2013-10-27T11:25:22.953 に答える