コンストラクタとは?

Javaの場合

 

 

class Dentaku
{

int a ;
int b;


    Dentaku() //コンストラクタ

    {
        System.out.println("電卓を作りました");

    }

    Dentaku(int aa, int bb)

    {

    a = aa;
    b = bb;

    }



    void tasizan()
    {

    System.out.println(a + "+" + b + "=" + (a+b));
    }

}

class MyClass62


{
    public static void main(String args[])

    {
    Dentaku dentaku1 = new Dentaku(1,1);


    dentaku1.tasizan();

    }


}

 

 

クラス名ト同じ

メソッドの形で用意しておくと、引数の初期値を設定できる

 

この場合は

class Dentaku

|-  Dentaku()   コンストラクタ 引数なし

|-  Dentaku(int aa, int bb) コンストラクタ 引数あり

|-    void tasizan() メソッド

 

 

んで

MyClass6で

    Dentaku dentaku1 = new Dentaku(1,1);

    Dentaku dentaku1 = new Dentaku();

 

を使って、

引数の有無でスイッチできるようにする。

 

    Dentaku dentaku1 = new Dentaku(1,1); →  tasizan メソッドで計算される

    Dentaku dentaku1 = new Dentaku();  →電卓を作りました。数字がないので計算されない

 

基本的にJavaの場合は自動で作ってくれる

 

基本的にオブジェクトの初期化で、デフォルトの数値を設定するのに使う。

 

 

ufcpp.net

こっからはC# まぁ、ほぼJavaだけど

 

コンストラクタで初期化

・new を使用した時に呼び出される特殊なメソッド

・クラス名と同じ名前で定義する。

書き方

 

class SampleClass

{

   SampleClass()

     {

     インスタンスの初期化用コードを記述

    }

}

 

class person

{

 public string name

public int age;

 

 

public person()  クラス名と同じ名前

{

name = "";

age = 0;

}

 

 

 

}

 

 

とりあえず、現段階だと

クラスとかメソッドの初期値を設定できるもの。ぐらいで

 

で、その記述方法が

 

クラス名()

{処理内容}

 

ということ。

んで、new を使ったら自動的に設定されるメソッドってことで。