虽然Java语言是典型的面向对象编程语言,但其中的8种基本数据类型并不支持面向对象的编程机制,基本类型的数据不具备“对象”的特性----没有属性、没有方法可调用。沿用他们只是为了迎合程序员根深蒂固的习惯,并能简单、有效地进行常规数据处理。
这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了Object类的特性,要转换为String类型(经常有这种需要)时只要简单调用Object类中定义的toString()即可,而基本数据类型转换为String类型则要麻烦得多。
为解决此类问题,Java语言引入了封装类的概念,在JDK中针对各种基本数据类型分别定义相应的引用类型,并称之为封装类(Wrapper Classes)。
所有的封装类对象都可以向各自的构造器传入一个简单类型数据来构造:
boolean b = true;
Boolean B = new Boolean(b);
byte by = ’42’;
Byte By = new Byte(by);
int i = 123;
Integer I = new Integer(i);
… …
除了Character外,还可以通过向构造器传入一个字符串数据来构造,如果传入的字符串不能用于表示对应的值,除了Boolean类型外,将会抛出一个NumberFormatException异常:
Boolean B = new Boolean("true");
Boolean B1 = new Boolean("a");// 对,不抛出异常
try {
Byte By = new Byte("42");
Short S = new Short("121212");
Integer I = new Integer("123456789");
// … …
} catch (NumberFormatException e) {
e.printStackTrace();
}
封装在封装类中的值,可以通过各自的xxxValue()方法来转换成简单类型:
Boolean----public boolean booleanValue()
Byte----public byte byteValue()
Character----public char charValue()
Double----public double doubleValue()
Float----public float floatValue()
Integer----public int intValue()
Long----public long longValue()
Short----public short shortValue()
下面我们来看一个封装类的例子。
public class WrapperClass {
public static void main(String[] args) {
Integer i = new Integer(10);
Integer j = new Integer(10);
System.out.println(i == j);
}
}
在这个类中,创建了两个int的封装类Integer对象,并且比较它们是否相等。运行这个程序,将在控制台上输出:
false
可以从结果看出,它们并不相等。这是因为,i和j各自指向的对象是不一样的。
分享到:
相关推荐
Python库通常包含一系列函数、类和模块,这些都封装了特定的功能,便于在Python程序中调用。`mreddata`可能专注于数据获取、处理、清洗、分析或者可视化等方面,但具体用途需要查看库的文档或源代码来确定。 在...
1. **动画类**:封装了Android系统的动画API,提供更简单易用的接口,让开发者可以轻松创建各种动画效果。 2. **示例代码**:展示如何在实际项目中使用BBAD库,帮助开发者快速上手。 3. **文档**:可能包括README...
标签“Python库”表明这是用Python语言编写的代码库,通常包含一组函数或类,供其他Python程序使用,以实现特定的功能或服务。 在压缩包子文件的文件名称列表中,我们只有一个文件"cdktf-cdktf-provider-kubernetes...
Python库通常包含一系列函数、类和模块,它们封装了特定的逻辑,简化了开发者的代码编写工作。 在压缩包子文件的文件名称列表中,我们看到只有一个文件:`swh.core-0.0.66`。这通常是Python库在打包时的结构,`.tar...
《VB问题全攻略1-66》是一份深入探讨Visual Basic(VB)编程语言的压缩文件,包含了从基础到进阶的66个问题解答,旨在帮助初学者和有一定经验的开发者解决在VB编程过程中遇到的各种挑战。VB,全称Visual Basic,是由...
Holtek HT66F019是一款8位微控制器,广泛应用于各种消费类电子产品中。该部分文件中包含了电路的多个关键组件和连接方式,但并非完整的设计,因此下面的知识点将围绕单片机基础结构、元件标识和布局的一般知识进行...
这个封装类是为了简化SQLite数据库在C++项目中的使用,通过提供更友好的API接口,使得开发者能更加便捷地进行数据操作。下面将详细介绍这个"Sqlite封装类"的相关知识点。 1. **SQLite数据库基础**: SQLite是一个...
首先,HT66F2390是一款基于8位CMOS工艺的高性能微控制器,具有64引脚的LQFP封装(HT66F239064LQFP)。该芯片集成了丰富的外设功能,如模拟比较器、PWM、定时器、串行接口等,为设计者提供了极大的灵活性。其内部程序...
在C++环境中,K66摄像头代码可能涉及到图像采集、处理、传输等流程,可能用到了多线程、内存管理、类封装等高级特性。C++的面向对象特性使得代码更易于组织和维护,同时,利用STL(标准模板库)和智能指针等工具可以...
然后RNC将这些信令解封装,并用RANAP(Radio Access Network Application Part,无线接入网络应用部分)协议将它们转发到核心网侧。 RANAP作为Iu接口的控制面协议,其主要任务包括信令管理、RAB(Radio Access ...
这类存储器的主要特点是即使在断电的情况下也能保存数据,而且可以通过电气方式对数据进行多次改写,适用于需要小容量、高可靠性的存储应用场合。 #### 二、芯片特点与优势 1. **存储容量**:93C66SM具有512×8位...
17.3.1. 在基本数据类型和封装类之间的自动转换 17-69 17.4. 类型安全的枚举 17-70 17.5. 静态引入 17-71 17.6. C风格的格式化输出 17-72 17.7. Building Strings(StringBuilder类) 17-73 17.8. 可变长的参数 17-73 ...
第1章 Windows应用程序开发入门..........................................................................................16 1.1 第一个实例程序...............................................................
2. **无极性电容**:这类电容的封装通常为RAD系列,例如RAD0.1到RAD0.4,其中数字代表电容的尺寸。在实际应用中,可以根据电容的大小选择合适的封装。 3. **电解电容**:电解电容的封装通常为RB系列,如RB.2/.4到RB...
嵌入式系统和单片机设计通常涉及到复杂的硬件接口和信号处理,而ALtium Designer的封装库则为这类设计提供了丰富的资源。例如,封装库中可能包含了各种微控制器(MCU)和处理器的封装,使得设计师能够在设计过程中...
- **TO204/TO66**: 大功率晶体管的封装,适用于高温环境。 - **SOT223-3/SOT23-3/N**: 不同类型的SOT封装,用于不同的应用场景。 - **EM3/EM3-N**: 可能是某些特殊型号晶体管的封装。 - **TO236/AQ**: 高功率...
4. JavaBeans:这些是Java类,封装了特定的数据和行为,常被用作JSP页面和Servlet之间的数据容器。例如,用户对象、帖子对象等可能以JavaBean的形式存在。 5. 配置文件:如web.xml,这是Java Web应用的部署描述符,...