关键字this用法之一:在任何(非静态)方法里调用正在访问同一对象的其他特征(属性和方法)
- public class TestThis01{
- public void foo(){
- this.boo(); //调用同一对象的其他方法
- }
- public void boo(){
- System.out.println("调用同一对象的其他方法");
- }
- }
关键字this用法之二:在类的任何构造方法内可以调用该类的其他构造方法
- public class Student{
- private String name;//声明为私有提供公共访问器进行访问以保证数据的完整性(建议这样)
- private int id;//同上
- Private String from;//同上
- public Student(){ //默认的构造方法
- Student s=new Student(); //NEW一个Student的对象s
- }
- public Student(String n){ //一个参数的构造方法
- this(); //调用默认的构造方法创建一个对象(必须放在构造方法的第一行)
- this.setName(n); //this的方法之一调用同一对象的其他方法
- }
- public Student(String n,int num){ //两个参数的构造方法
- this(n); //调用一个参数的构造方法(必须放在构造方法的第一行)
- this.setId(num);
- }
- public Student(String n,int num,String f){ //三个单数的构造方法
- this(n,num);//调用两个参数的构造方法(必须放在构造方法的第一行)
- this.setFrom();
- }
- public void setName(String n){//公共构造器
- name=n;
- }
- public String getName(){//同上
- return name;
- }
- public void setId(int num){//同上
- id=num;
- }
- public int getId(){//同上
- return id;
- }
- public void setFrom(String f){//同上
- from=f;
- }
- public String getName(){//同上
- return from;
- }
关键字this用法之三:自引用
- public class Student(){
- Teacher teacher;//创建一个Teacher类的引用teacher
- public void selectTeacher(Teacher t){ //传于一个Teacher类的对象
- t.addStudent(this);//Student对象(selectTeacher方法正在执行的这个Student对象)的引用作为方法的参数传给在Teacher对象用于执行Teacher类的addStudent方法
- }
- }
- class Teacher(){
- Student student;
- public void addStudent(Student s){
- student=s;
- }
- }