简单理解为什么Java要使用封装类

个人学习所用,有错误和不足之处欢迎指出和补充。

目录

前言

基本数据类型与封装类的区别:(用 int 和 Integer 举例)

为什么要使用封装类:


前言

Java中存在八种基本数据类型:(整数型)byte、short、int、long,(浮点型)float、double,(字符型)char,(布尔型)boolean。

其对应的封装类型为:Byte、Short、Integer、Long、Float、Double、Character,Boolean。

除此之外,还有一个没有基本数据类型但常用的封装类:String。

基本数据类型与封装类的区别:(用 int 和 Integer 举例)

在使用时发现在创建时方式不同:int型直接给一个变量名并赋值即可;而Integer需要创建一个对象,再为这个对象传入一个参数。但是最后输出的结果却是一样的。

但是IDE却报了一个警告,说此处的 Integer 是不必要的装箱并弃用,并且建议改为 int 型

由于暂时还未学习到这么深入的地步,所以就简单了解一下吧。通过上网查资料,简单来说,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。

Integer num = new Integer(1);   //Java5之前
Integer num = 1;    //Java5之后

//以上定义方式为装箱

int num2 = num;   //拆箱

 所以由此看来,在数值方面,两者是一样的。只是引用他们的值的话,甚至会建议使用基本数据类型。

而两者之间的区别是 Integer 是一个类,其中封装了许多方法和属性,然后就可以利用这些方法和属性来处理数据,而 int 数据类型就做不到。另一个区别在于两者的默认值不同,int型的默认值为0,而对于Integer来说,因为封装类产生的是一个对象,所以其的默认值为null。

而当Integer对象调用相应的方法后,就已经不是单纯的值了,甚至已经将赋值转化成了其他类型。

为什么要使用封装类:

  • 有使用需求

      Java是一门面向对象的语言,我们时时刻刻都在创建对象,也随时都在使用对象,很多时候在传递数据时需要的正是对象类型。而将某个基本数据类型进行封装后相当于就是一个对象,就可以拥有自己的属性和方法,当有了这些方法后,我们就可以利用其来处理数据了。

  • 安全性好

      将java类进行封装后类内部的结构可以自由修改,也可以对成员变量进行更精确的控制,同时还可以避免其他类随意修改自己的成员变量,内部细节被隐藏了以及不能随意破坏,也就保证了成员变量以及数据传递的安全性。

  • 结构不同

     在性能结构上来说,基本数据类型(int i)是在栈上创建的,而对象类型(new Integer())在堆上创建。堆能获得的空间较大,且堆中的具体内容是人为安排的,这样就能更方便地使用一些基本类型不具备的方法。

  • 隐藏细节,对外提供接口方便使用

      举个例子,一辆汽车包含许多的零件,每个零件都有自己的作用,但最终要组装在一起才能成为一辆汽车。对于开车的人来说,汽车里面的零件长什么样子并不重要,只要能够开走就行;汽车有方向盘,就相当于接口,只要接口统一,任何一个会开车的人都能将这辆车开走。

  • 可维护性好,方便重用

      在需要的时候,只需要进行内部结构和数据的更改,而不改变对外接口,,对其的引用就不会受到影响;在需要重复使用时也可以直接引用,就像一辆车可以给很多人开。

总之就是,既实现了数据的安全,又能够更好地对数据进行操作。让代码结构易于解释和理解,同时还能提供多种方案(封装不同的方法和属性)来适应不同的需求。既提高了开发效率也提高了代码的质量。

猜你喜欢

转载自blog.csdn.net/m0_68988603/article/details/123895920