wrapper包装java_Java 基础(包装类 Wrapper 的使用)

针对八种基本数据类型定义相应的引用类型--包装类(封装类)

有了类的特点,就可以调用类中的方法,Java才是真正的面向对象

基本数据类型

包装类

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

boolean

Boolean

char

Character

Byte, Short, Integer, Long, Float, Double 父类是 Number

基本数据类型包装成包装类的实例 ---装箱

通过包装类的构造器实现:

int i = 500; Integer t = new Integer(i);

还可以通过字符串参数构造包装类对象:

Float f = new Float("4.56");

Long l = new Long("asdf"); //NumberFormatException

获得包装类对象中包装的基本类型变量 ---拆箱

调用包装类的 .xxxValue() 方法:

boolean b = bObj.booleanValue();

JDK1.5之后,支持自动装箱,自动拆箱。但类型必须匹配。

基本类型,包装类与 String 类间的转换

1f36132c4cf31c2b2fa2728d3a4aacde.png

举例

WrapperTest.java

package com.klvchen.java2;

import org.junit.jupiter.api.Test;

public class WrapperTest {

//String 类型 ---> 基本数据类型,包装类

@Test

public void test5() {

String str1 = "123";

//错误情况

//int num1 = (int)str1;

//Integer in1 = (Integer)str1;

//可能会报 NumberFormatException

int num2 = Integer.parseInt(str1);

System.out.println(num2 + 1); //124

String str2 = "true1";

boolean b1 = Boolean.parseBoolean(str2);

System.out.println(b1); //false

}

//基本数据类型,包装类 ---> String 类型

@Test

public void test4() {

int num1 = 10;

//方式1: 连接运算

String str1 = num1 + "";

//方式2: 调用 String 的 valueOf(XXX xxx)

float f1 = 12.3f;

String str2 = String.valueOf(f1);

System.out.println(str2); //12.3

Double d1 = new Double(12.4);

String str3 = String.valueOf(d1);

System.out.println(str3); //12.4

}

//基本数据类型 ---> 包装类的对象(JDK 5.0 的特性,自动装箱与自动拆箱)

@Test

public void test3() {

//int num1 = 10;

//method(num1);

//自动装箱:基本数据类型 ---> 包装类

int num2 = 10;

Integer in1 = num2; //自动装箱

boolean b1 = true;

Boolean b2 = b1; //自动装箱

//自动拆箱: 包装类 ---> 基本数据类型

System.out.println(in1.toString()); //10

int num3 = in1; //自动拆箱

}

public void method(Object obj) {

System.out.println(obj);

}

//包装类 ---> 基本数据类型:调用包装类的 xxxValue()

@Test

public void test2() {

Integer in1 = new Integer(12);

int i1 = in1.intValue();

System.out.println(i1 + 1); //13

Float f1 = new Float(12.3);

float f2 = f1.floatValue();

System.out.println(f2 + 1); //13.3

}

//基本数据类型 ---> 包装类

@Test

public void test1() {

int num1 = 10;

//System.out.println(num1.toString()); //基本数据类型,无法调用方法

Integer in1 = new Integer(num1);

System.out.println(in1.toString()); //10

Integer in2 = new Integer("123");

System.out.println(in2.toString()); //123

//报异常 java.lang.NumberFormatException

//Integer in3 = new Integer("123abc");

//System.out.println(in3.toString());

Float f1 = new Float(12.3f);

Float f2 = new Float("12.3");

System.out.println(f1); //12.3

System.out.println(f2); //12.3

Boolean b1 = new Boolean(true);

Boolean b2 = new Boolean("true");

System.out.println(b1); //true

System.out.println(b2); //true

Boolean b3 = new Boolean("true123");

System.out.println(b3); //false

Order order = new Order();

System.out.println(order.isMale); //false

System.out.println(order.isFemale); //null

}

}

class Order{

boolean isMale;

Boolean isFemale;

}

总结

基本数据类型 ---> 包装类

自动装箱:

eg: int num2 = 10;

Integer in1 = num2;

包装类 ---> 基本数据类型

自动拆箱:

eg: Integer in1 = new Integer(12);

int num2 = in1;

基本数据类型,包装类 ---> String 类型

调用 String 的 valueOf(XXX xxx)

eg: float f1 = 12.3f;

String str2 = String.valueOf(f1);

String 类型 ---> 基本数据类型,包装类

调用对应方法的包装类的 parseXxx(Sting)

eg: String str1 = "123";

int num2 = Integer.parseInt(str1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值