与私有变量相关的非法表达式开头

Posted

技术标签:

【中文标题】与私有变量相关的非法表达式开头【英文标题】:Illegal start of expression relating to a Private variable 【发布时间】:2018-05-29 23:14:43 【问题描述】:

我试图运行我的 AP 计算机科学老师提供给我们的一个项目,以检查我们的工作。我一直在尝试两节课来让老师的代码正常工作,但无济于事。问题是,当初始化私有变量 n 时,它会给我一个错误,读取“非法的表达式开始”。任何帮助将非常感激。 这是代码:

 package eastersunday;

    public class Easter

public static void main(String[] args) 

   private int n;
   private int p;

   /**
      Constructs the date of Easter Sunday.
     * @param year
   */
   public Easter(int year)
   
      int y = year;
      int a = y % 19;
      int b = y / 100;
      int c = y % 100;
      int d = b / 4;
      int e = b % 4;
      int g = (8 * b + 13) / 25;
      int h = (19 * a + b - d - g + 15) % 30;
      int j = c / 4;
      int k = c % 4;
      int m = (a + 11 * h) / 319;
      int r = (2 * e + 2 * j - k - h + m + 32) % 7;
      n = (h - m + r + 90) / 25;
      p = (h - m + r + n + 19) % 32;
   

   /**
      Gets the month of Easter Sunday
      @return month of Easter Sunday
   */
   public int getEasterSundayMonth()
   
      return n;
   

   /**
      Gets the date of Easter Sunday
      @return date of Easter Sunday
   */
   public int getEasterSundayDay()
   
      return p;
   

【问题讨论】:

您在 main 方法中声明字段和方法。你不能在 Java 中做到这一点。 旁注:考虑给变量起有意义的名称。 【参考方案1】:

我一眼就看到了一个问题:您的代码中有一些悬空括号。这使得您可以在 main 中声明某些内容,您可能有意也可能无意,因为您没有用“”关闭它。确保每个 都以 结束,否则您的代码会给您一些错误。

【讨论】:

【参考方案2】:

试试这段代码,在 main 方法之外使用变量和函数

package eastersunday;

    public class Easter

public static void main(String[] args) 


   private int n;
   private int p;

   /**
      Constructs the date of Easter Sunday.
     * @param year
   */
   public Easter(int year)
   
      int y = year;
      int a = y % 19;
      int b = y / 100;
      int c = y % 100;
      int d = b / 4;
      int e = b % 4;
      int g = (8 * b + 13) / 25;
      int h = (19 * a + b - d - g + 15) % 30;
      int j = c / 4;
      int k = c % 4;
      int m = (a + 11 * h) / 319;
      int r = (2 * e + 2 * j - k - h + m + 32) % 7;
      n = (h - m + r + 90) / 25;
      p = (h - m + r + n + 19) % 32;
   

   /**
      Gets the month of Easter Sunday
      @return month of Easter Sunday
   */
   public int getEasterSundayMonth()
   
      return n;
   

   /**
      Gets the date of Easter Sunday
      @return date of Easter Sunday
   */
   public int getEasterSundayDay()
   
      return p;
   

【讨论】:

以上是关于与私有变量相关的非法表达式开头的主要内容,如果未能解决你的问题,请参考以下文章

Python私有变量与私有方法

python 类的私有变量和私有方法

iOS开发 私有变量 私有属性的使用选择

私有变量和特权方法

property,私有变量

[Tips] python 私有函数