Java——包装类

简介: 包装类是为了把基本类型包装成对象类型,从而能被 Object 类型统一管理。

2 包装类


由于 Object 类是所有对象的父类,因此 Object 类型的引用能够接受 Java 中所有类型的对象。但是,对于基本类型,Object 类就无能为力了,毕竟 Object 只能处理对象类型。有没有什么办法,能够让 Object 类处理 Java 中所有的数据类型呢?在 Java 中解决这个问题的方法就是使用包装类。


2.1包装类简介


包装类是为了把基本类型包装成对象类型,从而能被 Object 类型统一管理。

class MyInteger{
    private int value;
    public MyInteger(int value){
        this.value = value;
    }
    public int intValue(){
    return value;
    }
}

这样,我们定义了一个对象类型 MyInteger,这个类型封装了一个 int 类型的 value,从而把一个简单类型 int 类型封装成了一个对象类型。用这个 MyInteger 类的对象,同样可以表示一个整数。


image.png


2.2 六种转换


三种类型之间的六种转换。所谓的三种类型,指的是字符串类型、基本类型、包装类类型。

image.png



1包装类和基本类型之间的转换


以 Integer 和 int 为例,由 int 转换为 Integer的方式,是利用 Integer 的构造方法,以 int 作为参数创建相应的 Integer 对象。


int i1 = 10;//int 类型转化为 Integer 类型


Integer ii1 = new Integer(i1);


直接调用 Integer 对象的 intValue 方法,用这个方法就可以把 Integer 类型转换为 int 类型


int i2 = ii1.intValue();


2 String 类型与包装类之间的转换


字符串转为包装类类型非常简单,同样是利用包装类的构造方法


String str = “123”;


Integer ii2 = new Integer(str);


包装类类型转为字符串类型也非常简单,直接调用包装类对象的 toString 方法,就能返回该对象的字符串表现形式,也就是把对象转化为字符串。


String str2 = ii2.toString();


3字符串类型和基本类型之间转换


基本类型转换成字符串


一种方式是使用 String 类中定义的一个静态方法:valueOf。因为这个方法是静态方法,因此可以用 String 类名来直接调用。在 String 类中定义了一系列重载的 valueOf 方法,分别表示把不同的基本类型转换为字符串类型。


int i = 10;


String str3 = String.valueOf(i);


第二种方式,我们可以利用字符串的特性,使用字符串加法来完成基本类型和字符串类型之间的转换。


String str4 = “” + i;


由于字符串类型加上任何其他类型,结果都是字符串,因此我们可以用一个空字符串加上一个整数,从而把这个整数转化为一个字符串。


字符串转换成基本类型


以 int 为例,如果要转换的话,可以调用Integer 类的 parseInt 方法,把字符串转化为 int。


int i = Integer.parseInt(“123”);


2.3 JDK5.0 新特性:自动封箱拆箱


在 JDK5.0 中,由系统自动完成基本类型和包装类之间的转换。


//把 int 类型的 10 转换为 Integer 类型


Integer myInteger = new Integer(10);


//把 Integer 类型的 myInteger 转换为 int 类型


int i = myInteger.intValue();


而对于 JDK5.0 以后的版本来说,下面的代码也能编译通过:


//把 int 类型直接赋值给 Integer 类型


Integer myInteger = 10;


//把 Integer 类型直接赋值给 int 类型


int i = myInteger;


上面的这两行代码,可以把 int 类型的变量直接赋值给 Integer 类型,也可以把 Integer类型的变量直接赋值给 int 类型。也就是说,可以对 Integer 类型和 int 类型自动进行转换。需要注意的是,这个新特性只是语法方面的改变,而底层实现的原理,并没有发生改变。


相关文章
|
JavaScript Java 编译器
Java包装类和泛型的知识点详解
Java包装类和泛型的知识点的深度理解
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
310 4
|
Java 编译器 容器
Java——包装类和泛型
包装类是Java中一种特殊类,用于将基本数据类型(如 `int`、`double`、`char` 等)封装成对象。这样做可以利用对象的特性和方法。Java 提供了八种基本数据类型的包装类:`Integer` (`int`)、`Double` (`double`)、`Byte` (`byte`)、`Short` (`short`)、`Long` (`long`)、`Float` (`float`)、`Character` (`char`) 和 `Boolean` (`boolean`)。包装类可以通过 `valueOf()` 方法或自动装箱/拆箱机制创建。
178 9
Java——包装类和泛型
|
Java 程序员
【Java基础面试八】、为啥要有包装类?
这篇文章解释了Java中存在包装类的原因:为了让基本数据类型具备对象的特性,使得它们可以被用作对象,以符合Java"一切皆对象"的设计理念,并简化将基本数据类型作为Object类型参数传递的问题。
【Java基础面试八】、为啥要有包装类?
|
存储 Java 测试技术
Java零基础教学(10):包装类
【9月更文挑战第1天】Java零基础教学篇,手把手实践教学!
175 1
|
Java
【Java】什么是泛型?什么是包装类
【Java】什么是泛型?什么是包装类
143 0
|
算法 Java
12 Java常用类(一)(内部类+object类+包装类)
12 Java常用类(一)(内部类+object类+包装类)
128 5
|
前端开发 Java
【前端学java】java中的包装类(12)
【8月更文挑战第10天】java中的包装类
94 1
|
存储 Java 测试技术
Java零基础(11) - 包装类详解
【8月更文挑战第11天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
157 1
|
存储 Java 测试技术
day18:Java零基础 - 包装类
【7月更文挑战第18天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
155 9
下一篇
oss云网关配置