上一篇写了①构造方法初始化——给成员变量赋值的一种方法。②加上setter方法现在已经知道了两种给成员变量赋值的方法。
除了上面那两种,还有一种就是③显式初始化。顾名思义,就是最明显的一种赋值方式。
//成员变量(类的属性)
String name = "草帽团";
int age = 100;
测试类中:
Person p = new Person();
p.show();
输出为:
我是-无-参构造方法!
我的名字为:草帽团,今年100岁了
请按任意键继续. . .
成员变量还有一个特性:与局部变量相比,不需要赋初值就能使用。成员变量的创建的同时就有④默认初始化。
Person p = new Person();//去掉显式赋值
p.show();
输出为:
---------- 运行java ----------
我是-无-参构造方法!
我的名字为:null,今年0岁了
输出完成 (耗时 0 秒) - 正常终止
以上就是四种给变量赋值的方法。①构造方法初始化 ②setter方法③显式初始化④系统默认初始化
而这四种方法的区别为:
①构造方法初始化赋值,通过创建对象的同时,给对象创建一个初值。每一个对象只可使用一次。
②setter方法赋值,通过调用方法来给对象赋值,可以多次调用,来改变成员变量的值。
③显式初始化赋值,通过类中的声明来给成员变量赋值,每一个对象创建的时候都会拥有这个值,除非调用有参构造方法或者setter方法改变。
④系统默认初始化赋值,对象创建的同时,系统直接会在堆内存中给对象的成员变量分配空间,空间分配的同时,就会有默认值产生,此时如果像int、float等都会是0,string 类型的为null,boolean型的为false。
而这几种方法的顺序为: ①系统默认提供(对象一创建,分配内存时都已经有了)————②显式赋值————③构造方法初始化
setter方法作为自主调用,不参与排名,不要问,问就是最后。