class Employee {
int DOB;
int eid;
String name;
double salary;
System.out.println("Employee class");
}
System.out.println
メソッドの中に書いてみたら、うまくいきそうです。ただし、クラス内に直接記述した場合はそうではありません。なぜメソッドが必要なのですか?
class Employee {
int DOB;
int eid;
String name;
double salary;
System.out.println("Employee class");
}
System.out.println
メソッドの中に書いてみたら、うまくいきそうです。ただし、クラス内に直接記述した場合はそうではありません。なぜメソッドが必要なのですか?
これは、実行される他のコードと同じです。メソッド内にある必要があります。(はい、そうです、純粋主義者のために、コンストラクターと静的/インスタンス初期化ブロックも含めています。)考えてみてください-提案したようにメソッドまたはその他の関連コードブロック内になかったら、そのコードはいつ取得されますか実行?それはあまり意味がありません。クラス自体を実行することはできません。そのクラスに含まれる特定のメソッド/コンストラクター/などのみを実行できます。
メソッドとコンストラクターの宣言の外側で許可されるのは、フィールドの宣言だけです。System.out.println()
はフィールド宣言ではないため、許可されていません。
実行されるコードの実行可能ブロック内にある必要があります。そうしないと、いつ実行するかを知る方法がありません。
メソッドである必要はありません。Static
ブロックやブロックなど、他のブロックを使用できますInstance
。
たとえば、ClassLoader によってクラスがロードされるたびにコードを実行する場合は、静的ブロックを使用できます。
public class MyClass{
static{
System.out.println("MyClass loaded");
}
}
そのクラスの新しいインスタンスが作成されるたびにコードを実行する場合は、インスタンス ブロックを使用できます。
public class MyClass{
{
System.out.println("New instance of MyClass created");
}
}
これらのブロックは必要な数だけ持つことができ、クラス本体のどこにでも表示できるということが重要です。ランタイム システムは、それらがクラスに表示される順序で実行されることを保証します。
以下も参照してください。
これは、初期化ブロックと呼ばれる別の方法です。"Employee class"
これは、作成するたびに印刷されますnew Employee
class Employee {
int DOB;
int eid;
String name;
double salary;
{
System.out.println("Employee class");
}
}
あなたの質問について
System.out.printlnがメソッド内にある必要があるのはなぜですか?
Java コンパイラは、このような呼び出しを制限するように設計されています。
これはSystem.out.println
、クラスから呼び出すすべてのメソッドに適用されるだけでなく、適用されます。そのようなクラスを事前に作成することを忘れないで
ください。
独自のクラスのメソッドを呼び出してみてください。MySystem.myout.myprintln();
クラス内にあり、メソッドの外にある場合、それを呼び出すことはできません。たとえば、getData() などのメソッドを作成して呼び出す必要があります。
Employee e = new Employee().getData();
メッセージを適切に書き込みます。
Java クラスを順番に実行されるものと考えないでください。すべての行が読み込まれます。クラスは凝ったツールと考えてください。お気に入り
public class Bathtub {
private int waterLevel;
public void drain() {
waterLevel = 0;
}
public void fill(int newWater) {
waterLevel += newWater;
}
public void playWithDuckies() {
System.out.println("Whee this is fun!!");
}
}
それぞれの方法は、Bathtub で実行できるものです。スイス アーミー ナイフについて考えてみてください。はさみ、ナイフ、ピンセット、コルク抜きがあります。あなたがそれを呼び出すと、それぞれが目的を果たします。
これらのツールの 1 つを外部に置いSystem.out.println()
た場合、それがいつ発生するのか、何が発生するのか、それがどのツールの一部なのかはわかりません。