2015-01-31 1 views
0

У меня есть следующий главный класс:Как получить доступ к объекту в классе А из класса B

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){ 

    } 
} 

Как я могу получить доступ к элементам основного класса из других классов?

+0

Это просто кажется странным образом, чтобы попытаться разработать приложение. Класс 'Person', как правило, просто представляет данные - он не должен знать ничего о том, как данные представляются пользователю. Зачем вам это нужно? –

+0

, потому что мой учитель всегда делает что-то сложное в орде, чтобы понять, хорошо ли мы поняли. К сожалению, иногда это приводит к запутыванию. – bogALT

ответ

0

Сделать эти переменные переменными экземпляра или переменными класса, поскольку доступ к локальной переменной возможен только внутри функции, в которой они объявлены.

, если вы используете переменную экземпляра делают их частные и использование методы получения и установки для доступа к ним

private TextArea peopleList = new TextArea(); 

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

Сделано объект MainClass в другом классе и использовать их с помощью методов получения и установки.

Или сделал их статическими/классными переменными в основном классе, поэтому можно получить имя основного класса.

static TextArea peopleList = new TextArea(); 

и в другом классе

MainClass.peopleList 
+0

Хорошо, но что делать, если мне нужно создать графический интерфейс, используя метод setUpGUI() {TextArea peopleList = new TextArea();} 'внутри класса A? – bogALT

+0

Не начинайте переменную, пока она вам не понадобится, просто. Объявляйте экземпляр или статику и инициируйте их, когда требуется –

+0

спасибо. Я спросил, потому что видел это у своего ООП. он должен создать набор методов gui и объектов delcare как «окончательный», – bogALT

Смежные вопросы