在java中初始化变量

时间:2014-03-11 14:06:25

标签: java variables initialization

如何将name类中的字符串right和名为true的实例变量初始化为HighRights

因此,如果highHighRights的实例,那么

high.getSecret(); 

应该返回the secret is 42

public class SecurityRights {
  private boolean right;
  private boolean canreadSecret;
  String SECRET="the secret is 42";

  public SecurityRights(boolean r) {
    right =r;
    if (r) canreadSecret=true; else canreadSecret=false;
  }

  boolean getRight(){
    return right;
  }

  boolean canReadSecret(){
    return canreadSecret;
  }

  String getSecret(){
    if (canreadSecret) return SECRET; else return "access denied";
  }
}

public class HighRights extends SecurityRights
{
  private String name;

  public HighRights(String n){

  }

  public String getName(){
    return name;
  }

  public static void main(String[] a){
    HighRights s= new HighRights("Lisa");
    System.out.print(s.getName() +" "+s.getSecret());                
  }
}

3 个答案:

答案 0 :(得分:0)

通过调用super()来调用Parent的构造函数。

所以在你的情况下

super(booleanValue);

通常,这将放在子构造函数的第一行。


您还可以将隐私级别从private更改为protected,然后您就可以在所有子对象中访问它。

答案 1 :(得分:0)

您可以像调用getSecret()和intialize以及boolean和string一样创建方法。
OR
你可以使用超级方法。 Here是更多信息。您几乎可以为该类创建一个构造函数,但由于该类的实例从未真正创建过该实例的Child,因此您需要使用super命令来构造构造函数。

答案 2 :(得分:0)

继承的类将具有以下实现: -

class HighRights extends SecurityRights
{
  private String name;

  public HighRights(boolean r,String n){
    super(r);
    this.name = n;
  }

  public String getName(){
    return name;
  }

  public static void main(String[] a){
    HighRights s= new HighRights(false,"Lisa");
    System.out.print(s.getName() +" "+s.getSecret());                
  }
}

在此实现中,使用super关键字。当您需要从super的构造函数调用superclass's构造函数时,将使用subclass关键字。由于您需要从right的构造函数访问SecurityRights HighRights变量,因此您可以使用super关键字来访问它。更多信息可以在oracle的manual找到。

另外,你在SecurityRights的构造函数中给出了一个参数,但是你没有将它赋给任何变量。请避免这些错误。