在 java 中为什么会有基本数据类型的包装类?

     ①:基本数据类型之间的相互转换不是都可以制动转换的,而你强制转换又会出问题,比如String类型的转换为int类型的,那么jdk为了方便用户就提供了相应的包装类;

   ②:有时候一个函数需要传递一个Object的变量 而你想传递int类型的进去显然不行,怎么办呢,用到了包装类;

   故基本数据类型的包装类用法主要是:实现基本类型之间的转换; 便于函数传值; 在一些地方要用到Object的时候方便将基本数据类型装换

基本数据类型的包装类:

  1. 每一个基本数据类型,在一般情况下分配在栈上面,如果你想把它包装一下,包装成一个对象,就可以分配在堆上面,使用基本数据类型的包装类;

  2. 包装类(如:Integer,Boolean,Double 等)这些封装了一个相应的基本数据类型数值,并为其提供一系列操作;

     3. 以 java.lang.Integer 类为例,相应的构造方法:

     Integer(int Value)、Integer(String s)

包装类常见方法:

  1. 以下方法以 java.lang.Integer 类为例:

           1.1 public static final int MAX_VALUE:值为 231-1 的常量,它表示 int 类型能够表示的最大值;

      1.2 public static final int MIN_VALUE : 值为 -231 的常量,它表示 int 类型能够表示的最小值;

           1.3 public int intValue():以 int 类型返回该 Integer 的值. 其返回的是转换为 int 类型后该对象表示的数值;

           1.4 public long longValue():以 long 类型返回该 Integer 的值. 其返回的是转换为 long 类型后该对象表示的数值;

           1.5 public double doubleValue():以 double 类型返回该 Integer 的值. 其返回的是转换为 double 类型后该对象表示的数值;

           1.6 public static int parseInt(String s) throws NumberFormatException:将字符串参数作为有符号的十进制整数进行解析。

           1.7 public static Integer valueOf(String s) throws NumberFormatException:返回 Integer 对象,其中封装的整型数据为字符串 s 所表示.

      2. 包装类举例:

public class Test {
	public static void main(String[] args){
		Integer i = new Integer(100); // 分配在堆内存中
		Double d = new Double("12.568"); // 相当于先把字符串转换为double类型的数,然后再封装到Double基本数据类型的对象中去
		int j = (int) (i.intValue()+d.doubleValue());
		double pi = Double.parseDouble("3.1415926");
		double r = Double.valueOf("2.000").doubleValue();
		System.out.println(r); //2.0
		double s = pi*r*r;
		try {
			int k = Integer.parseInt("1.25");
		} catch (NumberFormatException e) {
			System.out.println("数据格式不对"); // 数据格式不对
		}
		System.out.println(Integer.toBinaryString(123)+'B'); // 1111011B
		System.out.println(Integer.toHexString(123)+'H'); // 7bH
		System.out.println(Integer.toOctalString(123)+'O'); // 173O
	}
}

 

posted on 2017-04-25 09:39  牧羊人的世界  阅读(174)  评论(0编辑  收藏  举报