クラス(class)
オブジェクト(インスタンス)が持つ、属性(アトリビュート、プロパティ)や、メソッド(関数、ファンクション)などを定義する。
class クラス名 {
型 属性;
:
型 メソッド() { … }
:
}
クラスのインスタンス化(new)
あるクラスのインスタンスをnewを使って作成する。
TestClass o = new TestClass();
クラスの例
Person クラスは、myName と myAge という属性を持っています。SetName()、GetName()、SetAge()、GetAge() というメソッドを持っています。
class Person {
String myName;
int myAge;
public void SetName(String name) {
myName = name;
}
public String GetName() {
return myName;
}
public void SetAge(int age) {
myAge = age;
}
public int GetAge() {
return myAge;
}
}
このクラスをインスタンス(田中さん、鈴木さん)を作って利用する。
class PersonTest {
public static void main(String[] args) {
Person tanaka = new Person(); // 田中さんオブジェクトを作る
tanaka.SetName(“Tanaka”); // 田中さんの名前を設定する
tanaka.SetAge(26); // 田中さんの年齢を設定する
Person suzuki = new Person(); // 鈴木さんオブジェクトを作る
suzuki.SetName(“Suzuki”); // 鈴木さんの名前を設定する
suzuki.SetAge(32); // 鈴木さんの年齢を設定する
System.out.println(tanaka.GetName());
System.out.println(tanaka.GetAge());
System.out.println(suzuki.GetName());
System.out.println(suzuki.GetAge());
}
}
クラスの継承(extends)
あるクラスのメンバ変数やメソッドを継承した サブクラス(子クラス)の定義にはextends を使用。
下記例ではPerson クラスを継承する Member クラスを定義している。Memberクラスは Personクラスを継承しているので、myName、myAge などの属性や、GetName()、SetName() などのメソッドを引き継ぎ、加えてmyNumberやSetNumber()などの属性やメソッドを備えている。
class Member extends Person {
int myNumber;
public void SetNumber(int number) {
myNumber = number;
}
public int GetNumber() {
return myNumber;
}
}
親クラスの参照(super)
親クラスのコンストラクタは暗黙的には呼ばれないため、下記のようにsuperを使って明示的に呼び出してやる必要がある。
class Member extends Person {
Member() {
super(“tanaka”); // 親クラスのコンストラクタを呼び出す
super.SetAge(26); // 親クラスのメソッドを呼び出す
return super.myName; // 親クラスの属性を参照する
}
}
クラスに属しているか調べる(instanceof)
ブジェクト(インスタンス)が、指定したクラスまたはその上位のクラスに属しているかどうかを調べます。
MyButton b = new MyButton();
if (b instanceof Button) {
System.out.println(“属してる”);
} else {
System.out.println(“属していない”);
}