是否可以通过public方法中的私有方法修改公共方法中调用的变量?
示例:// node.left node.right在构造函数中调用,所以不要介意
public boolean isFull(){
Node node = root;
int left;
int right;
left = isFullLeft(node.left);
right = isFullRight(node.right);
if(left.equalTo(right)) return true;
else return false;
private void isFullLeft(Node n){
if(n != null) left++;
isFullLeft(n.left);
isFullLeft(n.right);
private void isFullRight(Node n){
if(n != null) right++;
isFullRight(n.left);
isFullRight(n.right);
代码刚刚放在一起我不确定我是否正确使用实际代码,因为我还在学习Java。但至少我的想法是否正确?谢谢。
编辑:方法中没有方法?但是这个代码里面有方法可以解释吗?
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));
答案 0 :(得分:0)
你不能在方法中使用方法,你应该定义一个由这些方法组成的类。
public class MyClass {
.....
public boolean isFull() {
Node node = root;
int left;
int right;
left = isFullLeft(node.left);
right = isFullRight(node.right);
if (left.equalTo(right)) return true;
else return false;
}
private void isFullLeft(Node n) {
if (n != null) left++;
isFullLeft(n.left);
isFullLeft(n.right);
}
private void isFullRight(Node n) {
if (n != null) right++;
isFullRight(n.left);
isFullRight(n.right);
}
}