【问题标题】:How to access a variable from one class into another class on different files in same package in javajava - 如何在java中的同一包中的不同文件上将变量从一个类访问到另一个类
【发布时间】:2018-01-07 07:57:58
【问题描述】:

我有文件 Sender.java 和另一个 Receiver.java。在文件 Main.java 中的主类中,我为两者创建了一个对象。我想将 Sender 类中的变量访问到 Receiver 类中。什么是最简单的方法。我将 Sender 类扩展到我的接收者类,它达到了目的。尽管如此,还有其他方法可以做到吗?

Main.java

class Main{
    public static void main(String args[]){

        Sender sender=new Sender();
        Receiver receiver=new Receiver();
        sender.show();
        receiver.show();


    }
}

Sender.java

class Sender{

    static int val=0;
    public void show(){

        System.out.println("Sender value="+val);
        val++;  
    }

}

Receiver.java

class Receiver{
    public void show(){
        System.out.println("Receiver value="+val);  
    }
}

【问题讨论】:

  • 创建变量的getter和setter然后在main方法Sender sender = new Sender(); sender.getYourVariable();
  • 请出示您的代码,以便我们了解更多
  • 我用我使用的代码修改了问题
  • 所以你想在 Receiver 类中使用 Sender 的 val 吗?

标签: java class variables scope


【解决方案1】:

如前所述,getter 和 setter 应该是您的答案。 Why use getters and setters/accessors? 解释了它们的用途。

【讨论】:

    【解决方案2】:

    最简单的方法是将变量公开。虽然如果类在同一个包中,这不是必需的。
    这里更重要的问题是 - 您需要将 Sender 的实例传递给 Recevier
    您还需要了解是否需要静态变量。我的猜测 - 不是静态的(所以Sender 的每个实例都有不同的变量副本)

    class Sender{
    
        public int val=0;
        public void show(){
    
            System.out.println("Sender value="+val);
            val++;  
        }
    
    }
    
    class Receiver{
        public void show(Sender s){
            System.out.println("Receiver value="+s.val);  
        }
    }
    
    class Main{
        public static void main(String args[]){
    
            Sender sender=new Sender();
            Receiver receiver=new Receiver();
            sender.show(sender);
            receiver.show();
    
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 2016-07-29
      • 2017-02-24
      • 1970-01-01
      • 2011-08-23
      • 2015-07-28
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多