我昨天在编写自己的LinkedList实现。我做的事情类似于这样:
当我使用
这使我想知道,什么时候会希望使用除了
public class Node
{
Node next;
int value;
public Node()
{
next = null
value = 0;
}
}
当我使用
Node
时,我在执行node.next
和node.value
。然后我意识到-等等,我在做什么?这些实例变量应该是private
的,然后我应该用getter()和setter()来访问,例如getNext()
和setValue()
。这使我想知道,什么时候会希望使用除了
private
实例变量之外的内容?
getter
和setter
的一个优点是,如果将来需要添加验证逻辑或副作用,那么您只需在一个地方(即getter/setter中)编写该代码,所有已经通过getter/setter访问变量的其他代码现在都使用该验证逻辑。 - nhgrif