2014-08-03 4 views
-1

Какова область переменных, объявленных как закрытый во внутреннем классе? Например, какова будет область ключевой переменной в коде, приведенном ниже.Объем частных переменных во внутреннем классе?

package redblacktrees; 

public class RedBlackTrees<Key extends Comparable <Key>,Val> { 

    private Node root; 

    private class Node 
    { 
     private Key key; //what is thescope of this variable 
     private Val val; 
     private Node left, right; 

    } 

    public Val get(Key key) 
    { 
     Node x = root; 
     while(x != null) 
     { 
      int cmp = key.compareTo(x.key); 
      if(cmp < 0) 
       x = x.left; 
      else if(cmp > 0) 
       x = x.right; 
      else 
       return x.val; 
     } 

     return null; 

    } 
} 

ответ

2

Область находится между { и } из Node однако он доступен для любого кода при условии, что вы RedBlackTrees дать явный путь.

BTW Когда вы получаете доступ к частным членам таким образом, компилятор javac должен добавлять методы доступа, которые не замедляют код, который много, но может приводить к запутанным трассировкам стека. Для простоты я бы сделал участников «пакетным локальным».

 Смежные вопросы

  • Нет связанных вопросов^_^