我用自己的私有变量编写了我的类,然后我编写了访问这些变量所需的访问器和mutator方法,但是在编写主类后运行它时这不起作用。为什么会这样?请在这里查看我的代码:
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);
}
}
请大家耐心等待我,我真的是一个"新手"程序员
答案 0 :(得分:6)
应该调用访问器方法。就是这样。
d1.setMonth("February");
d1.setDay(13);
答案 1 :(得分:4)
Java没有像C#这样的语法糖,即使您提供了访问方法,也不允许您从object.property
进行调用。属性纯粹是一种设计模式,并不会在语言本身的语法中反映出来。
您需要明确地将其称为d1.setMonth("February ");
和String val = d1.getMonth();
。
答案 2 :(得分:1)
始终使用setter和getter来访问私有变量。
答案 3 :(得分:0)
私人成员只能在同一个班级的成员中直接访问。 DateTest
是另一个类,因此以下是不可能的
d1.month = "February ";
d1.day = 13;
d1.year = 1991;
d2.month = "July";
d2.day = 26;
d2.year = 1990;
使用相应的setter方法替换上面的代码。