About Warpper Classes

类别:Java 点击:0 评论:0 推荐:

l          Wrapper Classes(包裝類別)

l           特別注意常出現狀況

n          Wrapped values不能被更改。

n          不能直接把Boolean拿來evaluate true/false值,否則會compiler error。

n          不同class的wrapper class,即使值相同,用equals()去比也是false。

n          primitve xxxValue()    //不接受任何引數,回傳primitive

n          primitive parseXXX(String)  //只接受String引數,回傳primitive

n          Wrapper valueOf(String)  //只接受String引數,回傳wrapper object

l           primitive data types / wrapper classes

primitive types

Wrapper classes

boolean

Boolean

byte

Byte

short

Short

int

Integer

long

Long

char

Character

float

Float

double

Double

l           用Primitives產生String / 從String中剖析出Primitives

classes

primitive value轉成
string object

string object剖析成
primitive values

意義

直接將primitive value轉成string object

直接將string object剖析成primitive values

注意事項

n           為static method

n           radix可是任意基底

n           為static method

n           radix可是任意基底

n           會throws NumberFormatException

n           return type是primitive type

舉例

Integer.toBinaryString(15)  //1111

Integer.toOctalString(15)   //17

Integer.toHexString(15)    //f

Integer.toString(15,3)     //120

Integer.parseInt(“15”)       //15

Integer.parseInt(“15”,16)    //21

Integer.parseInt(“f”,16)      //15

Integer.parseInt(“1010”,2)  //10

Integer.parseInt(“0xf”,16)  //丟出NumberFormatException

Byte

String toString(type s)

ex : String toString(byte s)

//type為對應之primite type(byte、short、boolean、char、float、double)

long parseByte(String s)

long parseByte(String s,int radix)

Short

long parseShort(String s)

long parseShort(String s,int radix)

Float

float parseFloat(String s)

Double

double parseDouble(String s)

Boolean

 

Character

 

Integer

String toBinaryString(type i)

String toHexString(type i)

String toOctalString(type i)

String toString (type i)

String toString(type i,int radix)

// type為對應之primite type(int、long)

int parseInt(String s)

int parseInt(String s,int radix)

Long

long parseLong(String s)

long parseLong(String s,int radix)

l           由Primitive產生Wrapped objects / 取出Wrapped Objects內的Wrapped Value

classes

由Primitive產生

Wrapped objects

取出Wrapped Objects內的

Wrapped Value

意義

將primitive value包裝成wrapped object

取出wrapped objects內的wrapped value

注意事項

 

n           為instance method

舉例

Integer wi = new Integer(15);

Boolean wb = new Boolean(true);

Integer wi = new Integer(15);

println(wi.doubleValue()); //15.0

Boolean

Type(type val)

ex : Boolean(boolean val)

// Type為對應之Wrapped Object

(Boolean、Character、...)

// type為對應之primite type

(boolean、char、...)

boolean booleanValue()

Character

char charValue()

Short

byte byteValue()

short shortValue()

ing intValue()

long longValue()

float floatValue()

double doubleValue()

Integer

Long

Byte

Float

Double

l           從String產生Wrapped Object

classes

method

意義

將對應的primitive value包裝成wrapped object。

注意事項

n           為constructors或static methods。

n           static methods的return type是wrapper class而非primitive type。

n           都會throws NumberFormatException。

n           若string的開頭是”0X”、”0x”、”#”,則以16為基底來parse(開頭0以8為基底),否則以10為基底來parse。

n           radix可是任意基底。

valueOf(String s)

以10為基底來parse string ”s”。

decode(String s)

先看”s”字串的開頭為何再決定以16、10或8為基底來parse。

舉例

Integer.decode(“15”).byteValue()    //15

Integer.decode(“030”).shortValue()  //24

Integer.decode(“0x0f”).intValue()    //15

Integer.valueOf(“100”).byteValue()  //100

Integer.valueOf(“2w”).byteValue()   //throws NumberFormatException

Integer.valueOf(“f”,16).byteValue()  //15

Integer.valueOf(“20”,3).byteValue()  //6

Character

 

Boolean

Type(String s)  // constructor

static Type valueOf(String)

// Type為對應之Wrapped Object(Boolean、Float、Double)

Float

Double

Short

Type(String s)  // constructor

static Type decode(String s)

static Type valueOf(String s)

static Type valueOf(String s,int radix)

// Type為對應之Wrapped Object(Short、Integer、Long、Byte)

Integer

Long

Byte

l           Character內常用的Class Methods

用途

改變或判斷char value

舉例

Character.isLetter(‘a’); // true

Character.isDigit(‘5’); // true

Character.toLowerCase(‘Q’); // q

methods

static boolean isDigit(char ch)

static boolean isLetter(char ch)

static boolean isLetterOrDigit(char ch)

static boolean isLowerCase(char ch)

static boolean isUpperCase(char ch)

static boolean isWhiteSpace(char ch)

static char toLowerCase(char ch)

static char toUpperCase(char ch)


来自于:【 Garfield 的 SCJP 閱讀筆記 】

本文地址:http://com.8s8s.com/it/it14950.htm