【Java之轨迹】第二章:局部变量、实例变量和类变量总结

◉ 变量分类

① 局部变量(在方法体中声明)

② 成员变量(在方法体外声明)
—— 1. 实例变量(无static修饰)
—— 2. 类变量 [也称静态变量](有static修饰)

◉ 变量总结


# 局部变量

① 在方法体中声明
② 存放在栈内存
③ 当方法执行时创建,执行完毕后被销毁
④ 访问修饰符不能用于局部变量
⑤ 没有默认值,被声明后必须经过初始化才可以使用


# 实例变量

① 也称 “对象变量” ,在类体中、方法体外声明
② 存放在对象对应的那块堆内存
③ 当对象创建时创建,对象被销毁时销毁
④ 必须创建对象后才能访问,不创建对象该变量没有内存空间不能访问
⑤ 对象创建后可使用“引用.实例变量名”访问
⑥ 实例变量可以声明在使用前或者使用后,在整个类内部是可访问的,而不管实例变量声明在类的哪个位置
⑦ 具有默认值,一切向0看齐
(数值型变量默认值为0,布尔型变量默认值为false, 引用型变量默认值为null)


类变量

① 也称静态变量,在类体中,方法体外声明,用static修饰
② 存储在静态存储区(方法区)
③ 在类在第一次被访问时创建,程序结束时销毁
④ 可以直接使用 “类名.静态成员名” 访问,而不用创建对象
⑤ 默认值与实例变量一样向0看齐
⑥ 类变量被所有对象共享

◉ 变量注意点


局部变量不能加访问修饰符

在这里插入图片描述

因为访问修饰符是为了添加限制,而“局部”本身就是一种限制了,只能在局部使用,所以不能再加访问修饰符


在static的方法中,不可以调用非static的变量和方法。

在这里插入图片描述

原因是非static方法和变量是与对象联系在一起的,必须有对象才能用。

而static方法在没有创建对象时也能调用,如果static方法内调用非static方法和变量,那到底是哪个对象的无法确定,甚至没有对象


鸟兽虫鱼,日月繁星(寒冰小澈)

posted @ 2021-01-29 15:53  IceClean  阅读(48)  评论(0)    收藏  举报