私はJavaの経験がなく、Cの背景を持っています。main()を専用のクラスに入れなければならないのはなぜですか?
抽象データ型のような新しいデータ型を作成したいと考えています。 Cでは、これは新しいデータ型の構造体を作成することによって行われます。私はJavaで、その新しいデータ型のクラスを作成し、そのクラスのオブジェクトを作成することを理解しています。
私はこの2つの異なる方法を書いており、どちらも機能するようです。しかし、私は第二の方法の欠点を理解していません。
ここでは、データ型のクラスを作成し、そのインスタンスを作成して操作を実行します。私は、これがインターネット上のチュートリアルで使用されているデザインであることを発見しました。
public class DesignOne { public static void main(String[] args) { MyDataType obj = new MyDataType(3,4); System.out.println(obj.sum()); } } class MyDataType { int i; int j; MyDataType(int i, int j) { this.i = i; this.j = j; } int sum() { return this.i + this.j; } }
ここでは、私は私のドライバ機能を持っているクラスと同じクラスでインスタンスを作成します。
sum
のような操作もクラスのメンバーとして定義されます。基本的に、クラスは1つだけです。public class DesignTwo { int i; int j; DesignTwo(int i, int j) { this.i = i; this.j = j; } int sum() { return this.i + this.j; } public static void main(String[] args) { DesignTwo obj = new DesignTwo(3,4); System.out.println("sum == "+obj.sum()); } }
何DesignTwoの欠点があり、そしてなぜDesignOneが好ましいですか?
実際にはこれは悲しいことですが、私は最初のアプローチを好むでしょう。そこに所属していない主要な方法でクラスを混乱させないように、あなたのメインメソッドのためだけに余分なクラスがあります。代わりに、プログラムのエントリーポイントとして1つのきめ細かい定義済みメインメソッドがあります。 –