クラスとオブジェクト
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 には影響しません。同じクラスから無制限にオブジェクトを作成でき、それぞれが独自のデータを持っています。
チャレンジ
中級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));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
4継承
継承の基本 (extends)super キーワードメソッドのオーバーライド (@Override)コンストラクタチェーンObject クラス単一継承と多段階継承なぜ多重継承ができないのかまとめ:従業員の階層構造