1.包装类的概念
包装类:
基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型的数据。可以使用一个类,把基本类型的数据装起来在类中定义一些方法,这个类叫做包装类,我们可以使用类中的方法来操作这些基本类型的数据。
2.装箱与拆箱
2.1 装箱
装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)
构造方法:
- Integer(int value) 构造一个新分配的Integer 对象,它表示指定的int值。
- Integer(String s)构造一个新分配的Integer 对象,它表示String 参数所指示的int值。传递的字符串,必须是基本类型的字符串,否则会抛出异常”100” 正确"a” 抛异常。
静态方法:
- static Integer valueOf(int i)返回-一个表示指定的int 值的Integer 实例。
- static Integer value0f(String 5)返回保存指定的String的值的Integer对象。
package cn.itcast.day11.demo02;
public class StaticInteger {
public static void main(String[] args) {
Integer in1 = new Integer(1);//方法上有横线,说明方法过时了
System.out.println(in1); //1重写了toString方法
Integer in2 = new Integer("1");
System.out.println(in2);
//静态方法
Integer in3 = Integer.valueOf(1);
System.out.println(in3);
Integer in4 = Integer.valueOf("1");
System.out.println(in4);
}
}
执行结果
1
1
1
1
2.2 拆箱
自动装箱与自动拆箱:基本类型的数据和包装类之间可以自动的相互转换。JDK1. 5之后出现的新特性
拆箱:在包装类中取出基本类型的数据(包装类->基本类型的数据)
成员方法:
int intValue() 以int类型返回该Integer 的值。
package cn.itcast.day11.demo02;
import java.util.ArrayList;
public class StaticInteger02 {
public static void main(String[] args) {
//自动装箱:直接把int类型的整数赋值包装类
//Integer in = 1;就相当于Integer in = new Integer(1);
Integer in = 1;
//自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本数据类型,在进行计算
//in+2;就相当于in. intVale() + 2 = 3
//in = in. intVale() + 2 = 3又是一个自动装箱
in = in + 2;
//ArrayList集合无法直接存储整数,可以存储Integer包装类
ArrayList<Integer> list = new ArrayList<>();
list.add(1); //自动装箱 list.add(new Integer(1))
int a = list.get(0); //自动拆箱 list.get(0)
System.out.println(a);
}
}
3. 基本类型与字符串之间的转换
基本类型与字符串类型之间的相互转换
基本类型- >字符串(String)
- 基本类型的值+"”最简单 的方法(工作中常用)
- 包装类的静态方法tostring(参数),不是objec t类的tostring()重载。 static String toString(int i)返回一个表示指定整数的String对象。
- String类的静态方法value0f(参数)。 static String value0f(int i)返回int参数的字符串表示形式。
字符串(String)->基本类型:
使用包装类的静态方法parseXXX( ”字符串");
- Integer类: static int parseInt(String s)
- Double类: static double parseDouble(String s)
package cn.itcast.day11.demo02;
public class StaticInteger03 {
public static void main(String[] args) {
//基本类型转换成字符串
int i = 100;
String s1 = i + "0";
System.out.println(s1+200);
System.out.println("==========");
String s2 = Integer.toString(100);
System.out.println(s2+200);
System.out.println("===========");
String s3 = String.valueOf(100);
System.out.println(s3+200);
System.out.println("=========");
System.out.println("===字符串转换成基本类型===");
int i1 = Integer.parseInt(s1);
System.out.println(i-10);
System.out.println("============");
}
}
执行结果
1000200
==========
100200
===========
100200
=========
===字符串转换成基本类型===
90
============