JAVAでの静的使用

1684 ワード

静態:static知識ポイントstatic知識ポイント
使用法:メンバー(メンバー変数、メンバー関数)を修飾する修飾子です.
メンバーが静的に修飾されると、オブジェクトによって呼び出されるほか、クラス名に直接呼び出される呼び出し方式が1つ増えます.
.静的メンバー.
staticの特徴:
1は、クラスのロードに伴ってロードされます.
2、対象より優先的に存在する.
3は、すべてのオブジェクトによって共有されます.
4、直接クラス名に呼び出されます.
静的コードブロック.
書式:
static
{
静的コード高速での実行文
}
特徴:クラスのロードに伴って実行され、一度だけ実行されます.
クラスを初期化するために使用されます.
構造代買
初期化のデフォルト->初期化の表示->コードブロックを構築して初期化*/
class Person
{
private String name="haha";
private int age;
private static String country="cn";
Person(String name,int age)
{
this.name=name;
this.age=age;
}
        {
System.out.println("       run!");
}
static
{
System.out.println("static run!");
}
        
{
System.out.println(name+",,"+age);
}
public void setName(String name)
{
this.name=name;
}
public void speak()
{
System.out.println(this.name+",,"+this.age);
}
public static void showCountry()
{
System.out.println("country="+country);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p=new Person("zhang",20);
}
}

印刷結果:static run!
コードブロックを構築run!
haha,,0;
説明静的コードブロックは、構築コードブロックよりも先に実行され、クラスのロードに伴ってロードされ、
Person p=new Person("zhangsan",20);
この言葉は何をしましたか.
1、newがPersonを使ったから.class.だからまずPersonを見つけますclassファイルをメモリにロードします.
2,このクラスのstaticコードブロックを実行し,もしあればPersonに与える.classクラスを初期化します.
3,スタックメモリにスペースを開き,メモリアドレスを割り当てる.
4.スタックメモリにオブジェクト固有のプロパティを設定します.デフォルトの初期化を行います.
5、属性を表示初期化します.//初期化を前に示すとhahaをnameに付与する.コードブロックを構築する前に.
6,オブジェクトを構築コードブロック初期化する.
7,オブジェクトに対応するコンストラクション関数を初期化する.
8,メモリアドレスをメモリのp変数に支払う.