java封装类(wrapper类)

一.封装类的构造器:
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);
	}
}


你可能感兴趣的:(java课堂笔记)