java温习*(5):引用数据类型应用---成员属性

作用:
引用数据类型:完成实例化后,可借由该类型对象获取其中非私有成员。

基本数据类型:无需初始化,只能操作对应类型具体数值。

初始值:
引用数据类型:未进行实例化时为null;进行实例化后,将依据对应的构造方法完成初始成员信息设置。

基本数据类型:无需初始化,各类型有各自默认值(譬如:int是0,double是0.0等)

调用方式:

Ps:此时指在类内方法中访问,暂不考虑static修饰的情况

引用数据类型:如未进行实例化,方法中调用对象非私有成员时会报空指针异常(具体内容,后面小节中会详细介绍);当进行初始化后,可借由对象访问其非私有成员信息。

基本数据类型:可直接调用获取具体数值。

示例:
现有公司类和员工类,在测试类中对员工信息进行测试。

(Ps:鉴于文档展示篇幅有限,示例中暂不考虑封装特性,属性均采用默认权限,未设置get/set方法及无参构造。)

图片描述

图片描述

 

 

  • 当测试类中,生成公司,员工对象,但并未对员工中的公司属性赋值时:

图片描述

运行结果: 由于display方法中的comp未初始化,因此产生空指针异常。

图片描述

 

- 如修改员工类中代码:加入对员工的公司属性初始化设置

图片描述

 

保留测试类和公司类代码不变,此时运行无异常,结果中将展示初始化时的公司属性的默认值,即:

图片描述

 

- 如员工类中,公司属性定义时未初始化,但加入在双参构造方法中的信息判断

图片描述

 

保留测试类和公司类代码不变,此时,虽然员工类中的公司属性定义时未完成初始化,但由于构造方法中有相关判断,将完成初始化操作,从而在main方法中调用时不会产生异常。即:

图片描述

 

  • 如保留员工类、公司类初始代码不变(即员工类中公司属性定义和构造方法中均未初始化),修改测试类中代码:加入对员工的公司属性赋值
  • 图片描述

 

则由于员工对象的公司属性,虽在类内定义时未初始化,但在main方法中调用时正确赋值,运行结果为:

图片描述

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章