如何在Java中更改私有变量的值

时间:2018-08-21 16:03:15

标签: java

从昨天开始我就开始用Java编程,而我(从昨天开始)一直是我一生中最大的问题。

例如,假设我有这样的代码:

public class itsAClass {
    static private String A;

    public static void main() {
        A = "This should be changed";
    }

    public String something() {
        return A;
    }
 }

我想在另一个类中使用方法something()来获取A的字符串语句,但是我只有null。 如何更改A的值,以便另一个类可以获取值"This should be changed"

4 个答案:

答案 0 :(得分:1)

您可以在something()方法中调用main()方法。

public class itsAClass{
    static private String A;

    public static void main() {
        A = "This should be changed";
    }

    public String something() {
        main();
        return A;
    }
     public static void main(String[] args){
        itsAClass a1 = new itsAClass();
        System.out.println(a1.something());// prints This should be changed
    }
 }

答案 1 :(得分:0)

您必须调用main()函数。

在另一堂课中:

itsAClass aClassObj = new itsAClass();

aClassObj.main();
// or rather itsAClass.main() as it is a static function
// now A's value changed

System.out.println(aClassObj.something());

答案 2 :(得分:0)

设置私有变量值的方法是通过类中的setter和getter方法。

下面的示例

public class Test {
   private String name;
   private String idNum;
   private int age;

   public int getAge() {
      return age;
   }

   public String getName() {
      return name;
   }

   public String getIdNum() {
      return idNum;
   }

   public void setAge( int newAge) {
      age = newAge;
   }

   public void setName(String newName) {
      name = newName;
   }

   public void setIdNum( String newId) {
      idNum = newId;
   }
}

答案 3 :(得分:0)

如果您只想使此代码生效,那么也可以使something()成为静态。

但这不是解决此问题的正确方法。

如果要在主类中保存代码,可以执行以下操作:

public class AClass {
    private String a;

    public static void main() {
        AClass myC = new AClass();
        myC.setA("This should be changed");

        // than use myC for your further access

    }

    public String something() {
        return a;
    }

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }
}

如果要通过外部类访问它而没有直接引用,则可以签出单例模式。

public class AClass {
    private final static AClass INSTANCE = new AClass();

    private String a;

    public static void main() {
        getSingleton().setA("This should be changed");
    }

    public String something() {
        return a;
    }

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }

    public static AClass getSingleton() {
        return INSTANCE;
    }
}

这样,您就无法从代码的任何位置通过AClass.getSingleton()访​​问它。