如何引用在main方法中在另一个类中声明的对象属性

时间:2015-09-18 02:33:52

标签: java object

我在2个单独的文件中有2个类。我在Person.java中的第一堂课如下所示:

dns_get_record()

我如何在我的第二个类中引用^特定人物对象的名称属性(paul):Family.java的主要方法?在Family.java里面我试过创建一个新的person对象,但是我不能引用Person对象,Paul的名字属性。

几乎在Family.java中

public class Person(){
    String name;
    public static void main(String[] args) {
        Person paul = new Person();
        paul.name = paul();
    }
}

在main方法里面我想得到paul对象,我在Person.java的main方法中创建了它的名字属性

2 个答案:

答案 0 :(得分:1)

这不可能。在Person.main返回后,paul超出范围且无法再访问,并且有资格进行垃圾回收。

你可以这样做:

public class Person{
    String name;
    static Person paul;
    public static void main(String[] args) {
        paul.name = "Paul"; //I assume you meant this?
    }
}

public class Family{
    public static void main(String[] args) {
        Person paul = Person.paul;
    }
}

但从您尝试做的事情(以及您有两种主要方法)来判断,您可能会遇到更深层次的问题。

答案 1 :(得分:0)

您可以在static member课程中拥有Person,然后在Family课程中进行访问。您可以为getter属性定义name以获取Person的名称。此外,您可以将该类保留在一个文件中,只保留其中一个类,因为文件名应与公共类相同。声明一个类也不需要()。由于name在类中是String类型,您可以定义一个字符串文字来分配给它。

public class Family {
  public static void main(String[] args) {
    Person person = Person.paul;
    String name = person.getName();
  }
}

class Person{
  private String name;
  static Person paul;

  public static void main(String[] args) {
    paul = new Person();
    paul.name = "paul";
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }    
}

PS:您希望使用此代码实现什么目标?因为two main method不是必需的。您可以使用constructor参数在Person类中定义String。根据需要在Person课程中创建Family对象。