内部类中私有变量的范围?

时间:2014-08-03 10:33:41

标签: java variables scope

在内部类中声明为private的变量的范围是什么?例如,下面给出的代码中的关键变量的范围是什么。

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;

    }
}

1 个答案:

答案 0 :(得分:2)

范围介于{的{​​{1}}和}之间,但只要您提供明确的路径,Node下的任何代码都可以访问该范围。

BTW当您以这种方式访问​​私有成员时,RedBlackTrees编译器必须添加访问器方法,这些方法不会减慢代码的速度,但可能会产生令人困惑的堆栈跟踪。为简单起见,我会让成员“打包本地”。