0

質問からJavaでのSystem.out.printlnの意味は何ですか?outinSystem.out.printlnは静的フィールドであることがわかりました。

C / C ++のバックグラウンドから、静的メソッドはCの関数と同じであるため、理解しやすいです。ただし、静的フィールドの使用例はわかりません。

何もインスタンス化せずに使用するのと同じように、オブジェクトをインスタンス化せずに複数のメソッドを使用する方法にすぎSystem.out.println ませんか?または、静的フィールドのユースケースはありますか?

4

7 に答える 7

3

static変数/メソッドには、インスタンス化せずに使用できるという特性があるだけでなく、複数のインスタンス間で一貫性があります。

例えば、

public class A {
    public int a = 1;
    public static int b = 2;
}

ここで、とを実行するA a1 = new A()A a2 = new A()A.a2倍のメモリを取得してオブジェクトインスタンスに格納されますA.bが、メモリを取得してインスタンスの外部に格納されるのは1回だけです。

この典型的な例は

a1.b = 3;
System.out.println(a2.b);

これにより、クラス全体、つまりすべてのインスタンスa1の値が変更されたため、2ではなく3が出力されます。b

于 2013-02-17T04:30:05.257 に答える
3

静的フィールドはクラスのプロパティであり、ヒープに割り当てられ、特定のオブジェクトインスタンスから独立しています。

たとえば、静的変数を使用して、クラスのインスタンスの数を数えることができます。

于 2013-02-17T04:25:45.973 に答える
0

このSystemクラスにはOutputStream、標準出力(と呼ばれるout)に書き込むインスタンスが1つしかないため、静的変数になります。標準出力は1つしかないため、複数のインスタンスは必要ありません。

于 2013-02-17T04:26:38.463 に答える
0

静的フィールドは、設定され、クラスをインスタンス化せずに取得できるフィールドです(new ClassName()を使用)。

例えば:

public class MyClass {
  public static int number = 1;
}

上記のコードでは、を使用して「数値」フィールドを取得できますMyClass.number

public class MyClass {
  public int number = 1;
}

次に、コンストラクターを介してMyClassをインスタンス化する必要があります。コンストラクターが宣言されていないため、new MyClass()を使用するだけです。

MyClass cl = new MyClass();
cl.number; // <-- The number
于 2013-02-17T04:26:46.810 に答える
0

outobjectですPrintStream

Systemjava.langパッケージ内のクラスです

printlnPrintStreamクラスのインスタンスメソッド(静的メソッドではない)です

インスタンス化せずにフィールドoutにアクセスするには、フィールドを宣言します。SystemSystemstatic

于 2013-02-17T04:27:23.427 に答える
0

静的フィールドは、(「インスタンス」フィールドとは対照的に)「クラス」フィールドとも呼ばれます。

つまり、最初にクラスをインスタンス化する必要なしに、それらにアクセスできます。

したがって、クラスをインスタンス化することなく、(クラスのようMath.abs()に)クラスメソッドを呼び出すことができます。のようなプロパティにアクセスすることもできます。MathMathMath.PI

また、クラスプロパティを変更すると、そのクラスのすべてのインスタンスに影響します。つまり、インスタンス化されたすべてのオブジェクトにこの値の変更が表示され、1回のプロパティ変更でそれらに影響を与えることができます。

于 2013-02-17T04:27:47.747 に答える
0

Systemの.out変数に加えて、クラスのすべてのインスタンスが更新できる共有変数として使用することもできます。

private static int meatballsConsumed;

または、汎用共有変数として

public static String thisSeemsDangerous;

または定数として

public static final String FLD_OF_DREAMS = "COSTNER,KEVIN";
于 2013-02-17T05:50:14.457 に答える