2

さて、一連のプライベート プロパティを使用してクラスを作成する必要があるという割り当てがありました。私はJavaプログラミング(または一般的なプログラミング)にかなり慣れておらず、カプセル化の経験があまりないため、注意が必要です。以前にゲッター/セッターまたはコンストラクターを使用したことがありません。ゲッター/セッター メソッドは理解していますが、コンストラクターに関するオンラインの情報はまだ理解できておらず、その目的も理解していません。

プロパティごとにゲッター/セッターとコンストラクターを作成する必要があるため、これらのメソッドの使用方法を学ぶ必要があるようです。誰かがコンストラクターを持つクラスの例を教えてくれ、コンストラクターが何をしているのか、なぜそれを使用するのかを説明できれば、それは素晴らしいことです.

よろしくお願いします。

4

2 に答える 2

4

まず、プログラミングの世界へようこそ :)

簡単な例を見てみましょう。

Square を表すクラスをプログラムしたいとします。Square オブジェクトを作成するときは、Square に各辺の長さなどの特定のプロパティを指定する必要があります。ここでコンストラクターの出番です。

クラス レイアウトは次のようになります。length_of_each_side 変数に値が割り当てられていないことに注意してください。

public class Square {
     int length_of_each_side;

     public Square() {
     ...
     }

     public Square(int length) {
     ...
     }
}

正方形のサイズを指定しない場合は、定義済みの Square を提供する既定のコンストラクターを使用できます。

public Square() {
     length_of_each_side = 1;
}

または、誰かが正方形のサイズを指定できるようにすることもできます

public Square(int length) {
     length_of_each_side = length;
}

定義済みの正方形 (長さ 1) を作成する場合、次のようになります。

Square mySquare = new Square();

正方形を作成し、長さを 55 に指定する場合は、次のようになります。

Square mySquare = new Square(55);
于 2010-10-04T22:11:34.113 に答える
2

学校でこれをどのように見ているのか、先生が何を言っているのかはわかりませんが、単なる提案です。習慣としてゲッターやセッターを使用しないでください。Javaで「自動」ではないのには理由があります。それは、実際にそこにあるべきではないからです。

オブジェクトがある場合、アイデアはオブジェクトに何かをするように依頼することです。つまり、変数を取得してそれに作用して戻すのではなく、変数に作用するメソッドを提供する必要があります。

ゲッターを避けられないことがよくありますが、習慣としてではなく、必要であると確信できる場合にのみ追加する必要があります。

コンストラクターは、すべてのメンバー変数を設定するのに最適な場所です。実際、変数をfinalにすると(非常に良い習慣になり、クラスが「不変」になります)、コンストラクターが変数を割り当てることができる唯一の場所になります。

コンストラクターは、オブジェクトの作成時に呼び出されることが保証されているため、オブジェクトを設定するのに適した場所です。コンストラクターで、オブジェクトが有効な状態にあり、最終的なメンバー変数があることを確認した場合、オブジェクトを無効な状態にすることは不可能です。これは非常に便利な方法であり、デバッグ時間を大幅に節約できます。

于 2010-10-04T22:24:43.347 に答える