public class Car {
private String model;
private String color;
private int speed;
private Owner owner;
// コンストラクタã¨ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…ã¯çœç•¥
public void displayInfo() {
System.out.println("Car Information:");
System.out.println("Model: " + model);
System.out.println("Color: " + color);
System.out.println("Speed: " + speed);
// Owner ã‚¯ãƒ©ã‚¹ã®æƒ…å ±ã‚‚è¡¨ç¤º
if (owner != null) {
System.out.println("\nOwner Information:");
owner.displayInfo();
}
}
}
public class Owner {
private String name;
private String address;
private String phoneNumber;
// コンストラクタã¨ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…ã¯çœç•¥
public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Address: " + address);
System.out.println("Phone Number: " + phoneNumber);
}
}
public class Main {
public static void main(String[] args) {
// Owner クラスã®ã‚ªãƒ–ジェクトを生æˆ
Owner carOwner = new Owner("John Doe", "123 Main St", "555-1234");
// Car クラスã®ã‚ªãƒ–ジェクトを生æˆã—ã¦åˆæœŸåŒ–
Car myCar = new Car("Toyota Camry", "Blue", 60, carOwner);
// Car ã‚¯ãƒ©ã‚¹ã®æƒ…å ±ã‚’è¡¨ç¤º
myCar.displayInfo();
}
}
ã“ã®ä¾‹ã§ã¯ã€Car クラス㌠Owner クラスã®ã‚ªãƒ–ジェクトを所有者ã¨ã—ã¦ä¿æŒã—ã¦ã„ã¾ã™ã€‚displayInfo() メソッドを使用ã—ã¦ã€è»Šã®æƒ…å ±ã ã‘ã§ãªãæ‰€æœ‰è€…ã®æƒ…å ±ã‚‚ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã—ã¦ã„ã¾ã™ã€‚ã“ã®ã‚ˆã†ã«ã€ã‚ªãƒ–ジェクトåŒå£«ã®é–¢é€£æ€§ã‚’考慮ã—ã¦æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
クラスã®åˆæˆé–¢ä¿‚
クラスã®åˆæˆé–¢ä¿‚(Composition)ã¯ã€ã‚ªãƒ–ジェクト指å‘プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã«ãŠã„ã¦ã€ã‚るクラスãŒä»–ã®ã‚¯ãƒ©ã‚¹ã‚’包å«ã—ã€ãれãŒå¼·ã„ä¾å˜é–¢ä¿‚ã«ã‚りã€ã¾ãŸåŒ…å«ã•れãŸã‚¯ãƒ©ã‚¹ã®ãƒ©ã‚¤ãƒ•サイクルãŒåŒ…å«ã™ã‚‹ã‚¯ãƒ©ã‚¹ã«ä¾å˜ã—ã¦ã„る関係を指ã—ã¾ã™ã€‚åˆæˆé–¢ä¿‚ã¯ã€éƒ¨åˆ†ã¨å…¨ä½“ã®é–¢ä¿‚を表ç¾ã™ã‚‹ã‚‚ã®ã§ã€éƒ¨åˆ†ãŒå…¨ä½“ã«å±žã—ã€å…¨ä½“ã®ä¸€éƒ¨ã§ã‚ã‚‹ã“ã¨ã‚’示ã—ã¾ã™ã€‚
以下ã«ã€ã‚¯ãƒ©ã‚¹ã®åˆæˆé–¢ä¿‚ã®ç‰¹å¾´ã¨ä¾‹ã‚’示ã—ã¾ã™ã€‚
åˆæˆé–¢ä¿‚ã®ç‰¹å¾´:
- å¼·ã„ä¾å˜é–¢ä¿‚:
- åˆæˆé–¢ä¿‚ã§ã¯ã€åŒ…å«ã•れãŸã‚¯ãƒ©ã‚¹ã¨åŒ…å«ã™ã‚‹ã‚¯ãƒ©ã‚¹ã®é–“ã«å¼·ã„ä¾å˜é–¢ä¿‚ãŒã‚りã¾ã™ã€‚包å«ã™ã‚‹ã‚¯ãƒ©ã‚¹ãŒç ´æ£„ã•れるã¨ã€åŒ…å«ã•れãŸã‚¯ãƒ©ã‚¹ã‚‚ç ´æ£„ã•れるã“ã¨ãŒä¸€èˆ¬çš„ã§ã™ã€‚
- ライフサイクルã®ä¾å˜:
- 包å«ã™ã‚‹ã‚¯ãƒ©ã‚¹ã®ã‚ªãƒ–ジェクトã®ãƒ©ã‚¤ãƒ•サイクルã¯ã€åŒ…å«ã™ã‚‹ã‚¯ãƒ©ã‚¹ã«ä¾å˜ã—ã¾ã™ã€‚通常ã€åŒ…å«ã™ã‚‹ã‚¯ãƒ©ã‚¹ã®ã‚ªãƒ–ジェクトãŒç”Ÿæˆã•れãŸã‚Šç ´æ£„ã•れãŸã‚Šã™ã‚‹ã¨ã€ãれã«å«ã¾ã‚Œã‚‹ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚‚åŒæ§˜ã«å½±éŸ¿ã‚’å—ã‘ã¾ã™ã€‚
- æ•´åˆæ€§:
- åˆæˆé–¢ä¿‚ã«ã‚るオブジェクトã¯é€šå¸¸ã€æ•´åˆæ€§ã‚’ä¿ã¤ãŸã‚ã«å…±ã«å˜åœ¨ã™ã‚‹ã“ã¨ãŒæœŸå¾…ã•れã¾ã™ã€‚例ãˆã°ã€
Carクラスã¨ãã®Engineクラスã®é–¢ä¿‚ã§ã¯ã€CarオブジェクトãŒå˜åœ¨ã™ã‚‹ã¨ãã«ã¯å¿…ãšEngineオブジェクトもå˜åœ¨ã™ã‚‹ã‚ˆã†ã«ã—ãŸã„ã¨è€ƒãˆã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚
- åˆæˆé–¢ä¿‚ã«ã‚るオブジェクトã¯é€šå¸¸ã€æ•´åˆæ€§ã‚’ä¿ã¤ãŸã‚ã«å…±ã«å˜åœ¨ã™ã‚‹ã“ã¨ãŒæœŸå¾…ã•れã¾ã™ã€‚例ãˆã°ã€
åˆæˆé–¢ä¿‚ã®ä¾‹:
public class Engine {
private String type;
// コンストラクタやメソッドã®å®Ÿè£…ã¯çœç•¥
}
public class Car {
private String model;
private Engine engine; // Car クラス㌠Engine ã‚¯ãƒ©ã‚¹ã‚’åˆæˆ
// コンストラクタやメソッドã®å®Ÿè£…ã¯çœç•¥
public void start() {
if (engine != null) {
System.out.println("The car with model " + model + " is starting.");
engine.start();
} else {
System.out.println("The car cannot start without an engine.");
}
}
}
ã“ã®ä¾‹ã§ã¯ã€Car クラス㌠Engine ã‚¯ãƒ©ã‚¹ã‚’åˆæˆã—ã¦ã„ã¾ã™ã€‚Car クラスã®ã‚ªãƒ–ジェクト㯠Engine クラスã®ã‚ªãƒ–ジェクトを所有ã—ã€start() メソッドを呼ã¶ã¨ãã«ã¯ Car クラス㨠Engine クラスãŒé€£æºã—ã¦ã„ã¾ã™ã€‚ã¾ãŸã€Car クラスã®ã‚ªãƒ–ジェクトãŒç”Ÿæˆã•れるã¨ãã«ã¯ã€é€šå¸¸ãã® Engine クラスã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚‚åŒæ™‚ã«ç”Ÿæˆã•れã€Car クラスãŒç ´æ£„ã•れるã¨ãã«ã¯ Engine クラスã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚‚åŒæ™‚ã«ç ´æ£„ã•れるよã†ã«ãªã£ã¦ã„ã¾ã™ã€‚
「007 クラスã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント