java中的成员变量分为_Java的成员变量、局部变量

变量(按作用域划分变量类型)

类中方法外的变量是成员变量,类中方法内的变量是局部变量

  • 成员变量
    • 类变量(static)
    • 实例变量
  • 局部变量
    • 形参(方法签名)
    • 方法局部变量
    • 代码块局部变量
      • 类代码块
      • 实例代码块

类变量与成员变量的区别

  • 生命周期

类变量是类加载过程中的准备阶段就已经分配内存了,直至类被销毁,类变量的内存才会释放。而实例变量是在类的实例创建(创建对象)时存在直至实例被销毁

  • 访问方式

访问类变量的方式有两种:类.类变量、实例.类变量。除了类本身可以对类变量进行修改外,类的实例也会对类变量进行修改,且其他实例也会看到变化。

访问实例变量的方式就只有一种:实例.实例变量。每个实例的实例变量都不对其他实例可见。

局部变量知识点

类代码块在实例代码块被加载之前就已经加载了,原因与类变量和实例变量的区别相似,类代码块是在在类加载过程中就已经被加载了,而实例变量是在类加载之后、对象初始化过程中才加载。

下面示例,可以做一个变量的知识点补充

package VAR.demo01;/** 变量:成员变量 局部变量=================*局部变量:形参(方法签名) 方法局部变量 代码块局部变量=================* 代码块局部变量,即类中定义好的代码块* 类代码块和实例代码块* 类代码块在实例代码块被加载之前就已经加载了** */public class Test{    static int a = 100;//成员变量 类变量(static) a    int b = 200;//成员变量 实例变量 b    //局部变量  代码块局部变量 我是实例代码块  c    {        int c = 400;        System.out.println(c);    }    //局部变量  代码块局部变量 我是类代码块 d    static{        int d = 500;        System.out.println(d);    }    //局部变量 形参(方法签名) f    public void test(int f){        int e = 300;//局部变量 方法局部变量 e        System.out.println(e);        System.out.println(f);    }    public static void main(String[] args){        Test t = new Test();        System.out.println(a);        System.out.println(t.b);        t.test(600);        /*        * 输出结果        * d 500        * c 400        * a 100        * b 200        * e 300        * f 600        * */    }}

还有一点要注意:

成员变量,如果没有赋值,会有默认赋值

局部变量,如果没有赋值,需要手动赋值才能使用

package VAR.demo01;/** 变量:成员变量 局部变量=================*局部变量:形参(方法签名) 方法局部变量 代码块局部变量=================* 代码块局部变量,即类中定义好的代码块* 类代码块和实例代码块* 类代码块在实例代码块被加载之前就已经加载了** */public class TestDefault {    static int a = 100;//成员变量 类变量(static) a 无需赋值    int b = 200;//成员变量 实例变量 b 无需赋值    public static void main(String[] args){        int c=300;//局部变量 方法局部变量 c 需要手动赋值才能使用        TestDefault t = new TestDefault();        System.out.println(a);        System.out.println(t.b);        System.out.println(c);        /*        * 输出结果        * a 100        * b 200        * c 300        * */    }}

局部变量不赋值的话,编译器会报错

8880d4165f2dfccd2d427dc4078440bc.png
5d42dfb3f25cc2b146b96ec00f2b2ee8.png

局部变量c没有赋值,编译报错

128264486b348a7ec131adc4242eaa16.png

局部变量c没有赋值,javac编译器报错

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值