t1
は静的か非静的ですか?t1は静的であるか静的でないか?
class Test {
void display() {
System.out.println("hello");
}
public static void main(String a[]) {
Test t1 = new Test(); //object created
t1.display();
}
}
t1
t1
は静的か非静的ですか?t1は静的であるか静的でないか?
class Test {
void display() {
System.out.println("hello");
}
public static void main(String a[]) {
Test t1 = new Test(); //object created
t1.display();
}
}
t1
ローカル変数であり、静的変数/フィールドは、独立して、メソッド実行の存在している間、彼らは方法の範囲に住んでいるので、ローカル変数は静的ではありません。
静的変数/フィールドはメソッド外で宣言する必要があります。
スタティックコンテキスト内には存在しますが、スタティックではありません。 static
記述子は、クラスレベルのエンティティにのみ適用されます。あなたはEasyMath.PI
を使用して、直接PI
の値を参照します
class EasyMath {
public static final double PI = 3.17;
public static int quadruple(int i) {
int num = i * 4;
return num;
}
}
:このクラス(のjava.lang.Mathクラスに建てられたの簡易版)を考えてみましょう。これはクラス変数です。これはクラスのインスタンスではなく、EasyMath
クラスに直接属します。
同様に、quadruple
メソッドもクラスから参照してください:EasyMath.quadruple(6)
。これはメソッドが静的なため、クラスに直接属しているからです。
quadruple
メソッドでは、num
という名前のローカル変数が定義されています。ただし、EasyMath.num
を使用して参照することはできません。それはクラスに属していません。
これは静的なquadruple
メソッドにローカルスコープであるため、そのメソッドでのみ使用できます。別の静的メソッドは、それを見たり参照したりすることができません。同様に、インスタンスメソッドがあった場合でも、それを見ることはできません。ローカル変数は決して静的ではありません。
あなたはどう思いますか?何が静的になるのでしょうか? – assylias
[Java 'static'](https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) - クラスメンバーの理解 – nbrooks
staticキーワード。 –