1.存在の意味
重力加速度g、円周率πなどの学習の過程で、楕円クラスでπを使用する必要がある場合は、円クラスでもπを使用する必要があります。繰り返し量πを作成するまず、非常に面倒でメモリを浪費します。楕円は円周率から継承できると言う人もいるかもしれませんが、この方法が適用できない場合もあるので、静的2を導入しました
。
import static java.lang.System.out;
public class staticxx {
static int x=999;
public class yf{
final static int y=222;
}
static void love()
{
System.out.println("喜欢你");
}
public static void main (String[] args) {
out.println(staticxx.x);
out.println(staticxx.yf.y);
staticxx.love();
}
}
運転結果
クラスをインスタンス化せず、クラス名を介して変数を直接呼び出していることがわかります。注意深い学生は、yfクラスのyの定義の前にファイナルを追加したことに気付くかもしれません。なぜ、yfクラスは静的クラス、クラスを初期化するとき、静的に変更されたコードが最初に実行されることがわかっています。yfクラスは静的クラスではないため、最初に実行するのは「final static int y = 222;」ですが、クラスがが初期化されていない場合、エラーが報告されます。
もちろん、オブジェクトを介して静的変数を呼び出すこともできます
import static java.lang.System.out;
public class staticxx {
static int x=999;
public class yf{
final static int y=222;
}
static void love()
{
System.out.println("喜欢你");
}
public static void main (String[] args) {
staticxx love=new staticxx();
yf you=love.new yf();
System.out.println(love.x);
System.out.println(you.y);
}
}
ただし、静的メンバーと非静的メンバーを混同しやすいため、通常、この使用はお勧めしません。
上記のコードから、内部クラスを作成するには外部クラスへの参照が必要であることがわかりますが、静的内部クラスは直接作成できます
import static java.lang.System.out;
public class staticxx {
static int x=999;
public static class yf{
final static int y=222;
}
static void love()
{
System.out.println("喜欢你");
}
public static void main (String[] args) {
yf yjl=new yf();
System.out.println(yf.y);
}
}
上記は基本的なメソッドです。
ここにいくつかの忘れられてエラーが発生しやすい知識ポイントがあります:
1。非静的メンバーは静的クラスで呼び出すことができますが、静的メソッドでは呼び出すことができず、thisキーワードは使用
できません; 2。できません非静的クラスで定義する静的メンバー(finalで変更可能);
3.静的メンバーをメソッド本体で宣言することはできません(静的メソッドは受け入れられません)。