2

when i declare the method inside a constructor i'm getting error "; expected". Not sure why. could you please help me understand

public class Reservation {
Date arrivalDate = new Date();
  Date departDate = new Date();
  Reservation(Date arrDate, Date deptDate)
   {
    arrivalDate = arrDate;
    departDate = deptDate;
    long nightsStay();
   }
 void nightsStay()
  {
      long days = (departDate.getTime()-arrivalDate.getTime())/(24*60*60*1000);
  }

I'm getting error on the line where I declared long nightsStay();

4

1 回答 1

4

你不能做

long nightsStay();

如果你定义一个变量,你需要一个名字,然后你可以给它一个值,但是你缺少名字。

public class Reservation {
   Date arrivalDate = new Date();
   Date departDate = new Date();
   long nightsStay;  // add that line

   Reservation(Date arrDate, Date deptDate)
   {
      arrivalDate = arrDate;
      departDate = deptDate;
      nightsStay = nightsStay();  // change that line
    }

   long nightsStay()
   {
      long days = (departDate.getTime()-arrivalDate.getTime())/(24*60*60*1000);
   }
} 

例子:

long l = 5;  //variable l gets value 5;
l = nightsStay();   // calling method nightsStay and storing the result in l;
long nightsStay(); // is neither one

如果您希望该方法nightsStay()返回某些内容,那么您必须将返回类型从更改为void您想要返回的类型,这就是long您的情况。

于 2013-05-08T00:54:06.653 回答