And*_*897 7 java oop binary-tree
我刚刚遇到这个代码来查找二叉树的大小.
public int size() {
return(size(root));
}
private int size(Node node) {
if (node == null) return(0);
else {
return(size(node.left) + 1 + size(node.right));
}
}
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么它有两个方法,一个没有参数.我猜这是一个很好的做法但却无法想到原因.
一是public,一是private。所以一种是不带任何参数的暴露在外部使用public int size(),另一种是只在内部使用,对外隐藏private int size(Node)。
这个概念称为封装,是隐藏不需要公开供一般使用的内部细节的行为,以简化类(或库)的使用。
OOP 建议您应该在私有方法中编写业务逻辑。根据我的带有参数的视图大小方法是私有的,并且计算大小的逻辑在这里,因此没有其他(类之外)可以修改或访问您的逻辑(通过继承)您正在使用另一个尺寸来返回具有公共修饰符的尺寸方法,其他用户将使用该类来获取尺寸,基本上其他用户不知道您如何计算尺寸。
| 归档时间: |
|
| 查看次数: |
27396 次 |
| 最近记录: |