Javaでは,自分で型を作成することもできます.
まずは,人の氏名(姓,名)を持つ型 Person
を作成してみましょう.
public class Person{
String givenName;
String familyName;
}
これで,Person
型の作成は完了です.Person
型は2つの String
型のフィールド変数
を持っています.givenName
(名)とfamilyName
(姓)です.
このプログラムだけでは何もできませんので,Person
型を利用するプログラムPersonManager
を作成しましょう.
public class PersonManager{
Person createPerson(String name1, String name2){
Person person = new Person();
person.givenName = name1;
person.familyName = name2;
return person;
}
void printPerson(Person person){
System.out.printf("%s, %s%n",
person.familyName, person.givenName);
}
void run(){
Person person1 =
this.createPerson("Haruaki", "Tamada");
this.printPerson(person1);
// ここに処理を追加する.
}
public static void main(String[] args){
PersonManager app = new PersonManager();
app.run();
}
}
以上のプログラムを作成し,実行してみましょう. 作成できれば,次の指示に従って,プログラムを拡張してみましょう. その際,メモリの状態を想像しながらプログラムを書いていってください.
フィールドの参照・代入もメソッド呼び出しと同じように,どの実体のフィールドなのかを
意識して指定してください.Person
型のフィールドgivenName
には,上記のperson.givenName = name1
のように,Person
型の変数を介してしかアクセスできません.
では,PersonManager
の run
メソッドに次の処理を追加してみましょう.
作成できれば,コンパイルして,実行結果を確認してください.
Person
型の変数 person2
を宣言してください.person2
に自分の名前を持つ Person
型の実体を作成して,代入してください.person2
の情報を画面に出力してください.それができれば,次の処理も実行してみましょう.
Person
型の変数 person3
を宣言してください.person3
に person1
を代入してください.person3
の familyName
を全て大文字にしてください.
person3.familyName = person3.familyName.toUpperCase();
person1
の情報を画面に出力してください.今回作成したPerson
型の実体をArrayList
に入れてみましょう.
ArrayList
には,Integer
型以外でもどのような型でも入れられますので,
上記のように,ArrayList
にどのような型を入れるのか,入っている型が何かをしっかりと認識しましょう.