c 經典入門學習筆記 封箱和拆箱

2021-04-17 15:48:47 字數 716 閱讀 8312

封箱和拆箱,這個概念在以前的程式語言的學習中,從未聽到過,現在先說一下封箱的概念是把值型別轉換為object型別,或者轉換為由值型別實現的介面型別。在這裡有個值型別是個什麼概念呢?我是這樣理解的,所謂值型別就是指像int、string之類的簡單型別,像集合、陣列應該就不是值型別還應該歸為物件型別。

下面看乙個封箱的例子:

struct mystruct{

public int val;

mystruct valtype1=new mystruct();

valtype1.val=5;

object  valtype=valtype1;//這樣就完成了封裝

相當於把將mystruct和valtype1封裝在乙個盒子中。

拆箱即是將物件型別轉換為值型別或為初始的介面型別。

例如:

mystruct valtype1=new mystruct();

imyinte***ce reftype=valtype();

mystruct valtype2=(mystruct)reftype;

拆箱和封箱都是非常簡單的操作,但具體該什麼時候使用,該如何使用,我還不知道。不過書上有這麼句話應該理解:封箱非常有用,有兩個非常重要的原因。首先,它允許使用集合中的值型別,集合中項的型別是object。其次,有乙個內部機制允許在值型別上呼叫object,例如int和結構。

理論的內容,就是這些,你看明白了嗎?期待下一節的內容。

封箱和拆箱

1 封箱 是把值型別轉換為system.object型別 引用型別 或者轉換為值型別實現的介面型別。注 引用型別和值型別見 2 2 拆箱 是將引用型別轉換為值型別。經典 int i 5 object obj i 封箱 int j int obj 拆箱 1 值型別 值型別在記憶體的同乙個地方儲存它們自...

Interger拆箱和封箱

自動裝包 基本型別自動轉為包裝型別.int integer 自動拆包 包裝型別自動轉為基本型別.integer int 裝箱原始碼邏輯 128 127返回 interger cache中的值 public static integer valueof int i demo interger的裝箱和拆...

自動封箱和拆箱

integer 中 public static integer valueof int i 如果沒有設定integercache.high的值,預設為127,也就是說值在 128 127之間,返回的都是同乙個物件。integerf1 100,f2 100,f3 150,f4 150 system.o...