作用:
引用数据类型:完成实例化后,可借由该类型对象获取其中非私有成员。
基本数据类型:无需初始化,只能操作对应类型具体数值。
初始值:
引用数据类型:未进行实例化时为null;进行实例化后,将依据对应的构造方法完成初始成员信息设置。
基本数据类型:无需初始化,各类型有各自默认值(譬如:int是0,double是0.0等)
调用方式:
Ps:此时指在类内方法中访问,暂不考虑static修饰的情况
引用数据类型:如未进行实例化,方法中调用对象非私有成员时会报空指针异常(具体内容,后面小节中会详细介绍);当进行初始化后,可借由对象访问其非私有成员信息。
基本数据类型:可直接调用获取具体数值。
示例:
现有公司类和员工类,在测试类中对员工信息进行测试。
(Ps:鉴于文档展示篇幅有限,示例中暂不考虑封装特性,属性均采用默认权限,未设置get/set方法及无参构造。)
- 当测试类中,生成公司,员工对象,但并未对员工中的公司属性赋值时:
运行结果: 由于display方法中的comp未初始化,因此产生空指针异常。
- 如修改员工类中代码:加入对员工的公司属性初始化设置
保留测试类和公司类代码不变,此时运行无异常,结果中将展示初始化时的公司属性的默认值,即:
- 如员工类中,公司属性定义时未初始化,但加入在双参构造方法中的信息判断
保留测试类和公司类代码不变,此时,虽然员工类中的公司属性定义时未完成初始化,但由于构造方法中有相关判断,将完成初始化操作,从而在main方法中调用时不会产生异常。即:
- 如保留员工类、公司类初始代码不变(即员工类中公司属性定义和构造方法中均未初始化),修改测试类中代码:加入对员工的公司属性赋值
则由于员工对象的公司属性,虽在类内定义时未初始化,但在main方法中调用时正确赋值,运行结果为: