Menu
Coddy logo textTech

クラスとオブジェクト

CoddyのJavaジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 3/87。

クラスは構造を定義する設計図です。オブジェクトはその設計図から作成された特定のインスタンスです。

クラス(設計図)

public class Car {
    String brand;
    int year;
    
    public Car(String brand, int year) {
        this.brand = brand;
        this.year = year;
    }
    
    public String getInfo() {
        return this.brand + " (" + this.year + ")";
    }
}

オブジェクト(インスタンス)の作成

Car car1 = new Car("Tesla", 2023);
Car car2 = new Car("Honda", 2020);

System.out.println(car1.getInfo());  // Tesla (2023)
System.out.println(car2.getInfo());  // Honda (2020)

各オブジェクトは独立しています。car1 を変更しても car2 には影響しません。同じクラスから無制限にオブジェクトを作成でき、それぞれが独自のデータを持っています。

challenge icon

チャレンジ

中級

Car クラス(設計図)を作成してください。プログラムはこのクラスから2つの異なるオブジェクト(インスタンス)を作成します:

  • フィールド: brand (String) と year (int)
  • 両方のフィールドを設定するコンストラクタ
  • "<brand> (<year>)" を返す getInfo() メソッド

チートシート

クラスは構造を定義する設計図です。オブジェクトは、その設計図から作成された特定のインスタンスです。

クラスの定義:

public class Car {
    String brand;
    int year;
    
    public Car(String brand, int year) {
        this.brand = brand;
        this.year = year;
    }
    
    public String getInfo() {
        return this.brand + " (" + this.year + ")";
    }
}

クラスからオブジェクトを作成する:

Car car1 = new Car("Tesla", 2023);
Car car2 = new Car("Honda", 2020);

System.out.println(car1.getInfo());  // Tesla (2023)
System.out.println(car2.getInfo());  // Honda (2020)

各オブジェクトは独自のデータを持ち、独立しています。同じクラスから無制限にオブジェクトを作成できます。

自分で試してみよう

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        String brand1 = scanner.nextLine();
        int year1 = Integer.parseInt(scanner.nextLine());
        String brand2 = scanner.nextLine();
        int year2 = Integer.parseInt(scanner.nextLine());
        
        Car car1 = new Car(brand1, year1);
        Car car2 = new Car(brand2, year2);
        
        System.out.println("Car 1: " + car1.getInfo());
        System.out.println("Car 2: " + car2.getInfo());
        System.out.println("Same car? " + (car1 == car2));
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン