如果它位于同一个类中,您是否可以访问实例的私有变量? (备份)

时间:2013-04-18 17:46:53

标签: java scope private

举个例子,

public class SwapNumbers {

private int aNumber = 0; ///////////////////////////////////

    public SwapNumbers(){

    }

    public void changeNumber(int changed){
    aNumber = changed;

    }
    public void swap(SwapNumbers otherNumber){ ///////////

    aNumber = otherNumber.aNumber; //Can we access aNumber?
    }


}

交换这项工作会不会?我的第一直觉是它不起作用,因为它试图访问私有值。

2 个答案:

答案 0 :(得分:4)

是。创建成员private意味着它可以与当前类及其任何内部类一起使用,但受静态限定符的限制。

Package-private(或默认值,不带任何访问修饰符)表示它可用于同一个包中的任何类。

public修饰符使其可用于任何包中的任何类。小心这些:)

答案 1 :(得分:0)

如果您在同一个班级中,则访问班级中的任何变量(私人,受保护或公开)都没有问题。

您将无法从外部访问私人变量

public class SwapNumber {
...
}