Java的8種包裝類:Wrapper Class


Java有8種基本數據類型,為什么又要出現對應的8種包裝類:

1、Java的8種基本數據類型不支持面向對象編程機制

2、8種基本數據類型不具備“對象”的特性:沒有成員變量、方法可供調用

3、例如:某個方法需要Object類型的參數,但實際需要的卻是2、3這種值,只靠基本的數據類型無法轉換成Object參數傳遞過去

4、為解決8種基本數據類型不能當成Object類型使用的問題,Java提供了包裝類的概念:

8種基本數據類型與對應的包裝類:

byte         ------------------------>      Byte

short       ------------------------->     Short

int           ------------------------->     Integer

long        ------------------------->     Long

char        ------------------------->     Character

float        ------------------------->     Float

double    ------------------------->     Double

boolean  ------------------------->    Boolean

5、基本類型與包裝類之間的轉換(JDK1.5之前):

  5.1、通過包裝類對應的構造器實現

  5.2、通過傳入一些字符串參數,來構建包裝類對象,如:

    Integer a = new Integer("5.5");

  5.3、如果想獲得包裝類對象中包裝的基本類型變量,可以用包裝類提供的.xxxValue()方法

代碼示例:

public class WrapperClass{
	public static void main(String[] args){
		//-構造器方法定義Integer包裝類a,並賦值
		Integer a=new Integer("5");
		System.out.println(a);
		
		//-構造器方法定義Double包裝類b,並賦值
		Double b=new Double("5.5");
		System.out.println(b);

		//-通過包裝類.xxxValue()方法,從包裝類對象中獲取基本類變量
		int c=a.intValue();
		System.out.println(c);

		double d=b.doubleValue();
		System.out.println(d);
	}
}

 運行結果:

 

6、基本類型與包裝類之間的轉換(JDK1.5之后):

  6.1、自動裝箱(Autoboxing):把一個基本類型的變量,直接賦值給對應的包裝類變量,或者賦值給Object變量(Object是所有類的父類,子類對象可以直接賦給父類變量----Java的向上自動轉型特性)如:

    Integer i=3;或Object j=4;

  6.2、自動拆箱(AutoUnboxing):把一個包裝類變量,直接賦值給一個基本類型的變量,如:

    int a=i;

    注意:int b=j;編譯會報錯,原因是:Java有向上自動轉型特性,但不能自動向下轉型,想要轉要加強制轉換,如:

    int b = (Integer)j;

代碼示例:

public class AutoBoxingUnboxing{
	public static void main(String[] args){
		//-自動裝箱
		Integer a=3;
		//-自動拆箱
		int b=a;

		//-直接賦值給Object類型的變量,利用了Java的向上自動轉型特性
		Object o=true;
		if(o instanceof Boolean){
			//-Object類型不能直接賦值給Boolean類型,Java不能自動向下轉型,如下代碼會報錯
			//Boolean d=o;
			//-想向下轉型可以用強制轉換方法,如下代碼
			Boolean c=(Boolean)o;
			System.out.println(c);
		}
	}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM