public class Main {
public static void main(String[] args) {
// デフォルトコンストラクタãŒå‘¼ã³å‡ºã•れる
Rectangle rectangle1 = new Rectangle();
System.out.println("Rectangle1: Length = " + rectangle1.getLength() + ", Width = " + rectangle1.getWidth());
// 引数をå—ã‘å–るコンストラクタãŒå‘¼ã³å‡ºã•れる
Rectangle rectangle2 = new Rectangle(5.0, 10.0);
System.out.println("Rectangle2: Length = " + rectangle2.getLength() + ", Width = " + rectangle2.getWidth());
}
}
class Rectangle {
private double length;
private double width;
// デフォルトコンストラクタ
public Rectangle() {
this.length = 1.0;
this.width = 1.0;
}
// 引数をå—ã‘å–るコンストラクタ
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
// ゲッターメソッド
public double getLength() {
return length;
}
public double getWidth() {
return width;
}
}
ã“ã®ä¾‹ã§ã¯ã€Rectangle クラスã®ãƒ‡ãƒ•ォルトコンストラクタã¨å¼•æ•°ã‚’å—ã‘å–るコンストラクタãŒç•°ãªã‚‹ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆç”Ÿæˆæ™‚ã«å‘¼ã³å‡ºã•れã¦ã„ã¾ã™ã€‚ãれãžã‚Œã®ã‚ªãƒ–ジェクトã®çŠ¶æ…‹ã‚’å‡ºåŠ›ã—ã¦ã€ã©ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãŒå‘¼ã³å‡ºã•れã¦ã„ã‚‹ã‹ç¢ºèªã§ãã¾ã™ã€‚デフォルトコンストラクタã§ã¯é•·ã•ã¨å¹…ãŒãƒ‡ãƒ•ォルト値ã§åˆæœŸåŒ–ã•れã€å¼•æ•°ã‚’å—ã‘å–るコンストラクタã§ã¯æŒ‡å®šã—ãŸå€¤ã§åˆæœŸåŒ–ã•れã¦ã„ã‚‹ã“ã¨ãŒç¢ºèªã§ãã¾ã™ã€‚
複数ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã®åˆ©ç”¨
「複数ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã®åˆ©ç”¨ã€ã¯ã€åŒã˜ã‚¯ãƒ©ã‚¹å†…ã§ç•°ãªã‚‹å¼•数リストをæŒã¤è¤‡æ•°ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’定義ã—ã€ãれãžã‚Œã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãŒç•°ãªã‚‹åˆæœŸåŒ–処ç†ã‚’æä¾›ã™ã‚‹ã“ã¨ã‚’指ã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ã‚ªãƒ–ジェクトを生æˆã™ã‚‹éš›ã«ç•°ãªã‚‹æƒ…å ±ã‚’æŒ‡å®šã—ã¦æŸ”軟ã«åˆæœŸåŒ–ã§ãã¾ã™ã€‚
以下ã«ã€ã€Œè¤‡æ•°ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã®åˆ©ç”¨ã€ã®è¦ç‚¹ã‚’解説ã—ã¾ã™ã€‚
1.æ§‹æ–‡:
複数ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’定義ã™ã‚‹ã«ã¯ã€åŒã˜ã‚¯ãƒ©ã‚¹å†…ã§ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’オーãƒãƒ¼ãƒãƒ¼ãƒ‰ã—ã¾ã™ã€‚オーãƒãƒ¼ãƒãƒ¼ãƒ‰ã•れãŸã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã¯ã€å¼•æ•°ã®åž‹ã‚„æ•°ãŒç•°ãªã‚‹ã‚‚ã®ã§ã™ã€‚
public class MyClass {
// コンストラクタ1
public MyClass(Type1 arg1) {
// åˆæœŸåŒ–処ç†
}
// コンストラクタ2
public MyClass(Type2 arg1, Type3 arg2) {
// åˆæœŸåŒ–処ç†
}
// ä»–ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚„コードã¯çœç•¥
}
2.引数ã®åž‹ã‚„æ•°ã®ç•°ãªã‚Š:
複数ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’区別ã™ã‚‹ãŸã‚ã«ã¯ã€å¼•æ•°ã®åž‹ã‚„æ•°ãŒç•°ãªã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚引数ã®åž‹ã‚„æ•°ãŒåŒã˜å ´åˆã€ã‚³ãƒ³ãƒ‘イラãŒã©ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’呼ã³å‡ºã™ã¹ãã‹åˆ¤æ–ã§ããªããªã‚Šã¾ã™ã€‚
3.オーãƒãƒ¼ãƒãƒ¼ãƒ‰ã®åˆ©ç”¨:
コンストラクタã®ã‚ªãƒ¼ãƒãƒ¼ãƒãƒ¼ãƒ‰ã¯ã€ç•°ãªã‚‹åˆæœŸåŒ–ã®è¦ä»¶ã«å¯¾å¿œã™ã‚‹æŸ”軟性をæä¾›ã—ã¾ã™ã€‚例ãˆã°ã€ã‚ªãƒ–ジェクトã®ç”Ÿæˆã«å¿…è¦ãªæƒ…å ±ãŒç•°ãªã‚‹å ´åˆã«å‚™ãˆã¦ã€è¤‡æ•°ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’用æ„ã§ãã¾ã™ã€‚
public class Person {
// フィールド: åå‰ã¨å¹´é½¢
private String name;
private int age;
// 引数をå—ã‘å–るコンストラクタ1
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 引数をå—ã‘å–るコンストラクタ2 (年齢を指定ã›ãšã«åå‰ã ã‘ã‚’å—ã‘å–ã‚‹)
public Person(String name) {
this.name = name;
this.age = 0; // デフォルトã§0æ³ã¨ã™ã‚‹
}
}
ã“ã®ä¾‹ã§ã¯ã€Person クラスã«ã¯2ã¤ã®ç•°ãªã‚‹å¼•æ•°ã®çµ„ã¿åˆã‚ã›ã«å¯¾å¿œã™ã‚‹ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãŒå®šç¾©ã•れã¦ã„ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ã‚ªãƒ–ジェクトを生æˆã™ã‚‹éš›ã«å¿…è¦ãªæƒ…å ±ã‚’æŒ‡å®šã—ã¦æŸ”軟ã«åˆæœŸåŒ–ã§ãã¾ã™ã€‚
「011 コンストラクタã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント