В чем смысл наличия h1?
Это будет полностью зависеть от класса.
Как его можно использовать?
Как и любой другой экземпляр.
и почему он будет использоваться? Разве мы не можем использовать экземпляр, который мы создадим с новым?
Рассмотрите связанный список, в котором каждый узел имеет ссылки на следующие (и, возможно, предыдущие) узлы. Эти ссылки были бы того же класса, что и сам узел. Пример: примерно
class LinkedListNode {
private LinkedListNode previous;
private LinkedListNode next;
private Object value;
LinkedListNode(LinkedListNode p, LinkedListNode n, Object v) {
this.previous = p;
this.next = n;
this.value = v;
}
LinkedListNode getPrevious() {
return this.previous;
}
// ...and so on...
}
Существует много других подобных вариантов использования. A Person
класс может иметь членов для связанных лиц (супругов, детей). Вероятно, у древовидного класса были бы листья, которые, вероятно, имели бы ссылки на другие листья. И т.д.
В комментариях вы задали вопрос об одном классе. Да, это абсолютно случай, когда у вас будет член, который был типом класса. Вот стандартный синглтон (есть много вариаций на эту тему):
class Foo {
// The singleton instance
static Foo theInstance = null;
// Private constructor
private Foo() {
}
// Public accessor for the one instance
public static synchronized Foo getInstance() {
if (theInstance == null) {
theInstance = new Foo();
}
return theInstance;
}
// ...stuff for Foo to do, usually instance methods...
}
Вы ВГА Есть три разных имени того же класса. Пожалуйста, отредактируйте его. –