2016-02-01 81 views
-1

是否可以通過公共方法中的私有方法修改在公共方法中調用的變量?通過私有方法在公共方法中查詢變量java

例如:// 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)); 
+1

錯誤,不,lolocal變量是,錯誤,本地。 – EJP

+0

瞭解類中的方法(法律和常用的方法)和方法中的方法(不合法,因此很少見)之間的區別。 – Robert

回答

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); 
    } 
} 
+0

即時通訊困惑此方法有一個方法內的方法,它的工作原理。你能進一步解釋一下嗎?我在示例中添加了示例代碼。 –

+0

它在方法內沒有方法聲明。允許方法調用其他方法,但不能在現有方法內定義新方法。 – DominicEU

相關問題