【发布时间】:2018-06-01 21:53:00
【问题描述】:
我对java中的关键字“return”有疑问。
在名为“change”的方法中,将返回一个带有给定参数 n 的新人对象,但在 main 中定义的对象“pone”不会被新对象覆盖。在 main 方法中执行后“return new Person(n)”对象会发生什么?一位学生告诉我“返回新的 Person(n) 将覆盖 pone 对象中的值。
这是代码:
public class Person {
String name;
Person(String name) {
this.name = name;
}
Person change(String n) {
return new Person(n);
}
void setname(String n) {
name = n;
}
@Override
public String toString() {
return name;
}
public static void main(String[] args) {
Person pone = new Person("Jack");
System.out.println(pone.change("Julia"));
System.out.println(pone);
}
}
输出:
System.out.println(pone.change("Julia")); -> Julia
System.out.println(pone); -> Jack
【问题讨论】:
-
你被告知的是错误的。
标签: java class methods return overriding