从对象为类设置变量,并从该类的另一个对象访问相同的值

时间:2018-03-10 11:29:32

标签: java oop

以下是三个班级。

  1. input.java
  2. Middle.java
  3. Output.java
  4. 在这种情况下,Middle.java有一个静态全局变量x。

    我使用setter方法从input.java类设置x的值。 现在我想使用getter方法从output.java访问相同的x值。但是当我尝试这样做时,它并没有这样做。 这是类文件。

    1. Input.java

       public class Input {
          public static void main(String[] args)
          {
              Middle m = new Middle();
              m.setX(100);
          }
      }     
      
    2. 2.Middle.java

          public class Middle {
      public static int x;
      
      public void setX(int value)
      {
          x = value;
      }
      
      public int getX()
      {
          return x;
      }
      }   
      

      3。 Ouput.java

          public class Output {
      
      public static void main(String[] args) {        
          Middle m = new Middle();
          int temp = m.getX();
          System.out.print(temp);
      }
      }
      

      所以,当我首先运行input.java程序并将值设置为100然后运行output.java程序时,我必须得到的输出是100.但我不能得到它。

1 个答案:

答案 0 :(得分:0)

如您所知,程序停止运行后,对象中保存的值将无法访问。因此,您需要将值永久存储在某处,以便下次运行程序时可以读取它。

执行此操作的一种方法是将值写入硬盘驱动器上的文件:

try (FileWriter writer = new FileWriter("/some/path/to/a/file.txt")) {
    writer.write(yourValue);
} catch (IOException e) {
    e.printStackTrace();
}

然后你可以这样读:

try (FileReader reader = new FileReader("/Users/mulangsu/Desktop/temp.txt")) {
    System.out.println(reader.read());
} catch (FileNotFoundException e) {
    System.out.println("File not found");
} catch (IOException e) {
    e.printStackTrace();
}

另一种方法是将值保存到Web服务器。这样,您的价值可以在不同设备上持续存在。