【问题标题】:How to access a variable which is declared in a method belonging to another Java class?如何访问在属于另一个 Java 类的方法中声明的变量?
【发布时间】:2015-11-06 10:01:18
【问题描述】:

我最近开始尝试使用 Java,但遇到了这个问题。我有两个名为 Main_file.java 和 Helper.java 的 Java 文件。 Helper.java 文件包含一个名为 name 的字符串变量,我希望从我的 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";
    }
}

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

【问题讨论】:

    标签: java string class


    【解决方案1】:

    您在 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();
        }
    }
    

    【讨论】:

      【解决方案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;
      }
      }
      

      【讨论】:

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