🕌
JavaのコンストラクタとGetter / Setterについて
概要
Javaの初学者で、早速コンストラクタとGetter / Setterの概念でつまづいたので、備忘録も兼ねて記事を作成。今回は、Dogというクラスに対して、dogType(犬の種類)、dogName(犬の名前)、dogColor(犬の色)、dogAge(犬の年齢)という4つの変数を付与するプログラムを作る。
最終的には、以下コードで出力すると、「Dog type:Labrador Dog name:Buddy Dog Color:Black Dog age:5」と表示される。
Dog myDog = new Dog("Labrador", "Buddy", "Black", 5);
System.out.println(myDog);
また、GetterとSetterを作っているため、それぞれ以下のように出力される。
// 出力: Dog's name: Buddy
System.out.println("Dog's name: " + myDog.getDogName());
// セッターを使用して名前を変更
myDog.setDogName("Max");
// ゲッターを使用して変更後の名前を取得。出力: New dog's name: Max
System.out.println("New dog's name: " + myDog.getDogName());
インスタンス変数
まずは、Dogというクラスに対して、dogType(犬の種類)、dogName(犬の名前)、dogColor(犬の色)、dogAge(犬の年齢)という4つのプライベートインスタンスの変数を設定する。こうすることで、classの外からは情報を見ることができない。
private String dogType;
private String dogName;
private String dogColor;
private int dogAge;
コンストラクタ
ここでは、「Dog myDog = new Dog("Labrador", "Buddy", "Black", 5);」のようにして、新しい犬を作れるようなプログラムを作る。犬の種類、名前、色、年齢を教えると、その情報を使って新しい犬を作ってくれる。
public Dog(String dogType, String dogName, String dogColor, int dogAge) {
this.dogType = dogType;
this.dogName = dogName;
this.dogColor = dogColor;
this.dogAge = dogAge;
}
Getter / Setter
Getterとは、現在の設定内容を教えてくれるもの。例えば、この犬の名前は?と聞くと、「Buddy」といった形で教えてくれる。Setterとは、犬の名前を変更してくれるもの。例えば、この犬の名前を「Max」に変更して、というと、「Max」に変更してくれる。
それぞれ、以下のようにコードを作成する。
public String getDogName() {
return dogName;
}
public void setDogName(String dogName) {
this.dogName = dogName;
}
return
最後に、どのような形で出力を返すか、returnに記載している。
@Override
public String toString() {
return "Dog type:" + dogType + " Dog name:" + dogName + " Dog Color:" + dogColor + " Dog age:" + dogAge;
}
テスト
最後に、このように変数設定することで、dogの中身を出力できる。
public static void main(String[] args) {
Dog myDog = new Dog("Labrador", "Buddy", "Black", 5);
System.out.println(myDog);
}
コード全体
public class Dog {
private String dogType;
private String dogName;
private String dogColor;
private int dogAge;
public Dog(String dogType, String dogName, String dogColor, int dogAge) {
this.dogType = dogType;
this.dogName = dogName;
this.dogColor = dogColor;
this.dogAge = dogAge;
}
public String getDogType() {
return dogType;
}
public void setDogType(String dogType) {
this.dogType = dogType;
}
public String getDogName() {
return dogName;
}
public void setDogName(String dogName) {
this.dogName = dogName;
}
public String getDogColor() {
return dogColor;
}
public void setDogColor(String dogColor) {
this.dogColor = dogColor;
}
public int getDogAge() {
return dogAge;
}
public void setDogAge(int dogAge) {
this.dogAge = dogAge;
}
@Override
public String toString() {
return "Dog type:" + dogType + " Dog name:" + dogName + " Dog Color:" + dogColor + " Dog age:" + dogAge;
}
public static void main(String[] args) {
Dog myDog = new Dog("Labrador", "Buddy", "Black", 5);
System.out.println(myDog);
System.out.println("Dog's name: " + myDog.getDogName());
myDog.setDogName("Max");
// ゲッターを使用して変更後の名前を取得
System.out.println("New dog's name: " + myDog.getDogName()); // 出力: New dog's name: Max
}
}
Discussion