Methods 在构造函数中声明方法

Methods 在构造函数中声明方法,methods,constructor,Methods,Constructor,当我在构造函数中声明该方法时,得到的错误是“expected”。不知道为什么。你能帮我理解吗 public class Reservation { Date arrivalDate = new Date(); Date departDate = new Date(); Reservation(Date arrDate, Date deptDate) { arrivalDate = arrDate; departDate = deptDate; long ni

当我在构造函数中声明该方法时,得到的错误是“expected”。不知道为什么。你能帮我理解吗

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);
  }
我在声明long Nightstay()的行中出错

你做不到

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
如果您希望方法
nightstay()
返回某些内容,则必须将返回类型从
void
更改为您希望返回的类型,在您的情况下,该类型是
long

您不能这样做

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

如果您希望方法
nightstay()
返回某些内容,那么必须将返回类型从
void
更改为您希望返回的类型,即
long
做什么?有错误。它应该存储出发日期和到达日期之间的天数,该天数应该
long nightstay()做什么?有错误。它应该存储出发和到达之间的天数dates@juergen... 谢谢成功了。你能解释一下我写的代码有什么问题吗。我不能在构造函数中声明一个方法。存在命名冲突-
nightstay
不能同时是
long
void()
@michaelb958我尝试使用long nightstay();在构造函数内部,在没有void-long nightstay()的情况下实现了该方法,并返回了天。即使这样,我在构造函数中声明了这个方法的行中也得到了与“expected”相同的错误。我意识到我的错误。如果我声明了没有返回类型的方法,它就会工作。非常感谢您的回答并帮助我实现我的目标mistake@juergen... 谢谢成功了。你能解释一下我写的代码有什么问题吗。我不能在构造函数中声明一个方法。存在命名冲突-
nightstay
不能同时是
long
void()
@michaelb958我尝试使用long nightstay();在构造函数内部,在没有void-long nightstay()的情况下实现了该方法,并返回了天。即使这样,我在构造函数中声明了这个方法的行中也得到了与“expected”相同的错误。我意识到我的错误。如果我声明了没有返回类型的方法,它就会工作。非常感谢您的回答并帮助我认识到我的错误