属性(成员变量) 与 局部变量
位置不同:
属性:直接定义在类的一对 {} 中;
局部变量:声明在方法中、方法形参、代码块、构造器形参、构造器内部的变量;
权限修饰符不同:
属性:在声明时可以用修饰符指明其权限;
修饰符有:private、public、缺省、protected
默认初始化不同:
属性:根据类型,有初始化值
整型(int、short、byte、long):0
浮点型(float、double):0.0
字符型(char):0(或"\u0000")
布尔型(boolean):false
引用数据类型(类、数组、接口):null
局部变量:没有默认初始化值
意味着:在调用局部变量之前,一定要显示赋值;特别地,形参在调用时赋值即可
在内存中的位置不同:
属性:加载到堆空间中(非static)
局部变量:加载到栈空间中
在类中声明的位置:
属性赋值的先后顺序
①默认初始化
②显示初始化 / ⑤在代码块中赋值 (两者看顺序谁在前)
③构造器中赋值
④通过 对象.方法 或 对象. 属性 的方式赋值
匿名对象的使用
理解:创建的对象没有显示地赋给一个变量名,即为匿名对象
特征:匿名对象只能调用一次,每new一次就是一个新的对象
使用:有时在调用类的方法时,作为方法中的形参