编译时函数cannot be resolved

xiaozhupiggg 2011-04-15 05:01:10
函数功能:
定义一个日期类,有年,月,日属性,包含无参的和有参的构造方法,有完成如下功能的方法:1)、判断该年是否为闰年,2)、判断当月的天数,3)、计算该日期是本年的第多少天,4),计算本年还剩多少天,在main方法中,输入年,月,日,根据输入创建该类的对象,并调用它的相关方法。

类体:
public class Date {
private int year,month,day;
public int[]a = {0,31,28,31,30,31,30,31,31,30,31,30,31};
public int[]b = {0,31,29,31,30,31,30,31,31,30,31,30,31};
public Date(){

}
public void setYear(int year){
this.year = year;
}
public int getYear(int year){
return year;
}
public void setMonth(int month){
this.month = month;
}
public int getmonth(int month){
return month;
}
public void setDay(int day){
this.day = day;
}
public int getDay(int day){
return day;
}
public Date(int year,int month,int day){

}
public char isLeapYear(int year){
if(year%400==0||year%4==0&&year%100!=0){
return '是';
}else {
return '否';
}
}
public int daysThisMonth(char isLeapYear,int month){
if (isLeapYear=='是'){
return a[month];
}else{
return b[month];
}
}
public int daysThisYear(char isLeapYear,int month,int day){
int sum = 0;
if(isLeapYear=='是'){
for(int i=0;i<month;i++){
sum+=a[i];
}
return sum+day;
}else{
for(int i=0;i<month;i++){
sum+=b[i];
}
return sum+day;
}

}


}


import java.util.Scanner;
public class testDate {


public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入年份:");
int year = s.nextInt();
Scanner m = new Scanner(System.in);
System.out.println("请输入月份");
int month = m.nextInt();
System.out.println("请输入日:");
Scanner d = new Scanner(System.in);
int day = d.nextInt();
Date D1 = new Date();
D1.setYear(year);
D1.setMonth(month);
D1.setDay(day);
Date D2 = new Date(2000,2,14);

System.out.println(D1.getYear(year)+"年是闰年吗?"+D1.isLeapYear(year));
System.out.println(D1.getmonth(month)+"月有"+D1.daysThisMonth(isLeapYear, month)+"天");
System.out.println("它是本年的第"+D1.daysThisYear(isLeapYear, month, day)+"天");


}

}

问题:在编译testDate时,倒数两行都显示:isLeapYear cannot be resolved


请教各位大侠~
...全文
164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaozhupiggg 2011-04-15
  • 打赏
  • 举报
回复
也就是说,isLeapYear是一个方法,要调用对象来引用,不能直接写isLeapYear哦?

而且方法D1.isLeapYear(year)也能做方法D1.daysThisYear的参数O(∩_∩)O

我说的有点绕,但是明白了你的意思,谢谢你哦,程序正常运行啦~
dreamhunter_lan 2011-04-15
  • 打赏
  • 举报
回复
你Date那定义的函数,在main函数你直接就isLeapYear这样算啥???
剑神一笑 2011-04-15
  • 打赏
  • 举报
回复
没看到isLeapYear在那里定义了
少了一句 char isLeapYear = D1.isLeapYear(year);
周靖峰 2011-04-15
  • 打赏
  • 举报
回复
isLeapYear改为D1.isLeapYear(year)
xiaozhupiggg 2011-04-15
  • 打赏
  • 举报
回复
我刚开始编有关类的java程序,对类的使用不太熟悉,能再详细点说明吗?谢谢哈~
xiaozhupiggg 2011-04-15
  • 打赏
  • 举报
回复
isLeapYear在Date里面定义的哦~
dreamhunter_lan 2011-04-15
  • 打赏
  • 举报
回复
哥,请问你的isLeapYear在哪定义??

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧