我正在学习Java,最近通过了Copy Constructor教程。我试图编写“复制构造函数”代码,但是它提供了意外的输出。
问题是:
为什么第一个输出显示0
和null
值?
这是带有复制构造函数的对象:
class student6 {
int id;
String name;
int i;
String n;
student6(int a, String b) {
id = a;
name = b;
}
student6(student6 s) {
i = s.id;
n = s.name;
}
void display() {
System.out.println(i + "..." + n);
}
public static void main(String args[]) {
student6 s1 = new student6(11, "Suresh");
student6 s2 = new student6(s1);
s1.display();
s2.display();
}
}
输出量
0...null
11...Suresh
最佳答案
您必须更改您的复制构造函数逻辑
student6(student6 s)
{
i=s.id;
n=s.name;
}
至
student6(student6 s)
{
id=s.id;
name=s.name;
}
在您的显示方法中,您正在打印
id
和name
。因此,您只需要初始化它们即可查看结果。并且请按照
Java naming conventions
。类名以大写字母开头。 student6
应该是Student6
附注:感谢您打印我的名字;)