包装类
本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删
什么是包装类?
- Java 中的数据类型从本质上可以分为两类:8 种基本数据类型和引用类型。8 中基本数据类型有:byte、short、int、long、float、double、char、boolean。那什么是引用类型呢?只要是通过构造函数 new 出来的对象就是引用类型。基本数据类型不是对象,引用数据类型的数据才能称之为对象。
- 我们知道 Java 是面向对象的编程语言,某些场景需要用对象来描述基本类型的数据,如何来实现呢?就是通过包装类来完成的,包装类是 Java 提供的一组类,专门用来创建 8 中基本数据类型对应的对象,所以包装类总共有 8 个,这些类保存在 java.lang 包中。
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
装箱与拆箱
装箱与拆箱是包装类的特有名词,装箱是指将基本数据类型转为对应的包装类对象,拆箱指将包装类对象转为对应的基本数据类型。
装箱
- public Type(type value)
每个包装类都提供了一个有参数构造函数:public Type(type value),用来实例化包装类对象
byte b = 1;
Byte byt = new Byte(b);
short s = 2;
Short shor = new Short(s);
int i = 3;
Integer integer = new Integer(i);
long l = 4;
Long lon = new Long(l);
float f = 5.5f;
Float flo = new Float(f);
double d = 6.6;
Double dou = new Double(d);
char cha = 'J';
Character charac = new Character(cha);
boolean bo = true;
Boolean bool = new Boolean(bo);
- public Type(String value) / public Type(char value)
每个包装类还有一个重载构造函数,Character 类的重载构造函数为:public Type(char value); 除 Character 类以外的其他的包装类重载构造函数为: public Type(String value)
Byte byt2 = new Byte("1");
Short shor2 = new Short("2");
Integer integer2 = new Integer("3");
Long lon2 = new Long("4");
Float flo2 = new Float("5.5f");
Double dou2 = new Double("6.6");
Character charac2 = new Character('J');
Boolean bool2 = new Boolean("true");
注意:在 Boolean 类的构造函数中,当参数为 true 时, Boolean 值为 true;但参数不为 true 时,Boolean 值都为 false。
- valueOf(type value)
每一个包装类都有一个 valueOf(type value) 方法:public static Type valueOf(type value),可以将基本数据类型转换为包装类型
byte b3 = 1;
Byte byt3 = Byte.valueOf(b3);
short s3 = 2;
Short shor3 = Short.valueOf(s3);
int i3 = 3;
Integer integer3 = Integer.valueOf(i3);
long l3 = 4;
Long lon3 = Long.valueOf(l3);
float f3 = 5.5f;
Float flo3 = Float.valueOf(f3);
double d3 = 6.6;
Double dou3 = Double.valueOf(d3);
char cha3 = 'J';
Character charac3 = Character.valueOf(cha3);
boolean bo3 = true;
Boolean bool3 = Boolean.valueOf(bo3);
- valueOf(String value) / valueOf(char value)
Character 有一个重载方法: public static Type valueOf(char value),可以将 char 类型转为包装类型。除 Character 类以外的其他包装类的重载方法: public static Type valueOf(String value), 可以将 Stirng 类型转为包装类型
Byte byt4 = Byte.valueOf("1");
Short shor4 = Short.valueOf("2");
........以此类推
注意: 在 Boolean.valueOf(String value) 中,当 value 为 true 时,Boolean 值为 true;当 value 不为 true 时, Boolean 值都为 false。
拆箱
- *Value()
每个包装类都有一个*Value方法,*是包装类对应的基本数据类型的名称,通过该方法可以将包装类转为基本数据类型
Byte byt = Byte.valueOf("1");
byte b = byt.byteValue();
Short shor = Short.valueOf("2");
short s = shor.shortValue();
Integer integer = Integer.valueOf("3");
int i = integer.intValue();
- parse*(String value)
除 Character 类以外每一个包装类都有一个静态方法可以将字符串类型转为基本数据类型
byte b = Byte.parseByte("1");
short s = Short.parseShort("2");
int i = Integer.parseInt("3");
long l = Long.parseLong("4");
float f = Float.parseFloat("5.5f");
double d = Double.parseDouble("6.6");
boolean bo = Boolean.parseBoolean("true");
注意: 在 Boolean.parseBoolean(String value) 中,当 value 为 true 时, Boolean 值为 true;当 value 不为 true 时, Boolean 值都为 false
- 其他方法
toString(type value):每一个包装类都有一个静态方法 toString(type value), 可以将基本数据类型转为 String 类型
byte b = 1;
String bstr = Byte.toString(b);
short s = 2;
String sstr = Short.toString(s);
String i = Integer.toString(3);
long l = Long.parseLong("4");
String lstr = Long.toString(l);
float f = Float.parseFloat("5.5f");
String fstr = Float.toString(f);
double d = Double.parseDouble("6.6");
String dstr = Double.toString(d);
boolean bo = Boolean.parseBoolean("true");
String bostr = Boolean.toString(bo);
String chastr = Character.toString('J');