"Hej, Amigo! Det är jag igen. Jag skulle vilja berätta om en annan ganska enkel inpackningsklass. Idag ska vi prata om Character, omslaget för röding."
"Den här klassen är också ganska enkel."
Koda
class Character
{
private final char value;
Character(char value)
{
this.value = value;
}
public char charValue()
{
return value;
}
static final Character cache[] = new Character[127 + 1];
public static Character valueOf(char c)
{
if (c <= 127)
return cache[(int)c];
return new Character(c);
}
public int hashCode()
{
return (int)value;
}
public boolean equals(Object obj)
{
if (obj instanceof Character)
{
return value == ((Character)obj).charValue();
}
return false;
}
}
"Den har följande:"
1) En konstruktor som tar det interna värdet och en charValue-metod som returnerar det.
2) En valueOf-metod som returnerar Character-objekt, men cachar objekt med värden från 0 till 127. Precis som Integer, Short och Byte.
3) hashCode() och är lika med metoder — återigen, det är inget förvånande här.
"Och den har många andra användbara metoder (visas inte ovan). Jag ska lista några åt dig här:"
Metod | Beskrivning |
---|---|
|
Är tecknet ett Unicode-tecken? |
|
Är tecknet en siffra? |
|
Är karaktären en kontrollkaraktär? |
|
Är karaktären en bokstav? |
|
Är tecknet en bokstav eller en siffra? |
|
Är detta en liten bokstav? |
|
Är detta en stor bokstav? |
|
Är karaktären ett mellanslag eller något liknande (det finns många osynliga tecken)? |
|
Är karaktären ett skiftläge? |
"Tack, Kim. Jag tror att några av dessa metoder kommer att vara användbara för mig."
GO TO FULL VERSION