"Bună, Amigo! Sunt din nou eu. Aș dori să-ți spun despre o altă clasă de wrapper destul de simplă. Astăzi vom vorbi despre Character, wrapper-ul pentru char."
„Această clasă este, de asemenea, destul de simplă”.
Cod
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;
}
}
„Are următoarele:”
1) Un constructor care preia valoarea internă și o metodă charValue care o returnează.
2) O metodă valueOf care returnează obiecte Character, dar memorează în cache obiecte cu valori de la 0 la 127. La fel ca Integer, Short și Byte.
3) metodele hashCode() și equals — din nou, nu este nimic surprinzător aici.
„Și are o mulțime de alte metode utile (nu sunt afișate mai sus). Vă voi enumera câteva aici:”
Metodă | Descriere |
---|---|
|
Este caracterul un caracter Unicode? |
|
Caracterul este o cifră? |
|
Este personajul un personaj de control? |
|
Personajul este o literă? |
|
Caracterul este o literă sau o cifră? |
|
Este aceasta o literă mică? |
|
Este aceasta o literă mare? |
|
Este personajul un spațiu sau ceva similar (există o mulțime de personaje invizibile)? |
|
Este personajul un caracter de titlu? |
— Mulțumesc, Kim. Cred că unele dintre aceste metode îmi vor fi utile.
GO TO FULL VERSION