考虑下面的例子中
public class Human
{
public Human h1;
public String name;
public int age;
public Human()
{
name = "myName";
age = 22;
}
}
什么是具有在那里H1的意义呢? 怎样才可以用吗? 而为什么会使用吗? 我们不能只用我们将与新创建实例?
考虑下面的例子中
public class Human
{
public Human h1;
public String name;
public int age;
public Human()
{
name = "myName";
age = 22;
}
}
什么是具有在那里H1的意义呢? 怎样才可以用吗? 而为什么会使用吗? 我们不能只用我们将与新创建实例?
什么是具有在那里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...
}
有许多其他类似的用例。 一个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...
}
其中一个例子,如果你有一个像结构树,然后节点可以包含它自己类型的孩子。 这是你的原因Human
类有它自己的类型的属性。
prev
, next
, parent
, child
, firstChild
, lastChild
, prevSibling
, nextSibling
,...。 这是很常见的具有相同类型之类的领域,以实现诸如链表,树等,在Java数据结构。
它基本上是一样什么指针被用于此目的的C.
作为在java的创建的每个对象实际上是“参考”,以在堆对象的实际位置,因此,在某种程度上可以查看他们作为指针将是C.
所以是这样的:
struct List{ int val; List *next; }
将在Java中是这样:
class MyList{ int val; MyList nextNode; }