变量

变量的分类:

  局部变量、成员变量、静态变量的区别
类型声明位置从属于生命周期
局部变量方法或语句块内部方法/语句块从声明位置开始,直到方法或语句块执行完毕,局部变量消失

成员变量

(实例变量)

类内部,方法外部对象对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失

静态变量

(类变量)

类内部,static修饰类被加载,静态变量就有效;类被卸载,静态变量消失

 

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

1、在类中的位置不同

成员变量:在类中,但方法外。

局部变量:在方法(或者代码块中,或者方法的声明上(即在参数列表中))。

2、在内存中的位置不同

成员变量:在堆中(方法区中的静态区)

局部变量:在栈中

3、生命周期不同

成员变量:随着对象的创建而存在,随着对象的消失而消失

局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失

4、初始值

成员变量:有默认初始值

局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错(The local variable xxx may not have been initialized)

 

package demo;

public class VariableDemo {
    String name = "成员变量";

    public static void main(String[] args) {
        new VariableDemo().show();
    }

    public void show() {
        String name = "局部变量";
        System.out.println(name);
    }
}

输出结果:局部变量
我们看到输出的是show方法中定义的name变量,在使用变量时遵循的原则是就近原则,那么如何访问到成员变量name呢,Java中提供了 this(表示调用对象本身)这个关键字用于访问成员变量。

package demo;

public class VariableDemo {
    String name = "成员变量";

    public static void main(String[] args) {
        new VariableDemo().show();
    }

    public void show() {
        String name = "局部变量";
        System.out.println(this.name);
    }
}

输出结果:成员变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值