Javaの基礎(クラス型の変数?)
noteにも月額制のサービスが始まるらしいですね。最近は何かとサブスクリプションのサービスが流行ってるみたいですね。ネットフリックスやアマゾンプライムは安く感じるのですが、PS4のオンラインサービスは高く感じるのは私だけですか。。
そんなことはさておき、今日はクラス型の変数について、共有したいと思います。よくある、人の設計書と車の設計書で記述しました。
Personクラス『人の設計書』
class Person {
private String name;
private int age;
Person(String name, int age){
this.name = name;
this.age = age;
}
public void printData(){
System.out.println("所有者:" + this.name);
System.out.println("年齢:" + this.age + "歳");
}
}
名前と年齢を持ったPersonクラスを作成
Carクラス『車の設計書』
class Car {
private String name;
private String color;
protected Person owner_name;
Car(String name, String color) {
this.name = name;
this.color = color;
}
public void printData() {
System.out.println("名前:" + this.name);
System.out.println("色:" + this.color);
}
public void setOwner(Person person){
this.owner_name = person;
}
}
インスタンスフィールドに Personのクラス型の変数を入力しています。
protected Person owner_name;
//privateではなくて、protectedにしているのは、また別の機会で共有できればと思います。
セッターを使って、クラス型のPersonのpersonという変数をowner_nameとするメソッドを作成。
public void setOwner(Person person){
this.owner_name = person;
}
実行ファイル
class Main{
public static void main(String[] args){
Person person = new Person("田村", 100);
Car car = new Car("車", "ブラック");
car.printData();
System.out.println("----------------");
car.setOwner(person);
car.owner_name.printData();
}
}
①人と車のインスタンスをそれぞれ作成
Person person = new Person("田村", 100);
Car car = new Car("車", "ブラック");
②車の情報を出力
car.printData();
//carクラスにあるprintDataメソッドを使用している
③carインスタンスにpersonインスタンスを組み合わせる
car.setOwner(person);
//carクラスに記載しているセッターメソッドを使用している
④車の所有者情報を出力する
car.owner_name.printData();
//carクラスのowner_nameはPersonクラス型なので
PersonクラスにあるprintDataメソッドが呼び出される
以上でクラス型の変数についての共有となります。
その他にも色々記事を書いているのでぜひ、そちらもご参照ください。
この記事が気に入ったらサポートをしてみませんか?