◉ 变量分类
① 局部变量(在方法体中声明)
② 成员变量(在方法体外声明)
—— 1. 实例变量(无static修饰)
—— 2. 类变量 [也称静态变量](有static修饰)
◉ 变量总结
# 局部变量
① 在方法体中声明
② 存放在栈内存中
③ 当方法执行时创建,执行完毕后被销毁
④ 访问修饰符不能用于局部变量
⑤ 没有默认值,被声明后必须经过初始化才可以使用
# 实例变量
① 也称 “对象变量” ,在类体中、方法体外声明
② 存放在对象对应的那块堆内存中
③ 当对象创建时创建,对象被销毁时销毁
④ 必须创建对象后才能访问,不创建对象该变量没有内存空间不能访问
⑤ 对象创建后可使用“引用.实例变量名”访问
⑥ 实例变量可以声明在使用前或者使用后,在整个类内部是可访问的,而不管实例变量声明在类的哪个位置
⑦ 具有默认值,一切向0看齐
(数值型变量默认值为0,布尔型变量默认值为false, 引用型变量默认值为null)
类变量
① 也称静态变量,在类体中,方法体外声明,用static修饰
② 存储在静态存储区(方法区)
③ 在类在第一次被访问时创建,程序结束时销毁
④ 可以直接使用 “类名.静态成员名” 访问,而不用创建对象
⑤ 默认值与实例变量一样向0看齐
⑥ 类变量被所有对象共享
◉ 变量注意点
局部变量不能加访问修饰符
因为访问修饰符是为了添加限制,而“局部”本身就是一种限制了,只能在局部使用,所以不能再加访问修饰符
在static的方法中,不可以调用非static的变量和方法。
原因是非static方法和变量是与对象联系在一起的,必须有对象才能用。
而static方法在没有创建对象时也能调用,如果static方法内调用非static方法和变量,那到底是哪个对象的无法确定,甚至没有对象
鸟兽虫鱼,日月繁星(寒冰小澈)