„Cześć, Amigo! To znowu ja. Chciałbym opowiedzieć ci o innej dość prostej klasie opakowującej. Dzisiaj będziemy mówić o postaci, opakowaniu dla znaku”.
„Ta klasa jest również dość prosta”.
Kod
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;
}
}
„Ma następujące elementy:”
1) Konstruktor pobierający wartość wewnętrzną i metodę charValue, która ją zwraca.
2) Metoda valueOf, która zwraca obiekty typu Character, ale buforuje obiekty z wartościami od 0 do 127. Podobnie jak Integer, Short i Byte.
3) metody hashCode() i equals — znowu nie ma w tym nic zaskakującego.
„I ma wiele innych przydatnych metod (niepokazanych powyżej). Wymienię kilka dla ciebie tutaj:”
metoda | Opis |
---|---|
|
Czy znak jest znakiem Unicode? |
|
Czy znak jest cyfrą? |
|
Czy postać jest postacią kontrolną? |
|
Czy postać jest literą? |
|
Czy znak jest literą czy cyfrą? |
|
Czy to jest mała litera? |
|
Czy to jest wielka litera? |
|
Czy znak jest spacją lub czymś podobnym (jest wiele niewidocznych znaków)? |
|
Czy postać jest znakiem tytułowym? |
„Dziękuję, Kim. Myślę, że niektóre z tych metod będą dla mnie przydatne”.
GO TO FULL VERSION