how2j.cn

本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



5分3秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



步骤 1 : 封装类   
步骤 2 : Number类   
步骤 3 : 基本类型转封装类   
步骤 4 : 封装类转基本类型   
步骤 5 : 自动装箱   
步骤 6 : 自动拆箱   
步骤 7 : int的最大值,最小值   
步骤 8 : 练习-装箱拆箱   
步骤 9 : 答案-装箱拆箱   

步骤 1 :

封装类

所有的基本类型,都有对应的类类型
比如int对应的类是Integer
这种类就叫做封装类
package digit; public class TestNumber { public static void main(String[] args) { int i = 5; //把一个基本类型的变量,转换为Integer对象 Integer it = new Integer(i); //把一个Integer对象,转换为一个基本类型的int int i2 = it.intValue(); } }
package digit;

public class TestNumber {

	public static void main(String[] args) {
		int i = 5;
		
		//把一个基本类型的变量,转换为Integer对象 
		Integer it = new Integer(i);
		//把一个Integer对象,转换为一个基本类型的int
		int i2 = it.intValue();
		
	}
}
步骤 2 :

Number类

数字封装类有
Byte,Short,Integer,Long,Float,Double
这些类都是抽象类Number的子类
Number类
package digit; public class TestNumber { public static void main(String[] args) { int i = 5; Integer it = new Integer(i); //Integer是Number的子类,所以打印true System.out.println(it instanceof Number); } }
package digit;

public class TestNumber {

	public static void main(String[] args) {
		int i = 5;
		
		Integer it = new Integer(i);
		//Integer是Number的子类,所以打印true
		System.out.println(it instanceof Number);
	}
}
步骤 3 :

基本类型转封装类

package digit; public class TestNumber { public static void main(String[] args) { int i = 5; //基本类型转换成封装类型 Integer it = new Integer(i); } }
package digit;

public class TestNumber {

	public static void main(String[] args) {
		int i = 5;

		//基本类型转换成封装类型
		Integer it = new Integer(i);
		
	}
}
步骤 4 :

封装类转基本类型

package digit; public class TestNumber { public static void main(String[] args) { int i = 5; //基本类型转换成封装类型 Integer it = new Integer(i); //封装类型转换成基本类型 int i2 = it.intValue(); } }
package digit;

public class TestNumber {

	public static void main(String[] args) {
		int i = 5;

		//基本类型转换成封装类型
		Integer it = new Integer(i);
		
		//封装类型转换成基本类型
		int i2 = it.intValue();
		
	}
}
步骤 5 :

自动装箱

不需要调用构造方法,通过=符号自动把 基本类型 转换为 类类型 就叫装箱
package digit; public class TestNumber { public static void main(String[] args) { int i = 5; //基本类型转换成封装类型 Integer it = new Integer(i); //自动转换就叫装箱 Integer it2 = i; } }
package digit;

public class TestNumber {

	public static void main(String[] args) {
		int i = 5;

		//基本类型转换成封装类型
		Integer it = new Integer(i);
		
		//自动转换就叫装箱
		Integer it2 = i;
		
	}
}
步骤 6 :

自动拆箱

不需要调用Integer的intValue方法,通过=就自动转换成int类型,就叫拆箱
package digit; public class TestNumber { public static void main(String[] args) { int i = 5; Integer it = new Integer(i); //封装类型转换成基本类型 int i2 = it.intValue(); //自动转换就叫拆箱 int i3 = it; } }
package digit;
 
public class TestNumber {
 
    public static void main(String[] args) {
        int i = 5;
 
        Integer it = new Integer(i);
         
        //封装类型转换成基本类型
        int i2 = it.intValue();
        
        //自动转换就叫拆箱
        int i3 = it;
         
    }
}
步骤 7 :

int的最大值,最小值

int的最大值可以通过其对应的封装类Integer.MAX_VALUE获取
package digit; public class TestNumber { public static void main(String[] args) { //int的最大值 System.out.println(Integer.MAX_VALUE); //int的最小值 System.out.println(Integer.MIN_VALUE); } }
package digit;
 
public class TestNumber {
 
    public static void main(String[] args) {

    	//int的最大值 
    	System.out.println(Integer.MAX_VALUE);
    	//int的最小值    	
    	System.out.println(Integer.MIN_VALUE);
         
    }
}
步骤 8 :

练习-装箱拆箱

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
1. 对byte,short,float,double进行自动拆箱和自动装箱

2. byte和Integer之间能否进行自动拆箱和自动装箱

3. 通过Byte获取byte的最大值
步骤 9 :

答案-装箱拆箱

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

2分11秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)


package digit; public class TestNumber { public static void main(String[] args) { // 1. 对byte,short,float,double进行自动拆箱和自动装箱 byte b = 1; short s = 2; float f = 3.14f; double d = 6.18; // 自动装箱 Byte b1 = b; Short s1 = s; Float f1 = f; Double d1 = d; // 自动拆箱 b = b1; s = s1; f = f1; d = d1; // 2. byte和Integer之间能否进行自动拆箱和自动装箱 Integer i1 = b; //不能把byte直接自动装箱成Integer b = new Integer(1); //也不能把Integer自动拆箱成 byte // 3. 通过Byte获取byte的最大值 System.out.println(Byte.MAX_VALUE); } }


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-09-17 交作业交作业交作业交作业交作业交作业交作业
Robin93GG



交作业交作业交作业交作业交作业交作业交作业交作业交作业交作业交作业
/*

1. 对byte,short,float,double进行自动拆箱和自动装箱

2. byte和Integer之间能否进行自动拆箱和自动装箱

3. 通过Byte获取byte的最大值

*/

public class Test{

	public static void main(String[] args){
	
	//  1. 对byte,short,float,double进行自动拆箱和自动装箱
		byte b1 = 5;
		Byte by = new Byte(b1);//自动装箱
		System.out.println("自动装箱后的结果: " + by);
		byte b2 = by.byteValue();//自动拆箱
		System.out.println("自动拆箱后的结果: " + b2);
		
		short s1 = 4;
		Short st = new Short(s1);//自动装箱
		System.out.println("自动装箱后的结果: " + st);
		short s2 = st.shortValue();//自动拆箱
		System.out.println("自动拆箱后的结果: " + s2);
		
		float f1 = 3.5f;
		Float ft = new Float(f1);//自动装箱
		System.out.println("自动装箱后的结果: " + ft);
		float f2 = ft.floatValue();//自动拆箱
		System.out.println("自动拆箱后的结果: " + f2);
		
		double d1 = 4.5;
		Double de = new Double(d1);//自动装箱
		System.out.println("自动装箱后的结果: " + de);
		double d2 = de.doubleValue();//自动拆箱
		System.out.println("自动拆箱后的结果: " + d2);
		
		
    //  2. byte和Integer之间能否进行自动拆箱和自动装箱
		byte b3 = 6;
		Integer it = new Integer(b3);
		System.out.println("自动装箱后的结果: " + it);
		byte b4 = (byte)it.intValue();
		System.out.println("自动拆箱后的结果: " + b4);
		
	//  3. 通过Byte获取byte的最大值
	    System.out.println("byte的最大值: " + Byte.MAX_VALUE);
	}
}

							


2 个答案

滑落的星辰 答案时间:2018-10-09
写错了吧

DylanTam 答案时间:2018-09-30
上面代码的写法是不是 1. 基本类型转换成封装类型 2. 封装类型转换成基本类型 如果用自动封装或自动拆箱应该不是这样写吧?




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-08-30 按在地上摩擦~
脑子转不过来



结果: 127 3.4028235E38 32767 1.7976931348623157E308
/**
 * 装箱拆箱
 * @author Chen
 */
public class IndexController {
/**
 * 1. 对byte,short,float,double进行自动拆箱和自动装箱
 * 2. byte和Integer之间能否进行自动拆箱和自动装箱
 * 3. 通过Byte获取byte的最大值
 */
	public static void main(String[] args) {
		byte b = 3;
		float f = 4;
		short s = 5;
		double d = 6;
		
		//自动装箱
		Byte bt = b;
		Float ft = f;
		Short st = s;
		Double db = d;
		
		//拆箱
		byte bt2 = bt;
		float ft2 = ft;
		short st2 = st;
		double db2 = db;
		
		System.out.println("结果:");
		System.out.println(Byte.MAX_VALUE);
		System.out.println(Float.MAX_VALUE);
		System.out.println(Short.MAX_VALUE);
		System.out.println(Double.MAX_VALUE);
	}
}

							






答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-08-29 int 可以吧Byte自动拆箱,其他都不行
2018-08-27 我们一起成长~
2018-05-13 交作业
2018-05-07 交作业
2018-03-07 提交作业啊.
2018-03-05 自动拆箱这个怎么解释
2017-12-12 经过后面的学习,我胡汉三回来写个小记
2017-12-04 作业提交
2017-10-11 只有把Byte 自动拆箱到int可以。
2016-11-01 可以直接把Byte拆箱到int耶
2016-05-12 直接输出Integer类型不行吗,为什么要转换为int类型呢




提问之前请登陆
关于 JAVA 基础-数字与字符串-装箱拆箱 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 902680467
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图