職業訓練コード研究

 卒業した生徒さんが作ったアプリのソースコードを拝見する機会があったので読み込んでいました。  

授業ではインスタンスに引数を入れ別クラスのコンストラクタで値を初期化するという方法を学んだところで、

Hさんは、

①個別クラスのコンストラクタ内で値を設定

②基本クラスのコンストラクタ内でインスタンスを作成&初期化

するというものだったのでこんな書き方も出来るのかと勉強させて頂きました。

以下はソースコードの一部です。

// クラス定義
public class Hoge {
    // 変数の定義
    private string name;
    private int num;
    // コンストラクタの定義
    // 通常であればここで変数の初期化を行う
    public test() {
        A a = new A(); B b = new B();
    }
}
// クラス定義
public class A {
    public Value() {
        twitter = "hage";
        num = 1;
    }
}
// Bクラス定義
public class B {
    public Value() {
        twitter = "hige";
        num = 2;
    }
}

僕が考えていたクラス定義、インスタンス化、コンストラク

// クラスの定義
public class Hoge {
    // 変数の定義
    private string name;
    private int num;
    // コンストラクタ定義
    public Hoge(string name, int num) {
        // 変数nameと変数numを与えられた値で初期化
        this.name = name;
        this.num = num;
        // private name 変数へのアクセサ
        public name() {
            set {
                this.name = value;
            }
            get {
                return this.name;
            }
        }
        // private num 変数へのアクセサ
        public Num() {
            set {
                this.num = value;
            }
            get {
                return this.num;
            }
        }
    }
    public Main() {
        // インスタンス化と同時に個別の引数を格納する
        A a = new A("hage", 1);
        B b = new B("hige", 2);
    }
}

全くのド素人の意見ですが、人が書いたコードほど勉強になるものはないですね!