gpt4 book ai didi

java.lang.String类的值变量

转载 作者:行者123 更新时间:2023-11-30 07:20:01 25 4
gpt4 key购买 nike

我一直在浏览 String.class 文件 (java.lang.String),但有几个问题。
该类有一个声明为 finalchar[],变量名称为 value。有一个如下所示的构造函数,通过它设置 char[] 的值。

public String(char value[]) {
this.value = Arrays.copyOf(value, value.length);
}

我的问题是:

1) 他们如何通过构造函数设置最终变量的值?
2)其次,equals方法

public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}

在此方法中,如果 anObjectString 的实例,则该方法将 anotherString.value 分配给 char 数组。但是,当我尝试执行 String.value 时,出现错误“值不可见”。我假设是因为它在 String 类中声明为私有(private),但是 String 类如何能够在 String 上使用 anotherString.value 实例?

最佳答案

1.) 设置最终变量的值是允许在构造函数中执行的操作,因为每次调用构造函数时最终变量都是新的。换句话说,每次调用构造函数时,都会创建一个新对象,该对象具有一个可以设置的新最终变量。

2.) 就像 @ControlAltDel 所说的“在类中,可以在其他对象中访问私有(private)方法和字段”,但是如果您只想将字符串设置为字符数组,只需使用“anotherString.toCharArray” ()"

希望这有帮助!享受 Java 的乐趣

关于java.lang.String类的值变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37752237/

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