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メソッドが呼び出される

以上でクラス型の変数についての共有となります。

その他にも色々記事を書いているのでぜひ、そちらもご参照ください。


この記事が気に入ったらサポートをしてみませんか?