java中的数据类型和对应的封装类:
基本类型 | 大小 (字 节) |
默认值 | 封装类 | 最小值 | 最大值 |
---|---|---|---|---|---|
byte | 1 | 0 | Byte | -128(-2^7) | 127(2^7-1) |
short | 2 | 0 | Short | -32768(-2^15) | 32767(2^15-1) |
int | 4 | 0 | integer | -2147483648(-2^31) | 2147483647(2^31-1) |
long | 8 | 0L | Long | -9223372036854775808(-2^63) | 9223372036854775808(-2^63-1) |
float | 4 | 0.0f | Float | - | - |
double | 8 | 0.0d | Double | - | - |
boolean | - | false | Boolean | - | - |
char | 2 | \u0000(null) | Character | \u0000(0) | \uffff(65536) |
封装类
在面向对象程式设计方法中,封装(Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
注意:String也是一个单独的封装类。
为什么要使用封装类?
-
某些情况下,数据必须作为对象出现,此时必须使用封装来将简单类型封装成对象。
比如,我们想使用List来保存数值,由于List中只能添加对象,因此,我们就需要将数据封装到封装类在加入List。在jdk5后,我们可以简写成list.add()的形式,但添加的数据依然是封装后的对象。
-
某些情况下,使用封装类使我们可以更加方便的操作数据。
比如封装类具有一些基本类型不具备的方法,toString(),valueOf()等等。
封装的优点
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息,实现细节。
基本数据类型和封装类的本质不同:
- 基本数据类型只能安值传递,封装类安引用传递。
- 基本类型在堆栈中创建(效率高,但可能有内存泄漏问题);对象类型,对象在堆中创建,对象的引用在堆栈中创建。