目录1. 区分成员变量和局部变量2. 调用当前对象的方法3. 调用本类其他构造方法4. 返回当前对象5. 作为参数传递this:表示是当前对象的引用可以理解为谁调用方法谁就代表thisthis的特性this的类型是引用类型。this只能在成员方法中引用除静态成员方法。this是成员方法的隐藏参数编译器会自动传递。编译器编译之后将隐藏的this参数还原在所有方法中所有成员都通过this来访问。this只能代表当前对象,不能引用其他对象。1. 区分成员变量和局部变量classStudent{Stringname;publicvoidsetName(Stringname){namename;}}当局部变量和类成员变量的名字一样时遵循局部变量优先的原则方法中的形参给自己赋值,方法调用结束形参自动销毁成员变量根本没有赋值。为了区别成员变量和局部变量这时就要加上this来区分。classStudent{Stringname;publicvoidsetName(Stringname){this.namename;}}publicstaticvoidmain(String[]args){StudentsnewStudent();s.setName(1234);}在调用s.setName(1234)时this代表对象s因此this.name name等价于s.name 1234。2. 调用当前对象的方法classStudent{publicvoidstudy(){System.out.println(学习);}publicvoidtest(){this.study();}}publicstaticvoidmain(String[]args){Students1newStudent();Students2newStudent();Students3newStudent();s1.test();s2.test();s3.test();}为了区分哪个对象在调用了方法test()。3. 调用本类其他构造方法classStudent{Stringname;intage;publicStudent(){this(Tom,18);}publicStudent(Stringname,intage){this.namename;this.ageage;}}publicstaticvoidmain(String[]args){StudentsnewStudent();System.out.println(s.name);System.out.println(s.age);}这里this(Tom,18);表示调用本类另一个构造方法相当于publicStudent(){Student(Tom,18);// 不能这样写}构造方法之间只能用this(...)调用,且必须写在构造方法第一行。Error❌:publicStudent(){System.out.println(Hello);this(Tom,18);// 编译错误}4. 返回当前对象classStudent{Stringname;publicvoidsetName(Stringname){this.namename;}publicStringgetName(){returnthis.name;}}publicstaticvoidmain(String[]args){StudentsnewStudent();s.setName(1234);System.out.println(s.getName());}返回当前对象或对象的属性值可以做到链式访问。5. 作为参数传递classStudent{Stringname;publicStudent(Stringname){this.namename;}publicvoidprint(){show(this);}publicvoidshow(Students){System.out.println(s.name);}}publicstaticvoidmain(String[]args){StudentsnewStudent(Tom);s.print();}把当前对象作为参数传给其他方法。