java学习笔记38:包装类:基础及使用

一、包装类基础

        Java是面向对象的语言,但并不是“纯面向对象”的,因为我们经常用到的基本数据类型就不是对象。但是我们在实际应用中经常需要将基本数据转化成对象,以便于操作。比如:将基本数据类型存储到Object[]数组或集合中的操作等等。
  为了解决这个不足,Java在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。
  
  包装类均位于java.lang包,八种包装类和基本数据类型的对应关系如下表所示:
  java学习笔记38:包装类:基础及使用_第1张图片
  在这八个类名中,除了Integer和Character类以外,其它六个类的类名和基本数据类型一致,只是类名的第一个字母大写而已。
  在这八个类中,除了Character和Boolean以外,其他的都是“数字型”,“数字型”都是java.lang.Number的子类。Number类是抽象类,因此它的抽象方法,所有子类都需要提供实现。Number类提供了抽象方法:intValue()、longValue()、floatValue()、doubleValue(),意味着所有的“数字型”包装类都可以互相转型。如图8-1和图8-2所示。

图8-1 Number类的子类 
       java学习笔记38:包装类:基础及使用_第2张图片

图8-2 Number类的抽象方法
       java学习笔记38:包装类:基础及使用_第3张图片
示例:初识包装类

public class WrapperClassTest {
	public static void main(String[] args) {
		Integer i = new Integer(10);
		Integer j = new Integer(50);
	}
}

内存分析如下:
java学习笔记38:包装类:基础及使用_第4张图片

二、包装类的用途

对于包装类来说,这些类的用途主要包含两种:
  1、作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object[]、集合等的操作。
  2、 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提供相互之间的转化!)。

示例:包装类的使用

public class Test {

	/**
	 * 测试Integer的用法,其他包装类与Integer类似
	 */
	void testInteger(){
		//基本类型转换成Integer对象
		Integer int1 = new Integer(10);
		Integer int2 = Integer.valueOf(20);    //官方推荐这种写法
		
		// Integer对象转化成int
		int a = int1.intValue();
		
		// 字符串转化成Integer对象
		Integer int3 = Integer.parseInt("334");
		Integer int4 = new Integer("999");
		
		// Integer对象转化成字符串
		String str1 = int3.toString();
		
		// 一些常见int类型相关的常量
		System.out.println("int能表示的最大整数:" + Integer.MAX_VALUE); 
	}
	
	public static void main(String[] args) {
        Test test = new Test();
        test.testInteger();
	}
}

运行结果:
java学习笔记38:包装类:基础及使用_第5张图片

你可能感兴趣的:(java学习笔记,包装类,包装类的基础,包装类的使用)