Что касается сообщений Уильяма Бренделя и dbconfessions , в отношении случая 2. Вот пример:
public class Window {
private Window parent;
public Window (Window parent) {
this.parent = parent;
}
public void addSubWindow() {
Window child = new Window(this);
list.add(child);
}
public void printInfo() {
if (parent == null) {
System.out.println("root");
} else {
System.out.println("child");
}
}
}
I ' Видно, что это использовалось при построении отношений родитель-ребенок с объектами. Однако, пожалуйста, учтите, что для краткости это упрощено.