为什么在阶段二的Java部分老师书写代码喜欢使用包装类而非基本类型

为什么在阶段二的Java部分老师书写代码喜欢使用包装类而非基本类型

问题描述:

如标题所示


相关代码:

public Float operate(Integer a ,Integer b);
public float operate(int a ,int b);

请问老师使用包装类和基本类型有什么本质上的区别吗?老师更推荐使用哪种方式呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,实际开发中会选择包装类而不是基本数据类型。不选择基本类型是因为其默认值为0,而包装类的默认值为null。

在实际业务中,如果因为某些原因,没有正确获取到属性值时,如果是基本类型会使用0,此时无法判断这个0是否是有效数据(例如人数,0本身可能是有效数据,也可能是默认值),但是如果是包装类,可以用null值判断。

所以,更建议使用包装类。

祝学习愉快~

  • Macrohard 提问者 #1

    明白了,谢谢老师!

    2022-09-28 11:04:38
  • Macrohard 提问者 #2

    老师,我还有个问题

    刚才简单做个了实验

    https://img1.sycdn.imooc.com//climg/6333bb360968344002400300.jpg

    就是说包装类不会像基本数据类型一样做自动的类型转换,Float就必须手动给数字后面加d,Double对于小数是默认的,但是对于整数就必须手动加d,是这样吗?

    也就是说使用包装类的时候传参数为了保险起见都要手动加上f或者d,直接传整数就会报错吧;使用基本数据类型传整数参数就不会报错因为自动转换了?

    2022-09-28 11:14:47
  • 好帮手慕小蓝 回复 提问者 Macrohard #3

    同学你好,只有对应的数据类型才能进行自动装箱,例如只有float才能自动装箱为Float,但是如果数据是整数,那么其默认数据类型是int。

    例如代码float f = 3;其实是自动类型提升,将int提升为float。但是使用Float包装类时,int是不能自动装箱为Float的,就会报错,但是如果后面加“F”或者“f”,此时这个数据就是float类型了,就可以自动装箱。

    double与Double也是同理。

    祝学习愉快~

    2022-09-28 14:46:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师