Java Наличие классов, получающих информацию друг от друга

1

Скажем, у вас есть два класса, один называется Main а второй называется Second. Second необходимо взять переменную от Main и Main чтобы взять метод из Second

Пример:

public class Main 
{
  Second second = new Second();
  public int firstInt = 5;
  second.printThing();
}

public class Second 
{
    Main main = new Main();
    public void printThing() 
    {  
        System.out.println(main.firstInt);
    }
}

Поскольку вы не можете выполнить Main main = new Main(); и Second second = new Second; не получая исключение, что вы должны делать?

Теги:

2 ответа

4
Лучший ответ

Предполагая, что экземпляры Main и Second должны содержать ссылки друг на друга, вы можете передать ссылки на конструкторы:

Main конструктор:

public Main (Second second)
{
    this.second = new Second (this);
}

Second конструктор:

public Second (Main main)
{
    this.main = main;
}

Если, как следует из названий, Second зависит от Main (т.е. no isntance of Second может существовать без закрывающего экземпляра Main), вы можете определить Second как внутренний класс Main, и в этом случае он будет неявно содержать экземпляр охватывающий класс Main.

0

Не используйте эту инициализацию, добавьте установщик для каждого класса в другой и установите после построения.

Main m = new Main();
Second s = new Second();
m.setSecond(s);
s.setMain(m);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню