为了账号安全,请及时绑定邮箱和手机立即绑定

java中如何改变私有变量的值

java中如何改变私有变量的值

HUWWW 2021-08-04 16:40:29
我从昨天开始用 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"?
查看完整描述

3 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

如果您只想使此代码起作用,您也可以将 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() 访问它。


查看完整回答
反对 回复 2021-08-04
?
温温酱

TA贡献1752条经验 获得超4个赞

设置私有变量值的方法是通过类中的 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;

   }

}


查看完整回答
反对 回复 2021-08-04
?
慕的地10843

TA贡献1785条经验 获得超8个赞

你必须调用你的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());


查看完整回答
反对 回复 2021-08-04
  • 3 回答
  • 0 关注
  • 356 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信