1

我已经审查了Java.lang.String实现。构造函数让我感到困惑。
为什么result.value,result.count,result.offset可以直接使用。
因为三人的财产都是私人的!!!

 /** The value is used for character storage. */
private final char value[];

/** The offset is the first index of the storage that is used. */
private final int offset;

/** The count is the number of characters in the String. */
private final int count;

public String(StringBuilder builder) {
    String result = builder.toString();
    this.value = result.value;
    this.count = result.count;
    this.offset = result.offset;
}
4

3 回答 3

4

Java 方法可以访问声明它的类的任何实例的私有字段值。它是语言的一部分。

(也许您认为“私有”在 Java 中的含义与在现实生活中的含义相同。事实并非如此。Java 访问修饰符主要不是维护数据隐私或安全性的机制。访问修饰符主要是关于什么正在维护抽象边界;即防止一个类依赖于另一个类的内部实现细节。)

于 2013-03-29T03:24:58.057 回答
1

result.value,result.count,result.offset来自参数builder

于 2013-03-29T03:24:55.063 回答
0

私有访问修饰符

声明为私有的方法、变量和构造函数只能在声明的类本身内访问,即由其所有成员访问。私有访问修饰符是限制性最强的访问级别。类和接口不能是私有的。如果类中存在可以检索该类的私有实体的公共方法,则可以在类外部访问声明为私有的变量。

于 2013-03-29T03:40:18.003 回答