封装Encapsulation
内部功能抽离
方案
如果有了这个方法
getNode(index:int) -> LinkedListNode
那么 下面的几个方法 实现起来会很方便
get(index:int) -> int insert(index:int, value:int)
private 方法
为内部服务的方法,本不应该曝光出去
1*2 3 private LinkedListNode getNode(int index) { ...}
封装模型
对象模型

使用 private

使用 private 可对属性和方法进行访问保护
禁止外界直接访问属性和方法
private 的仅供内部使用
封装

外界只能看到 public 对外暴露的
不知道 也不该知道 里面有什么
不管 也不该管 里面怎么搞的
内部优化
可以添加不影响外部的 private 属性或方法
样例
1 2 3 public int lastValue(){ return getNode(size() - 1).getValue();}
问题
为了求 size 已经跑到最后一个节点了,
getNode 时又跑了一遍
优化
1 2 3+4 5 6*7 8 9 10 11+12 13 14 public class LinkedList { ... private int size; ... public int lastValue() { return getNode(size - 1).getValue(); } ... public void add(int value) { ... size ++; } ...}