如何从B类访问A类中的对象

时间:2015-01-31 14:34:48

标签: class constructor javafx

我有以下主要课程:

public class JavaFXApplication4 extends Application {

@Override
public void start(Stage primaryStage) {
    Button btn = new Button();
    btn.setText("Add to the list");
    TextArea peopleList = new TextArea();
    String name = "name";
    String surname = "surname";
    btn.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            Person p = new Person(name, surname);
        }
    });

    StackPane root = new StackPane();
    root.getChildren().addAll(btn, peopleList);

    Scene scene = new Scene(root, 300, 250);

    primaryStage.setTitle("People list");
    primaryStage.setScene(scene);
    primaryStage.show();
}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    launch(args);
}

我希望类Person的构造函数将名称和姓氏添加到主类的TextArea peopleList中。

    public class Person {
    public String name, surname;

    public Person(String n, String s){

    }
}

如何从其他类访问主类的元素?

1 个答案:

答案 0 :(得分:0)

将这些变量设为实例变量或类变量,因为只能在声明它们的函数内访问局部变量。

如果你使用实例变量将它们设为私有,并使用getter和setter来访问它们

private TextArea peopleList = new TextArea();

public TextArea getPeopleList(){ // getter to access
         return peopleList;
 }
 public void setPeopleList(TextArea peopleList){
        this.peopleList=peopleList;
 }

将MainClass的对象放在其他类中,并使用getter和setter来使用它们。

或者在Main类中创建静态/类变量,因此可以使用Main Class的名称进行接收。

static TextArea peopleList = new TextArea();

和其他课程

MainClass.peopleList