第一: 在Java中,用“引用变量.方法(参数列表)”来调用方法,如果在参数列表中传传入的值为引用变量,那么应该怎么理解啊!
第二:1语句中它传入值为数组(其也可以看作引用变量),那么2.3.4.5.6.7语句中的“year < date.year“ month > date.month ”“month < date.month ” “day > date.day ” “ day < date.day ”应怎么理解啊!
第三:把8语句“public int compare(Date date)”改为“public int compare(Date day[])”,形参该为数 组型,为什么无法编译不过去,会出现错误,应怎么改?[/align]
public class TestDateSort {
public static void main(String[] args) {
Date[] days = new Date[5];
days[0] = new Date(2006, 5, 4);
days[1] = new Date(2006, 7, 4);
days[2] = new Date(2008, 5, 4);
days[3] = new Date(2004, 5, 9);
days[4] = new Date(2004, 5, 4);
System.out.println(days[0].compare(days[1])); .........1语句
}
}class Date {
int year, month, day;
Date(int y, int m, int d) {
this.year = y;
this.month = m;
this.day = d;
}
public int compare(Date date) { ---------------------------------8
if(year > date.year ){ return 1; }-------------------------------2
else if(year < date.year ){return -1; }--------------------------3
else if( month > date.month ){return 1; }------------------------4
else if( month < date.month ){return -1; }-----------------------5
else if( day > date.day ){return 1 ;}----------------------------6
else if( day < date.day ){return -1 ;} --------------------------7
else{return 0;}
}
public String toString() {
return "Year:Month:Day -- " + year + "-" + month + "-" + day;
}
}
补充一下,红色语句中它传入值为数组(其也可以看作引用变量),那么蓝色语句中的“year < date.year“ month > date.month ”“month < date.month ” “day > date.day ” “ day < date.day ”应怎么理解啊!
第二:1语句中它传入值为数组(其也可以看作引用变量),那么2.3.4.5.6.7语句中的“year < date.year“ month > date.month ”“month < date.month ” “day > date.day ” “ day < date.day ”应怎么理解啊!
第三:把8语句“public int compare(Date date)”改为“public int compare(Date day[])”,形参该为数 组型,为什么无法编译不过去,会出现错误,应怎么改?[/align]
public class TestDateSort {
public static void main(String[] args) {
Date[] days = new Date[5];
days[0] = new Date(2006, 5, 4);
days[1] = new Date(2006, 7, 4);
days[2] = new Date(2008, 5, 4);
days[3] = new Date(2004, 5, 9);
days[4] = new Date(2004, 5, 4);
System.out.println(days[0].compare(days[1])); .........1语句
}
}class Date {
int year, month, day;
Date(int y, int m, int d) {
this.year = y;
this.month = m;
this.day = d;
}
public int compare(Date date) { ---------------------------------8
if(year > date.year ){ return 1; }-------------------------------2
else if(year < date.year ){return -1; }--------------------------3
else if( month > date.month ){return 1; }------------------------4
else if( month < date.month ){return -1; }-----------------------5
else if( day > date.day ){return 1 ;}----------------------------6
else if( day < date.day ){return -1 ;} --------------------------7
else{return 0;}
}
public String toString() {
return "Year:Month:Day -- " + year + "-" + month + "-" + day;
}
}
补充一下,红色语句中它传入值为数组(其也可以看作引用变量),那么蓝色语句中的“year < date.year“ month > date.month ”“month < date.month ” “day > date.day ” “ day < date.day ”应怎么理解啊!
把8语句“public int compare(Date date)”改为“,因为这句用到public int compare(Date date)这个方法”
这句,没问题,你想怎么改就怎么改。
你只要把这句删了
System.out.println(days[0].compare(days[1])); .........1语句
,因为这句用到public int compare(Date date)这个方法,而你改掉了,
或者你重载一个方法,不要删除上面那个方法。
public int compare(Date[] dates){
}
恭喜你编译通过。
days[1] = new Date(2006, 7, 4);比如现在调用days[0].compare(days[1])
2句中的year > date.year意思就是days[0]的year(2006)
和days[1]的year字段作比较。
这里的year指的是days[0]的year
而date.year指的是days[1]的year