一道题的困惑(请教朋友)

07-04-30 lujibiao
我在JC中运行下面程序出现了这些错误:

需要为 class、interface 或 enum 38行(40 42 44 46 48 行)

请问大家这是怎么回事?

public class Test{
public static void main(String args[]){
Test test = new Test();
int date = 9;
BirthDate d1 = new BirthDate(7,7,1970);
BirthDate d2 = new BirthDate(1,1,2000);
test.change1(date);
test.change2(d1);
test.change3(d2);
System.out.println("date=" + date);
d1.display();
d2.display();
}
public void change1(int i){
i = 1234;
}
public void change2(BirthDate b){
b = new BirthDate(24,4,2007);
}
public void change3(BirthDate b){
b.setDay(22);
}
}

class BirthDate{
private int day;
private int month;
private int year;
public BirthDate(int d, int m, int y){
day = d;
month = m;
year = y;
}
public void setDay(int d){
day = d;
}
}
public int getMonth() {
return month;
}

public int getYear() {
return year;
}

public void display() {
System.out.println(day + "-" + month + "-" + year);
}

aegean
2007-05-02 23:32
报的错是因为你的某个大括号好像打错地方了....
而且你的几个change方法很有问题,感觉有C++引用的意味。
你这个问题也放错地方了吧

leadyu
2007-05-03 22:41
你的代码明显多了括号吗,
public void setDay(int d){
day = d;
}
}

看仔细点再来问,而且你的这些个change方法都是无效的,java语言的方法调用是传值而不是传引用。

猜你喜欢