包装才更美:初识包装类 | 带你学《Java面向对象编程》之五十五

简介: 本节为读者介绍了能使基本数据实现引用传递的包装类,并重现了包装类的实现原理与相关方法。

上一篇:教你将好钢用在刀刃上-应用抽象类 | 带你学《Java面向对象编程》之五十四
【本节目标】
通过阅读本节内容,你将了解到包装类的基本概念与实现原理,并能借助包装类解决一些业务逻辑上的问题。
包装类的主要功能是针对于基本数据类型的对象转换而实现的,并且随着JDK版本的更新,包装类的功能也在发生改变,有着更多的支持。

认识包装类

Object类最大的特点是所有类的父类,可以接收所有的数据类型,但是在这个过程中就存在有个问题:基本数据类型并不是一个类,所以现在如果要想将基本数据类型以类的形式进行处理,,那么就需要对其进行包装。
范例:以int数据为例实现一个包装处理的定义

class Int {
    private int data ;    //包装了一个基本数据类型
    public Int(int data) {
        this.data = data ;
    }
    public int intValue() {
       return this.data ;
    }
}
public class JavaDemo {
    public static void main(String args[]) {
        Object obj = new Int(10) ;   //装箱:将基本数据类型保存在包装类之中
        int x = ((Int)obj).intValue() ;   //拆箱:从包装类对象中获取基本数据类型
        System.out.println(x * 2) ;    
    }
}

执行结果:20
基本数据类型进行包装处理后,可以像对象一样进行引用传递,同时也可以使用Object类进行接收,但是如果都已经可以发现基本数据类型与Object类型之间的缺陷,那么JDK也早就发现了同样的问题,所以在JDK1.0的时候就提供有了包装类的概念,基本数据类型一共有八种,所以提供有八种包装类,那么这八种包装类的基本定义如下:

image.png
图一 包装类

现在可以发现在Java中包装类一共提供两种类型:

  • 对象型包装类:(Object直接子类):Boolean、Character;
  • 数值型包装类(Number直接子类):Byte、Short、Integer、Long、Float、Double;

Number是一个抽象类,以后只要是看见了Number都应该明确表示它是一个数字的概念,这个类定义有如下方法:

No. 方法名称 类型 描述
01 public byte byteValue() 普通 从包装类中获取byte数据
02 public short shortValue() 普通 从包装类中获取short数据
03 Public abstract int intValue() 普通 从包装类中获取int数据
04 public abstract long longValue() 普通 从包装类中获取long数据
05 public abstract float floatValue() 普通 从包装类中获取float数据
06 public abstract double doubleValue() 普通 从包装类中获取double数据

Number类中的方法就是直接提供有获取包装类中基本数据类型的功能,一共只定义了六个方法。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:带你领会JDK的灵活拆装 | 带你学《Java面向对象编程》之五十六
更多Java面向对象编程文章查看此处

相关文章
|
3月前
|
Java 开发者
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
40 7
|
3月前
|
Java 开发者
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
46 5
|
3月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
4天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
22 4
|
2月前
|
Java 编译器 容器
Java——包装类和泛型
包装类是Java中一种特殊类,用于将基本数据类型(如 `int`、`double`、`char` 等)封装成对象。这样做可以利用对象的特性和方法。Java 提供了八种基本数据类型的包装类:`Integer` (`int`)、`Double` (`double`)、`Byte` (`byte`)、`Short` (`short`)、`Long` (`long`)、`Float` (`float`)、`Character` (`char`) 和 `Boolean` (`boolean`)。包装类可以通过 `valueOf()` 方法或自动装箱/拆箱机制创建。
35 9
Java——包装类和泛型
|
1月前
|
Java
【Java】什么是泛型?什么是包装类
【Java】什么是泛型?什么是包装类
16 0
|
3月前
|
Java 程序员
【Java基础面试八】、为啥要有包装类?
这篇文章解释了Java中存在包装类的原因:为了让基本数据类型具备对象的特性,使得它们可以被用作对象,以符合Java"一切皆对象"的设计理念,并简化将基本数据类型作为Object类型参数传递的问题。
【Java基础面试八】、为啥要有包装类?
|
2月前
|
存储 Java 测试技术
Java零基础教学(10):包装类
【9月更文挑战第1天】Java零基础教学篇,手把手实践教学!
40 1
|
3月前
|
前端开发 Java
【前端学java】java中的包装类(12)
【8月更文挑战第10天】java中的包装类
19 1
|
3月前
|
存储 前端开发 JavaScript
【前端学java】面向对象编程基础-类的使用(4)
【8月更文挑战第9天】面向对象编程基础-类的使用
19 0
【前端学java】面向对象编程基础-类的使用(4)