gpt4 book ai didi

java - anotherString.value如何在java中String类的源代码中工作?

转载 作者:行者123 更新时间:2023-11-30 02:59:35 24 4
gpt4 key购买 nike

最近查看了Java中String类的源码。而且我发现像 XXX.value 经常出现。像这样:

    public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;

int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}

但是 value[] 是这样声明的:

private final char value[];

上面的 value[] 是私有(private)的,anotherString.value 如何工作?

最佳答案

OOP 指定私有(private)对象对于类来说是私有(private)的。

private 修饰符强制执行封装原则。

这个想法是“外部世界”不应该对 String 内部流程进行更改,因为 String 实现可能会随着时间的推移而改变(并且您必须更改整个外部世界才能修复实现中的差异 - 这几乎是不可能的) .

当 String 实例访问其他 String 实例的内部时 - 您可以确保两个实例始终知道 String 的实现细节。如果 String 进程的内部逻辑发生变化 - 您所要做的就是更改 String 的代码。

关于java - anotherString.value如何在java中String类的源代码中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36298179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com