同名のメンバー変数とローカル変数が存在する場合、メソッド内ではデフォルトでローカル変数のデータにアクセスします。 this キーワード を通じてアクセスされる変数。 1 つのコンストラクターで別のコンストラクターを呼び出してオブジェクトを初期化できます。
1. クラスのメソッド定義で this キーワードを使用し、メソッド 2 を使用してオブジェクトの参照を表します。誰が誰であるかを示す必要がある場合は、this## を使用します。現在メソッドを使用しているオブジェクトです。#3. これは、メソッド内のメンバー変数とパラメーター変数が同じ名前を持つ状況に対処するために使用できる場合があります
#4.これは、変数であり、その値は現在のオブジェクトへの参照です注:
同じ名前のメンバー変数とローカル変数がある場合は、ローカル変数にアクセスします。メソッド内 (Java はアクセスに「近接原理」メカニズムを採用しています。) 変数がメソッド内でアクセスされ、その変数がメンバー変数としてのみ存在する場合、Java コンパイラーは変数の前に this キーワードを追加します。
/* this关键字调用其他的构造函数要注意的事项: 1. this关键字调用其他的构造函数时,this关键字必须要位于构造函数中 的第一个语句。 2. this关键字在构造函数中不能出现相互调用 的情况,因为是一个死循环。 */ class Student{ int id; //身份证 String name; //名字 //目前情况:存在同名 的成员 变量与局部变量,在方法内部默认是使用局部变量的。 public Student(int id,String name){ //一个函数的形式参数也是属于局部变量。 this(name); //调用了本类的一个参数的构造方法 //this(); //调用了本类无参的 构造方法。 this.id = id; // this.id = id 局部变量的id给成员变量的id赋值 System.out.println("两个参数的构造方法被调用了..."); } public Student(){ System.out.println("无参的构造方法被调用了..."); } public Student(String name){ this.name = name; System.out.println("一个参数的构造方法被调用了..."); } } class Demo7 { public static void main(String[] args) { Student s = new Student(110,"铁蛋"); System.out.println("编号:"+ s.id +" 名字:" + s.name); /* Student s2 = new Student("金胖子"); System.out.println("名字:" + s2.name); */ } }Java の知識をさらに深めたい場合は、
Java 基本チュートリアル
を参照してください。以上がJava はメンバー変数にアクセスしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。