我明白什麼是包裝類,它們的基本類型(例如:int,double等)到它們各自類的對象(例如:Integer,Double等)。但是,爲什麼我們需要包裝類,爲什麼我們選擇了它們各自類的對象。爲什麼我們需要包裝類
回答
Java是一種面向對象的語言,可以將所有東西視爲一個對象。一個簡單的文件可以被當作一個對象,一個系統的地址可以被看作是一個對象,一個圖像可以被看作是一個對象(帶有java.awt.Image),一個簡單的數據類型可以被轉換成一個對象(包裝類)。本教程討論包裝類。包裝類用於將任何數據類型轉換爲對象。
原始數據類型不是對象;他們不屬於任何階級;它們是用語言本身來定義的。有時候,需要將數據類型轉換爲Java語言中的對象。例如,直到JDK1.4,數據結構只接受要存儲的對象。數據類型將被轉換爲對象,然後添加到堆棧或向量等。對於此轉換,設計人員引入了包裝類。
什麼是包裝類?
顧名思義,一個包裝類包裝(包含)在數據類型周圍並給它一個對象外觀。無論何時,數據類型都是必需的,可以使用該對象。包裝類包括解包對象並返回數據類型的方法。它可以與巧克力相比。製造商用巧克力箔或紙包裹巧克力以防止污染。使用者拿走巧克力,取出並拋出包裝並吃掉。
請注意以下轉換。
int k = 100;
Integer it1 = new Integer(k);
int數據類型k使用Integer類轉換爲對象it1。只要需要k對象,it1對象就可以在Java編程中使用。
以下代碼可用於解包(從Integer對象獲取int)對象it1。
int m = it1.intValue();
System.out.println(m*m); // prints 10000
intValue()是返回int數據類型的Integer類的方法。
包裝類的重要性
主要有兩個用途與包裝類。
1)將簡單數據類型轉換爲對象,即將對象形式轉換爲數據類型;這裏使用構造函數。
2)要將字符串轉換爲數據類型(稱爲解析操作),此處使用parseXXX()類型的方法。
Java包裝類的功能。
1)包裝類將數字字符串轉換爲數字值。
2)將原始數據存儲在對象中的方式。
3)的的valueOf()方法是可用的所有包裝類除外字符
4)所有包裝類具有typeValue()方法。該方法返回對象的值作爲其基本類型。
除了上述Ashish的回答,還有包裝類用於泛型/集合。我們不能創建原始數據類型列表 –
- 1. 爲什麼我們需要裝飾器中的包裝函數?
- 2. Java:爲什麼需要包裝類?
- 3. 爲什麼JAX-WS需要包裝類?
- 4. 裝配需要什麼?爲什麼我們使用它們?
- 5. 爲什麼我們需要蟒蛇包裝(例如雞蛋)?
- 6. 我們需要安裝什麼?
- 7. DavLockDB:我們需要什麼?
- 8. 爲什麼我們需要simple_one_for_one?
- 9. 爲什麼我們需要TensorFlow tf.Graph?
- 10. 爲什麼我們需要使用prompt.start()?
- 11. 爲什麼我們需要scalaz.stream迭代?
- 12. 爲什麼我們需要WCF
- 13. 爲什麼我們需要Anaconda 2.7?
- 14. 爲什麼我們需要編寫log.isDebugEnabled?
- 15. 爲什麼我們需要ng-click?
- 16. 爲什麼我們需要Control.Lens.Reified?
- 17. 我們爲什麼需要纖維
- 18. 爲什麼我們需要org.junit.ComparisonFailure?
- 19. 爲什麼我們需要addRequestHeader方法?
- 20. 爲什麼我們需要時代?
- 21. 爲什麼我們需要ContinueWith方法?
- 22. 爲什麼我們需要Java NIO Selector?
- 23. 爲什麼我們需要使用ExitWindowsEx
- 24. 爲什麼我們需要在JavaScript
- 25. 爲什麼我們需要設置SONAR_RUNNER_OPTS?
- 26. 爲什麼我們需要ioc容器
- 27. mongodb爲什麼我們需要getSisterDB
- 28. 爲什麼我們需要BeginGetResponse和BeginRead?
- 29. 爲什麼我們需要fieldset標籤?
- 30. 爲什麼我們需要boost :: thread_specific_ptr?
爲什麼你需要一個包? –
@Sivakumar M如果我的答案有幫助,那麼你可以upvote,然後選擇我的答案 – Ashish
除了下面的答案由阿什什,包裝類是有泛型/收集。我們無法創建原始數據類型列表 –