【发布时间】:2018-10-15 19:43:24
【问题描述】:
我很困惑为什么我的私有变量会被其他类公开和修改,这让我很沮丧,因为我无法弄清楚我的概念/理解哪里出了问题。请帮忙。
Test.java
public class Test {
private String[] privateStringArr = new String[10];
Test() { }
public String[] getStringArr() {
String[] cover = privateStringArr;
return cover;
}
}
Main.java
public class Main {
static Test testClass = new Test();
static String[] shouldBePrivate = testClass.getStringArr();
public static void main(String[] args) {
System.out.println(testClass.getStringArr()[0]);
shouldBePrivate[0] = "hello";
System.out.println(shouldBePrivate[0]);
System.out.println(testClass.getStringArr()[0]);
}
}
输出:
null
hello
hello
为什么修改shouldBePrivate 也修改testClass 中的privateStringArr?
提前致谢
【问题讨论】:
-
这根本不是私人的!
-
私有只是意味着你不能直接使用变量名来访问变量,比如
testClass.privateStringArr。