public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println();
}
}
public class Main {
public static void main(String[] args) {
// 複数の Person オブジェクトを生成して配列に格納
Person[] people = new Person[3];
people[0] = new Person("John", 25);
people[1] = new Person("Jane", 30);
people[2] = new Person("Bob", 22);
// オブジェクトの情報を表示
for (Person person : people) {
person.displayInfo();
}
}
}
この例では、Person
クラスが name
と age
を持ち、displayInfo()
メソッドでオブジェクトの情報を表示します。Main
クラスでは、異なる名前と年齢を持つ複数の Person
オブジェクトを生成して、それぞれの情報をコンソールに表示しています。このコードを実行すると、各 Person
オブジェクトの情報が表示されるでしょう。
複数のオブジェクトは独立している
オブジェクト指向プログラミング(OOP)において、異なるオブジェクトは互いに影響を与えず、独立して存在しています。これはOOPの基本的な原則である「カプセル化」や「情報隠蔽」の考え方に関連しています。
以下に、「複数のオブジェクトは独立している」原則について詳しく説明します:
- カプセル化と情報隠蔽:
- 各オブジェクトは自身の内部状態を隠蔽し、外部からは直接アクセスされません。これにより、オブジェクトの内部実装が変更されても他のオブジェクトには影響を与えません。
- 独立して動作:
- 各オブジェクトは独立して機能し、他のオブジェクトの状態や挙動に影響を与えないように設計されます。これにより、プログラム全体が柔軟で保守しやすくなります。
- クラスとインスタンス:
- クラスは設計図であり、それを元にして生成された各インスタンスは独立して存在します。クラスの変更が他のクラスやインスタンスに影響を与えないようにすることが重要です。
- 相互作用の制御:
- オブジェクト間の相互作用は、適切なメソッドやインタフェースを通じて制御されます。これにより、オブジェクト同士が直接的に依存しすぎないようになります。
- 独立した状態:
- 各オブジェクトは独自の状態を持ち、その状態が他のオブジェクトに依存しないようにします。この考え方は、アプリケーションが拡張性や保守性を持つのに役立ちます。
この原則に従って設計されたオブジェクト指向プログラムは、柔軟性があり、変更が容易で、再利用性が高いといった利点を持ちます。各オブジェクトが独立していることで、プログラムの理解やメンテナンスもしやすくなります。
複数のオブジェクトの生成
複数のオブジェクトを生成は下記のように行います。
クラスの宣言
まず、異なる名前と年齢を持つ Person
クラスを宣言します。クラスはオブジェクトを生成するための設計図であり、その構造を定義します。以下は、Person
クラスの例です。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println();
}
}
2. 複数のオブジェクトの生成
次に、Main
クラスで複数の Person
オブジェクトを生成します。これには、配列やリストを使うことがあります。以下は、配列を使用した例です。
public class Main {
public static void main(String[] args) {
// 複数の Person オブジェクトを生成して配列に格納
Person[] people = new Person[3];
people[0] = new Person("John", 25);
people[1] = new Person("Jane", 30);
people[2] = new Person("Bob", 22);
// オブジェクトの情報を表示
for (Person person : people) {
person.displayInfo();
}
}
}
3. オブジェクトの情報を表示
Main
クラスでは、Person
オブジェクトを生成して、それぞれの情報を表示しています。for
ループを使用して、配列内の各 Person
オブジェクトにアクセスし、displayInfo()
メソッドを呼び出して情報を表示しています。
このようにして、同じクラスの異なるオブジェクトを生成し、それぞれの情報を効果的に処理できます。これが「複数のオブジェクトの生成」の基本的な流れです。