Loading

成员变量和局部变量

对比 成员变量 局部变量
声明位置 在类的范围里定义的变量 在方法里定义的变量
作用域 其所在的整个类 从定义的位置开始到其所在语句块结束
默认初始值 没有
存储 未被static修饰的成员变量也叫实例变量,它存储于对象所在的堆内存中,生命周期与对象相同;
被static修饰的成员变量也叫类变量,它存储于方法区中,生命周期与当前类相同。
局部变量存储于栈内存中,作用的范围结束,变量空间会自动的释放

注意:
如果成员变量与局部变量的名字相同,则在局部变量的作用范围中,优先使用的是该局部变量;如果想使用成员变量,则需要关键字this来引用成员变量。

上代码:

public class Dog {
    String dogName = "二哈";

    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.getDogName();
    }

    public void getDogName() {
        // 局部变量与成员变量名字相同,都是dogName
        String dogName = "萨摩";
        // 此处获取的是局部变量的值,输出“萨摩”
        System.out.println(dogName);
        // 此处获取的是成员变量的值,输出“二哈”
        System.out.println(this.dogName);
    }
}

posted @ 2021-11-03 17:07  菜月昴  阅读(124)  评论(0编辑  收藏  举报