一.封装类的构造器:
1.对基本数据类型:Integer i=new Integer(10);2.对字符型:Integer i=new Integer("10");
二.封装类的3种方法:
1.valueOf();//静态方法,返回的是一个指定类型的封装类实例(目前jdk支持自动装箱与拆箱)
2.***Value();//把封装类对象转化成基本数据类型的值
3.parse***();//把String的对象转化成封装类对象
三.几点补充
1.关于valueOf,例如Integer i=Integer.valueOf("10010")其将字符串转化成Integer类型的对象
2.关于parseInt,例如Integer a=Integer.parseInt("12");
3.关于IntValue,
例如:我们可以使用4种方法创建一个Integer的对象(装箱);
<1>Integer a=new Integer("100");//在cmd命令下编译时提示使用或覆盖了过时的API,但是eclipse就没问题(貌似是系统不推荐用户显式使用)
<2>Integer a=100;//但是实际是调用1的方法
<3>Integer a=Integer.valueOf("100");//调用封装类的方法
<4>Integer a=parseInt("100");
*封装类的另一个的方法:***Value();
例如:
Integer a=100;
int val=a.IntValue();//记得import java.lang.*;(拆箱)
四.其他说明
&关于Integer的对象i的i++操作:
1.先对i拆箱->val=i.intValue();
2.再实现val的自加->val++;
3.再装箱->i=new Integer(val)
&关于常量池的概念
如果有:
Integer a=new integer(50);//a=50;
Integer b=new Integer(50);//b=50;
System.out.println(a==b);
输出:
True
按照常理来说a、b都用了new,应该占用不同的内存单元,但是常量池(-128~127)的存在是的a、b同指向池中的同一单元
//Wrapper
import java.lang.*;
public class Main {
public static void main(String args[]) {
int a=1;
//Integer b = new Integer(a);
Integer c = Integer.valueOf(a);//valueOf()将基本数据类型转化为封装类
Integer d = Integer.parseInt("1");
int e = c.intValue();
System.out.println(e);
}
}