今日分享 – Java基础学习-this关键字

this的作用:

  • this表示的是当前对象本身
  • 更准确地说,this代表当前对象的一个引用。

构造方法中使用this:

  • 使用this来调用其它构造方法
  • 位置:必须是第一条语句

当构造方法中的参数名跟类的成员变量名称一样的时候,可以使用this代表当前对象

(*******有了this之后,可以将构造方法的参数跟成员变量保持一致*******)

public class ThisDemo1 {
    String name;
    int age;
    //构造方法中使用this
    public ThisDemo1(String name,int age){
        this.name =name;
        this.age = age;
    }

    public static void main(String[] args) {
        ThisDemo1 td = new ThisDemo1("lisi",23);
        System.out.println(td.name);
        System.out.println(td.age);
    }
}

当构造方法中需要调用其他的构造方法时,可以使用this().

public class ThisDemo {
    String name;
    int age;
    public ThisDemo(){

    }
    public ThisDemo(String name){
        System.out.println("one");
        this.name =name;
    }

    public ThisDemo(String name,int age){
        this(name);//this调用其他构造方法,必须位于方法体的第一行
        System.out.println("two");
        this.name =name;
        this.age = age;
    }

    public static void main(String[] args) {
        ThisDemo td = new ThisDemo("lisi",23);
        System.out.println(td.name);
        System.out.println(td.age);
    }
}

普通方法中使用this:

  • 区分类成员属性和方法的形参
  • 调用当前对象的其他方法(可以省略)
  • 位置:任意位置

当多个普通方法之间需要调用的时候,可以使用this来进行调用,指的是当前对象的其他方法

public class ThisDemo1 {
    String name;
    int age;
    //构造方法中使用this
    public ThisDemo1(String name,int age){
        this.name =name;
        this.age = age;
    }

    public void test1(){
        System.out.println("test1");
    }
    //普通方法中使用this
    public void test2(){
        System.out.println("test2");
        this.test1();
    }

    public static void main(String[] args) {
        ThisDemo1 td = new ThisDemo1("lisi",23);
        System.out.println(td.name);
        System.out.println(td.age);
        td.test2();
    }
}

成员变量使用this:

当方法中的参数名称跟成员变量保持一致的时候,使用this.变量名称表示的是对象的值,而使用变量名称表示形参列表中的值

public class ThisDemo1 {
    String name;
    int age;
    //构造方法中使用this
    public ThisDemo1(String name,int age){
        this.name =name;
        this.age = age;
    }

    public void test1(){
        System.out.println("test1");
    }
    //普通方法中使用this
    public void test2(String name){
        System.out.println("test2");
        this.test1();
        //打印参数里面的属性
        System.out.println(name);
        //打印当前对象的属性
        System.out.println(this.name);
    }

    public static void main(String[] args) {
        ThisDemo1 td = new ThisDemo1("lisi",23);
        System.out.println(td.name);
        System.out.println(td.age);
        td.test2("huahua");
    }
}

注意:this不能用于static方法

正文完