【发布时间】:2018-10-20 01:21:57
【问题描述】:
public class MyString {
//instance variables
char[] charArray;
public MyString(char[] chars) {
charArray = new char[chars.length];
for (int i = 0; i < chars.length; i++) {
charArray[i] = chars[i];
}
}
public MyString print() {
for (int i = 0; i < charArray.length; i++) {
System.out.print(charArray[i]);
}
return new MyString(charArray);
}
class MyStringClient {
public static void main(String[] args) {
MyString str1 = new MyString(new char[] {'h', 'a', 'p', 'p', 'y'});
str1.print();
}
}
您好,我有一个关于代码如何工作的问题。在我的书中,它希望我自己实现字符串类。我创建了一个名为 myString 的类和一个名为 MyStringClient 的类来测试它。代码没有问题,它在执行时输出“快乐”,但我只是通过试验是否有意义来让它工作。当我回过头来试图了解我做得更好一点时,我对我的打印函数在 MyString 类中的工作方式感到困惑。我的书告诉我要创建 MyString 类型的方法,所以我返回了一个 MyString 对象,但是如果我为任何普通对象创建一个引用变量并尝试 System.out.print(obj ref var),我会得到一些哈希码值。这个函数怎么能显示对象的实际内容,我很困惑。谢谢。
【问题讨论】:
-
它输出是因为你调用了
System.out.print(...)。该方法不应该有返回值,因此将返回类型更改为void并删除return语句。
标签: java string object tostring