私は宿題に取り組んでいます。それがどうあるべきか私は混乱しています。
質問は:
人の名前、ID番号、および人のphotogrpahを含むファイルの名前を含むIDCardというクラスを作成します。これらのフィールドごとに、アクセサメソッドとミューテータメソッドを記述します。次の2つのオーバーロードされたコンストラクターをクラスに追加します。
public IDCard()public IDCard(String n、int ID、String filename)
これらの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;
}
}
基本を復習しましょう。「Accessor」と「Mutator」は、getterとsetterの単なる仮名です。ゲッター「Accessor」は、クラスの変数またはその値を返します。セッター「Mutator」は、クラス変数ポインターまたはその値を設定します。
したがって、最初に、取得/設定するいくつかの変数を持つクラスを設定する必要があります。
public class IDCard
{
private String mName;
private String mFileName;
private int mID;
}
しかし、ああ!このクラスをインスタンス化すると、これらの変数のデフォルト値は無意味になります。 B.T.W. 「インスタンス化」とは、以下を行うための豪華な言葉です。
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初心者です。頑張ってください。
アクセサーメソッドから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
のすべてのインスタンスで共通です。
心に留めておくべきいくつかのこと:
name
ではなくName
。