包装器java_Java基础——包装器类

包装器类

我们知道Java的数据类型有基本数据类型和引用数据类型

同时基本数据类型又细分,分成四个种类的基本数据类型

一共有八种基本数据类型

引入

Java的八种数据类型只能表示一种数值,但是Java作为面向对象编程,处理的基本单位是对象。

为了能将基本数据类型视为对象处理,连接其相关方法,Java提供了包装类

概念

Java可以直接处理基本数据类型,有些情况下需要将其作为对象来处理,这时就需要将其转化为包装器类型。

Java八种数据类型对应相应的包装器类

基本数据类型

包装器类

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

使用

创建

构造方法:Integer i = new Integer(10);

调用包装器类型的ValueOf()方法Double d = Double.valueOf(2.5);

特点

对象一旦赋值,其值不能再改变

类型转换

当程序进行数据操作时,需要将包装器类转换为基本数据类型

包装器类有包装好的方法进行转换。

包装器类

方法

返回的基本数据类型

Byte

byteValue()

byte

Short

shortValue()

short

Integer

intValue()

int

Long

longValue()

long

Double

doubleValue()

double

Float

floatValue()

float

Character

charValue()

char

Boolean

booleanValue()

boolean

自动装箱

装箱与拆箱

箱子代表数据的封装

装箱就是把数据装入箱子里

拆箱就是把数据从箱子里拿出

装箱:将基本数据类型转换为包装器类。

拆箱:将包装器类转换为基本数据类型。

Integer i = new Integer(1);

//拆箱

int j = i.intValue();

j++;

//装箱

i = new Integer(j);

自动装箱

手动装、拆箱很麻烦,代码臃肿。

Java提供了自动装箱机制。

Integer i = new Integer(1);

//自动装箱

i++;

自动装箱后,引用指向的内存地址不同。

方法重载问题

基本数据类型加宽与方法重载

在Java中,基本数据类型会被加宽到更宽泛的基本数据类型

public class PrintStr{

//基本数据类型

public void print(int i){

System.out.println("int");

}

//包装器类

public void print(Short){

System.out.println("int");

}

}

public class Demo{

public static void main(String args[]){

PrintStr ps = new PrintStr();

//基本数据类型

short s = 2;

ps.print(s);

}

}

short被加宽到int,

同时基本数据类型和包装器类型是不同的数据类型。

int

自动装箱与方法重载

int会被自动装箱,调用Integer参数的方法

public class PrintStr{

//基本数据类型

public void print(short s){

System.out.println("short");

}

//包装器类

public void print(Integer i){

System.out.println("Integer");

}

}

public class Demo{

public static void main(String args[]){

PrintStr ps = new PrintStr();

//基本数据类型

int i = 2;

ps.print(i);

}

}

Integer

可变元参数与方法重载

public class PrintStr{

//基本数据类型

public void print(int i,int j){

System.out.println("int,int");

}

public void print(short ...i){

System.out.println("short...");

}

//包装器类

public void print(Short i,Short j){

System.out.println("Short,Short");

}

}

public class Demo{

public static void main(String args[]){

PrintStr ps = new PrintStr();

//基本数据类型

short i = 2;

short j = 2;

ps.print(i,j);

}

}

int,int

规则

能否直接匹配

加宽后能否直接匹配

装箱后能否直接匹配

先装箱后加宽后能否直接匹配

有不定长参数能否匹配

博客相关java项目:查看Github项目

对应github项目:Demo6

导入项目的方法:Java基础——Java如何导入本地项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值