0

举个例子,

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?
    }


}

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

4

2 回答 2

4

是的。创建一个成员private意味着它可用于当前类及其任何内部类,但受静态限定符的约束。

包私有(或默认值,没有任何访问修饰符)意味着它可用于同一包中的任何类。

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

于 2013-04-18T17:48:03.993 回答
0

如果您在同一个类中,则访问该类中的任何变量(私有、受保护或公共)都不会出现问题。

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

public class SwapNumber {
...
}
于 2013-04-18T17:52:06.730 回答