🕌

JavaのコンストラクタとGetter / Setterについて

2023/12/01に公開

概要

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