課程
/后端開發
/Java
/Java入門第三季
封裝中parseInt()方法與intValue()方法的返回值有何不同,static int返回值是什么意思
2017-04-07
源自:Java入門第三季 3-1
正在回答
問的問題已經攪和在一起了,建議回看Java基礎的入門第二季。
intValue() 是一個實例方法,也就是說實例化之后的對象才能調用。此方法唯一的作用就是用來手動解包??创朔椒ㄔ创a如下:
public?int?intValue()?{ ????????return?value; ????}
作用就是把Integer對象里面的成員變量value的值返回。而即使不用調用這個方法Integer的實例也一樣會把value返回。也就是說下面兩種寫法是完全等價的:
int?a?=?new?Integer(2).intValue(); int?a?=?new?Integer(2);
而跟parseInt()相對應的其實是Integer的含String參數的構造方法。兩者的功能都是把一個字符串轉換成一個int數值,結果是一樣的,然而實現方法略有不同。看下例:
String?s?=?"200"; int?a?=?new?Integer(s); int?b?=?Integer.parseInt(s);
Integer構造方法實現如下:
public?Integer(String?s)?throws?NumberFormatException?{ ????????this.value?=?parseInt(s,?10); ????}
parseInt(String)的實現如下:
public?static?int?parseInt(String?s)?throws?NumberFormatException?{ ????????return?parseInt(s,10); ????}
可以看到,兩種方法實際上最終都調用了parseInt(s, 10)這個static方法把字符串轉換成int數值,不同的是前者是在初始化Integer對象的過程中做了一個初始化賦值的操作(賦值給實例變量value),然后自動把integer對象解包成int數值(完整的轉換過程是這樣:int a = new Integer(value).intValue(););而parseInt(s)是使用了Integer類的類方法,直接把得到的int數值賦值給b。
而兩種方法都調用到的parseInt(s, 10);方法是什么?它也是Integer類的一個類方法,內部一系列轉換動作最終返回一個int數值:
public?static?int?parseInt(String?s,?int?radix) ????????????????throws?NumberFormatException ????{ ????.... ????}
這也就回到最后一個問題,static int返回值是什么,static int方法返回的就是一個int數值。 static限制的是標記的方法或者變量的作用域。
比如一家人一起去超市買東西,每個成員買完東西最后要把所有的東西統一記賬一起結賬。設計這種場景時就可以把購物車設置為static,每個實例(人)都可以修改購物車的內容。
say意 提問者
給樓上的樓上點贊
樓上講的很詳細嘛
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
2 回答為什么返回值是static?
4 回答為什么 StringBuffer類型變量可以直接賦值于string類型變量
3 回答為什么這個K變量的 類型是Integer包裝類
1 回答String類型的變量運算
1 回答this是本類的對象,obj是Object類型的。this=obj是什么意思呢?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-04-07
問的問題已經攪和在一起了,建議回看Java基礎的入門第二季。
intValue() 是一個實例方法,也就是說實例化之后的對象才能調用。此方法唯一的作用就是用來手動解包??创朔椒ㄔ创a如下:
作用就是把Integer對象里面的成員變量value的值返回。而即使不用調用這個方法Integer的實例也一樣會把value返回。也就是說下面兩種寫法是完全等價的:
而跟parseInt()相對應的其實是Integer的含String參數的構造方法。兩者的功能都是把一個字符串轉換成一個int數值,結果是一樣的,然而實現方法略有不同。看下例:
Integer構造方法實現如下:
parseInt(String)的實現如下:
可以看到,兩種方法實際上最終都調用了parseInt(s, 10)這個static方法把字符串轉換成int數值,不同的是前者是在初始化Integer對象的過程中做了一個初始化賦值的操作(賦值給實例變量value),然后自動把integer對象解包成int數值(完整的轉換過程是這樣:int a = new Integer(value).intValue(););而parseInt(s)是使用了Integer類的類方法,直接把得到的int數值賦值給b。
而兩種方法都調用到的parseInt(s, 10);方法是什么?它也是Integer類的一個類方法,內部一系列轉換動作最終返回一個int數值:
這也就回到最后一個問題,static int返回值是什么,static int方法返回的就是一個int數值。 static限制的是標記的方法或者變量的作用域。
比如一家人一起去超市買東西,每個成員買完東西最后要把所有的東西統一記賬一起結賬。設計這種場景時就可以把購物車設置為static,每個實例(人)都可以修改購物車的內容。
2018-08-08
給樓上的樓上點贊
2017-04-07
樓上講的很詳細嘛