java - 如何从 main 设置 Setters 并从另一个类 Java 7 获取 Getters

标签 java getter-setter

我有 3 个类(class); 1) Main 2) SettersAndGetters 3) AnotherClass。 在我的主要类(class)中,我设置了二传手。我正在寻找一种从 AnotherClass 访问这些值的方法。现在我得到一个空值,这是由于我创建的新实例。那么我该如何解决这个问题,如何检索我在 main 中设置的值。

public class Main{

   public static void main(String args[]){
      GettersAndSetters sg = new GettersAndSetters();
      AnotherClass copyOfSG = new AnotherClass();

      sg.setName("Mo");
      sg.setAge(20);
      sg.setIdNum("77777");

      System.out.print("Name : " + sg.getName() + " Age : " + sg.getAge()+"\n");
      System.out.println(copyOfSG.printout());
      //In here I am trying to print the value that is 
      //in my 3rd class "AnotherClass" but i am getting null. 

   }
}

输出:

Name : Mo Age : 20
Age: 0
Name: null

SettersAndGetters:

public class GettersAndSetters{
   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;
   }
}

另一个类:

public class AnotherClass {

    public void printout() {
        GettersAndSetters gs1 = new GettersAndSetters();

        System.out.println("Age: " + gs1.getAge());
        System.out.println("Name: " + gs1.getName());

        System.out.println();

    }

}

最佳答案

这是因为您在 MainAnotherClass 中创建了两个独立的 GettersAndSetters 实例。看:

   public static void main(String args[]){

      GettersAndSetters sg = new GettersAndSetters(); //first instance
      AnotherClass copyOfSG = new AnotherClass();

      ...
   }

public class AnotherClass {

    public void printout() {
        GettersAndSetters gs1 = new GettersAndSetters(); //second instance
        ...
    }
}

并且您在第一个 实例中设置属性,但试图从第二个 读取它。 要解决这个问题,只需按照 Satya 的建议将第一个实例从 Main 传递到 AnotherClass 中的方法即可。

public class AnotherClass {

    public void printout(GettersAndSetters sg) {
        System.out.println("Age: " + sg.getAge());
        System.out.println("Name: " + sg.getName());        
        ...
    }
}

然后用下一种方式调用它:

public class Main{

   public static void main(String args[]){
      GettersAndSetters sg = new GettersAndSetters();
      AnotherClass copyOfSG = new AnotherClass();

      ...

      copyOfSG.printout(sg);
   }
}

关于java - 如何从 main 设置 Setters 并从另一个类 Java 7 获取 Getters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35241873/

相关文章:

java - 我的 setNumber 没有按照我的预期发生相应变化

java - 无需重新启动即可重新加载 Drools 规则

java - Android 上的位图 LockBits?

java - 当我更改文本并将其显示在线程中的 UI 上时,什么也没做(JAVA)

java - 又一个 'could not find or load main class' 错误

java - Eclipse - "other driver default"问题,未指定驱动程序文件

c++ - 具体 "getter setter"专用对象

javascript - 如何 "override"原型(prototype)上定义的(get-)属性?

kotlin - 在init block 中初始化变量并在kotlin中为该变量定义一个setter

objective-c - 当 KVO 从模型 setter 触发时,防止递归地重新输入observeValueForKeypath