7

私は宿題に取り組んでいます。私はそれをどのように行うべきかについて混乱しています。

質問は:

個人の名前、ID 番号、および個人の写真を含むファイルの名前を含む IDCard というクラスを作成します。これらのフィールドごとにアクセサ メソッドとミューテータ メソッドを記述します。次の 2 つのオーバーロードされたコンストラクターをクラスに追加します。

public IDCard() public IDCard(文字列 n, int ID, 文字列ファイル名)

これら 2 つのコンストラクターを使用してさまざまなオブジェクトを作成し、アクセサー メソッドとミューテーター メソッドを使用してそれらの値をコンソールに出力して、プログラムをテストします。

これまでのところ、これを書き直しました:

public class IDCard {
String Name, FileName;
int ID;

public static void main(String[] args) {

}

public IDCard()
{
    this.Name = getName();
    this.FileName = getFileName();
    this.ID = getID();
}

public IDCard(String n, int ID, String filename)
{

}

public String getName()
{
    return "Jack Smith";
}

public String getFileName()
{
    return "Jack.jpg";
}

public int getID()
{

        return 555;
    }
}
4

2 に答える 2

44

基本を見てみましょう。「アクセサー」と「ミューテーター」は、ゲッターとセッターの単なる派手な名前です。ゲッター「アクセサー」は、クラスの変数またはその値を返します。セッター「Mutator」は、クラス変数ポインターまたはその値を設定します。

そのため、最初に取得/設定するいくつかの変数を使用してクラスを設定する必要があります。

public class IDCard
{
    private String mName;
    private String mFileName;
    private int mID;

}

しかし、いや!このクラスをインスタンス化すると、これらの変数のデフォルト値は無意味になります。ところで、「インスタンス化」は、実行するための派手な言葉です。

IDCard test = new IDCard();

それでは、デフォルトのコンストラクターを設定しましょう。これは、クラスを「インスタンス化」するときに呼び出されるメソッドです。

public IDCard()
{
    mName = "";
    mFileName = "";
    mID = -1;
}

しかし、変数に与えたい値がわかっている場合はどうでしょうか? それでは、パラメーターを取る別のコンストラクターを作成しましょう。

public IDCard(String name, int ID, String filename)
{
    mName = name;
    mID = ID;
    mFileName = filename;
}

うわーこれはいいですね。しかし、愚かです。変数の値にアクセス (= 読み取り) する方法がないためです。それでは、ゲッターを追加しましょう。その間に、セッターも追加します。

public String getName()
{
    return mName;
}

public void setName( String name )
{
    mName = name;
}

良い。にアクセスできるようになりmNameました。残りのアクセサーとミューテーターを追加すると、認定された Java 初心者になります。幸運を。

于 2013-03-29T21:50:34.770 に答える
4

アクセサー メソッドからを削除する必要がありstaticます。これらのメソッドはインスタンス メソッドであり、インスタンス変数にアクセスする必要があります。

public class IDCard {
    public String name, fileName;
    public int id;

    public IDCard(final String name, final String fileName, final int id) {
        this.name = name;
        this.fileName = fileName
        this.id = id;
    }

    public String getName() {
        return name;
    }
}

IDCard次のようにアクセサーを作成して使用できます。

final IDCard card = new IDCard();
card.getName();

newの新しいインスタンスを呼び出すたびIDCardに作成され、3 つの変数の独自のコピーが作成されます。

キーワードを使用するとstatic、これらの変数は のすべてのインスタンスで共通になりますIDCard

次の点に注意してください。

  1. 役に立たないコメントを追加しないでください。コードが乱雑になるだけです。
  2. 命名規則に準拠し、変数名には小文字を使用します - でnameはありませんName
于 2013-03-29T21:28:15.960 に答える