尝试从另一个类调用布尔方法时出错。我已经尝试编辑我调用方法的方式,但到目前为止还没有工作。我发布了我为两个班级编写的代码,以获得最清晰的错误信息,即" .class"预期的错误。
public class Date
{
public int Day;
public int Month;
public int Year;
public Date(int myDay, int myMonth, int myYear){
Month = myMonth;
Day = myDay;
Year = myYear;
}
public int daysIs(){
return Day;
}
public int monthIs(){
return Month;
}
public int yearIs(){
return Year;
}
public boolean isLeapYear(int Year){
if (Year % 4 != 0){
return false;
}else if (Year % 400 == 0) {
return true;
}else if (Year % 100 == 0){
return false;
}else {
return true;
}
}
Date mydate = new Date(Day, Month, Year);
}
对于这里的第一堂课,它编译没有错误。我试图调用的方法是接近结尾的isLeapYear方法。当我尝试调用该方法时,我的第二课总会出现某种错误。
import javax.swing.JOptionPane;
public class DateJDialog
{
public static void main(String[]args)
{
String input;
int Day;
int Month;
int Year;
//prompt the day
input = JOptionPane.showInputDialog("Please enter the 2 digit day of the month: ");
Day = Integer.parseInt(input);
//prompt the month
input = JOptionPane.showInputDialog("Please enter the 2 digit month of the year: ");
Month = Integer.parseInt(input);
//prompt the year
input = JOptionPane.showInputDialog("Please enter the 4 digit year: ");
Year = Integer.parseInt(input);
Date inputDate = new Date(Day,Month,Year);
if( inputDate.isLeapYear(int Year)= false){
JOptionPane.showMessageDialog(null,"The given year was NOT a Leap Year.");
}else {
JOptionPane.showMessageDialog(null,"The given year WAS a Leap Year.");
}
}
}
错误总是发生在接近结尾的if语句的第一行。
答案 0 :(得分:1)
尝试编写if行的这一行。
if (inputDate.isLeapYear(int Year)= false) {...}
像这样:
if (!inputDate.isLeapYear(2015)) {
调用方法时,不要指定参数的数据类型。另外,=
是一个赋值运算符,在我们使用比较运算符==
的情况下。
不需要将布尔值与另一个布尔值进行比较,因此==
在这种情况下毫无意义。
答案 1 :(得分:-1)
你的想法太难了,你应该在编程时把它简单化。在调用方法时,您不需要该类型,只有在声明方法时才需要这样做。