JAva thisキーワード


JAvaはthisキーワードを提供し、thisキーワードはオブジェクトのデフォルトの参照です.thisが現れる場所によって、thisがデフォルトオブジェクトとしての参照には2つの形式があります.1、構築方法に現れます.thisは、構築方法の実行時に初期化されたオブジェクトを表します.2,メソッドに現れ,thisはメソッドを呼び出すオブジェクトを表す.このメソッドを呼び出した人は、thisが誰を表しますか.thisの最大の役割は、クラスのメソッドを呼び出し、クラスの別のメソッドまたは属性を呼び出すことです.次のようになります.
public class Dog{
    private boolean isRun = false; 
    public void jump(){
        System.out.println("    jump  ...");
    }
    //run()    jump  
    public void run(){
        //         
        this.isRun = true;
        this.jump();
        System.out.println("    run  ...");
    }
}

オブジェクトの1つのメソッドが別のメソッドに依存するシナリオは、このように一般的です.したがってjavaは、オブジェクトの1つのメソッドが別のメソッドまたはプロパティを呼び出すときにthisキーを省略する場合があります.すなわち、上記のrun()は、以下のように変更することができる.
    //run()    jump  
    public void run(){
        //         
        isRun = true;
        jump();
        System.out.println("    run  ...");
    }

ほとんどの場合、メソッドが同じインスタンスのプロパティにアクセスする場合は、thisキーを指定する必要はありません.ただし、メソッドのローカル変数とプロパティが同じ(名前が同じ)場合、メソッドでプロパティを使用する必要がある場合は、thisキーを使用する必要があります.たとえば、次のようにします.
    //run()    jump  
    public void run(){
        boolean isRun = fasle;
        //         
        //    this        isRun  ,      isRun
        this.isRun = true; 
        jump();
        System.out.println("    run  ...");
    }

我々はプログラミング時に規範的に言えば,メソッドの局所変数の名前をクラスの属性名と同じにすることはできない.ここではthisの役割を説明するために書く.
注意:javaの構文規定staticメソッドではthisキーワードは使用できません.そうしないと、コンパイル時に構文エラーが表示されます.