如何访问在属于另一个Java类的方法中声明的变量?

时间:2015-11-06 10:01:18

标签: java string class

我最近开始尝试使用Java,但我遇到了这个问题。我有两个名为Main_file.java和Helper.java的Java文件。 Helper.java文件包含一个名为String的变量,我希望从我的Mainfile.java访问它并分配给字符串变量x。文件看起来像这样。

Main.java

public class Mainfile{

    Helper myhelper =new MyHelper();

    public void create_func(){
        String x =  /* assign the value name from the helper file */;
    }

Helper.java

public class Helper{

    public void add_name() {
        String name = "New_name";
    }
}

但这似乎不起作用。我不确定我尝试的方法是对还是错。有人可以帮帮我吗?先感谢您。

2 个答案:

答案 0 :(得分:2)

您无法直接访问另一个类的方法的局部变量。您可以通过使方法返回对象并通过类的对象调用方法来访问它来实现。您可以这样做:

public class Mainfile{
Helper myhelper =new Helper();

public void create_func(){

    String x =  myhelper.add_name();
} 
}

public class Helper{

  public String add_name(){
      String name = "New_name";
      return name;
}
}

答案 1 :(得分:2)

您在Helper类中创建的变量name不是类成员,而只是方法add_name()中存在的成员

如果你想要一个班级成员,你必须像这样创建:

public class Helper{
    String name = "New_name";
}

然后您可以像这样访问它:

public class MainFile{

    Helper myHelper = new Helper();

    public void create_func(){
        String x =  myHelper.name;
    }
}

很多人会说班级成员“必须”是私人的,所以为班级成员创建getter和setter可能更好:

public class Helper{
    private String name = "New_name";
    public String getName() {
        return name;
    }
    public void setName(String newName) {
        name = newName;
    }
}

public class MainFile{

    Helper myHelper = new Helper();

    public void create_func(){
        String x =  myHelper.getName();
    }
}