"Hi, Amigo! Ako na naman. Gusto kong ikuwento sa iyo ang tungkol sa isa pang medyo simpleng klase ng wrapper. Ngayon ay pag-uusapan natin ang tungkol sa Character, ang wrapper para sa char."

"Medyo simple din ang klase na ito."

Code
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;
 }
}

"Ito ay may mga sumusunod:"

1) Isang constructor na kumukuha ng panloob na halaga at isang paraan ng charValue na nagbabalik nito.

2) Isang valueOf method na nagbabalik ng mga Character object, ngunit nag-cache ng mga object na may mga value mula 0 hanggang 127. Tulad ng Integer, Short, at Byte.

3) hashCode() at katumbas ng mga pamamaraan — muli, walang nakakagulat dito.

"At mayroon itong maraming iba pang kapaki-pakinabang na pamamaraan (hindi ipinapakita sa itaas). Ililista ko ang ilan para sa iyo dito:"

Pamamaraan Paglalarawan
boolean isDefined(char)
Unicode character ba ang character?
boolean isDigit(char)
Ang karakter ba ay isang digit?
boolean isISOControl(char)
Ang karakter ba ay isang control character?
boolean isLetter(char)
Ang karakter ba ay isang liham?
boolean isJavaLetterOrDigit()
Ang karakter ba ay isang titik o isang digit?
boolean isLowerCase(char)
Ito ba ay isang maliit na titik?
boolean isUpperCase(char)
Ito ba ay isang malaking titik?
boolean isSpaceChar(char)
Ang karakter ba ay isang puwang o isang katulad na bagay (mayroong maraming hindi nakikitang mga character)?
boolean isTitleCase(char)
Ang karakter ba ay isang titlecase na character?

"Salamat, Kim. I think some of these ways will be useful for me."