class Birthday {
int day;
int month;
int year; public Birthday (int d,int m,int y){
day = d;
month = m;
year = y;
} void setDay (int d) {
d = day;
}
void setMonth (int m) {
m = month;
}
void setYear (int y) {
y = year;
}
public int getDay () {
return day;
}
public int getMonth () {
return month;
}
public int getYear () {
return year;
} public void display () {
System.out.println(day + "." + month + "." + year);
}
}public class Test {
public static void main (String args[]) {
Test test = new Test();
int date = 9;
Birthday d2 = new Birthday(6,8,2012);
test.change1 (date);
System.out.println("date=" + date);
test.change2 (d2);
d2.display();
} public void change1 (int i) {
i=1234;
}
public void change2 (Birthday b1) {
b1.setDay(21);
}
}为什么打印出来date还是9而不是1234,d2对象调用的display还是(6,8,2012),而不是(21,8,2012)呢,请问要怎么修改才能够变成我想要的结果呢???谢谢!!!
int day;
int month;
int year; public Birthday (int d,int m,int y){
day = d;
month = m;
year = y;
} void setDay (int d) {
d = day;
}
void setMonth (int m) {
m = month;
}
void setYear (int y) {
y = year;
}
public int getDay () {
return day;
}
public int getMonth () {
return month;
}
public int getYear () {
return year;
} public void display () {
System.out.println(day + "." + month + "." + year);
}
}public class Test {
public static void main (String args[]) {
Test test = new Test();
int date = 9;
Birthday d2 = new Birthday(6,8,2012);
test.change1 (date);
System.out.println("date=" + date);
test.change2 (d2);
d2.display();
} public void change1 (int i) {
i=1234;
}
public void change2 (Birthday b1) {
b1.setDay(21);
}
}为什么打印出来date还是9而不是1234,d2对象调用的display还是(6,8,2012),而不是(21,8,2012)呢,请问要怎么修改才能够变成我想要的结果呢???谢谢!!!
第二个问题,是因为你Birthday里的set方法全部是错误的, d = day, m = month, y = year,这都是反的。
应该是day = d
这是强人所难.
public void change1 (int i) 这样进行的值传递是无法做到修改那个的值的..真要做的话可以考虑用返回值咯.
public int change1(int i){
return 1234;
}//main
int date = 9;
date = test.change1 (date);
//System.out.println("date=" + date);
public void change1 (int i) {
i=1234;
System.out.println(i);