アクセサーズとミューテーターの方法を書きましたが、それでもプライベート変数にアクセスできません!なぜ?
質問
私はクラスをそのプライベート変数で書き、その後、これらの変数にアクセスするために必要なアクセターとミューテーターの方法を書きましたが、メインクラスを書いた後に実行しても機能しません。なぜそれが起こるのですか?ここで私のコードをチェックしてください:
public class DateTest{
public static void main (String [] args){
Date d1 = new Date();
Date d2 = new Date();
d1.month = "February ";
d1.day = 13;
d1.year = 1991;
d2.month = "July";
d2.day = 26;
d2.year = 1990;
d1.WriteOutput();
d2.WriteOutput();
}
}
class Date {
private String month;
private int day;
private int year;
public String getMonth(){
return month;
}
public int getDay(){
return day;
}
public int getYear(){
return year; }
public void setMonth(String m){
if (month.length()>0)
month = m;
}
public void setDay(int d){
if (day>0)
day = d; }
public void setYear(int y){
if (year>0)
year = y;
}
public void WriteOutput(){
System.out.println("Month " + month + "Day "+ day + " year" + year);
}
}
みんなが私に辛抱強くなってください、私は本当に「初心者」のプログラマーです
解決
JavaにはC#のような構文糖がなく、からの電話をかけることができません object.property
アクセス方法を提供していても。プロパティは純粋にデザインパターンであり、言語自体の構文にはリフレットされていません。
それらを明示的に呼び出す必要があります d1.setMonth("February ");
と String val = d1.getMonth();
.
他のヒント
アクセサーの方法は呼び出されることになっています。それでおしまい。
d1.setMonth("February");
d1.setDay(13);
常にセッターとゲッターを使用して、プライベート変数にアクセスしてください。
プライベート メンバーは、同じクラスのメンバー内でのみ直接アクセスできます。 DateTest
別のクラスです。したがって、以下は不可能です
d1.month = "February ";
d1.day = 13;
d1.year = 1991;
d2.month = "July";
d2.day = 26;
d2.year = 1990;
上記のコードを、対応するセッターメソッドを使用して置き換えます。
所属していません StackOverflow