【问题标题】:Java Method overriding in same class同一类中的Java方法覆盖
【发布时间】:2014-10-26 03:31:55
【问题描述】:

在同一个班级我有 2 种方法。

    private boolean check(){
          String User = "none";
          boolean checker = false;

           //some code that might change checker variable

          if (User.equals("Admin"))
                 checker = true
          return checker               
    }

private void setUser(){
       check(){
            User = "Admin"
       }
       //code that will set the User
}

这给了我编译错误。看来我不能在java中覆盖这样的方法。我还有其他方法可以做到这一点吗?我只需要在设置User 变量后在setUser 方法中运行check 方法。提前致谢

【问题讨论】:

    标签: java variables methods overriding


    【解决方案1】:

    如果我理解您的问题,那么简短的回答是否定的。您不能在本地覆盖方法以提供局部变量。我建议你稍微修改一下你的方法。首先,将user 传递给check 并使check 成为静态函数(我不建议保留boolean 标志以返回;只需return)就像-

    private static boolean check(String user) {
      return user.equals("Admin");
    }
    

    然后,您可能应该让setUser 也使用String,我认为您的意思是它是public,我认为您想要isAdmin 字段。类似的东西

    private boolean isAdmin = false;
    public void setUser(String user) {
       if (check(user)) {
         this.isAdmin = true;
       }
       this.user = user;
    }
    

    最后,Java 变量按照约定以小写字母开头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多