Java 自动装箱与拆箱

概要:

自动装箱是把基本数据类型封装成类对象,拆箱是指把类对象拆成基本数据类型。

在表达式中,基本数据类型的数据值可以和基本数据对象进行运算。

基本数据类型的数组不能实现自动装箱和拆箱,即int[]不能当成Integer[]使用。

| |目录

代码

package net.xsoftlab.baike;

public class TestAutoboxAndUnbox {
	private static void testEqual() { // 测试对象型是否相等
		Integer i1 = 256;
		Integer i2 = 256;
		if (i1 == i2)
			System.out.println("相等!");
		else
			System.out.println("不相等!");
	}

	private static void autoBoxToInt() { // 自动装箱拆箱
		int i = 0;
		Integer integer = i; // 基本类型值,可以赋值给Integer型变量
		int j = integer; // 原始类型的数,也能赋值基本类型
		Integer counter = 1; // 装箱
		int counter2 = counter; // 拆箱
		while (counter < 3) {
			System.out.println("计数 " + counter++); // counter对象型的数,能自动增加
		}
	}

	public static void autoBoxToChar() { // 字符类型的自动拆箱与装箱
		char ch = 'A';
		Character character = 'B'; // 装箱
		System.out.println("ch = " + ch + "; character = " + character);
		if (ch != character) { // 拆箱
			ch = character; // 拆箱
			System.out.println("ch = " + ch + "; character = " + character);
		}
	}

	public static void autoBoxToBoolean() { // 布尔类型的自动拆箱与装箱
		boolean b = false;
		Boolean bool = true; // 装箱
		if (bool) { // 拆箱
			System.out.println("bool : " + true);
		}
		if (b || bool) { // 逻辑或
			b = bool; // 拆箱
			System.out.println("bool : " + bool + "; b : " + b);
		}
	}

	private static void testWhile() { // 测试自动装箱与拆箱在循环中的影响
		Boolean bool = true;
		Integer number = 0;
		int captcity = 3;
		while (number < captcity) {
			if (bool) {
				System.out.println("Welcome you " + number);
				number++; // 等价于number=number+1
			} else
				number--; // 等价于number=number-1
		}
	}

	public static void main(String[] args) { // java程序主入口处
		System.out.println("1.测试对象型是否相等");
		testEqual(); // 调用方法
		System.out.println("2.测试整数类型自动装箱与拆箱");
		autoBoxToInt(); // 调用方法
		System.out.println("3.测试字符类型自动装箱与拆箱");
		autoBoxToChar(); // 调用方法
		System.out.println("4.测试布尔类型自动装箱与拆箱");
		autoBoxToBoolean(); // 调用方法
		System.out.println("5.测试自动装箱与拆箱在循环中的影响");
		testWhile(); // 调用方法
	}
}


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
资料加载中...
已关注 , 取消