this关键字 成员变量和局部变量

this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)

* 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
* 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量

 总结:

this的作用是:区分局部变量和成员变量

this的本质是:所在方法调用者的地址值

 

public class Student {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}

3. 成员变量和局部变量

3.1 成员变量和局部变量的区别

* 类中位置不同:成员变量(类中方法外)局部变量(方法内部或方法声明上)
* 内存中位置不同:成员变量(堆内存)局部变量(栈内存)
* 生命周期不同:成员变量(随着对象的存在而存在,随着对象的消失而消失)局部变量(随着方法的调用而存在,醉着方法的调用完毕而消失)
* 初始化值不同:成员变量(有默认初始化值)局部变量(没有默认初始化值,必须先定义,赋值才能使用)

 

总结:

就近原则:

谁离得近,就用谁

public class GirlFriend(){
    private int age;
    public void method(){
        int age = 10;
        sout(this.age);//输出成员变量
    }
}

 

 

posted @ 2022-08-05 09:36  是貓阿啊  阅读(292)  评论(0)    收藏  举报