错误提示
Exception in thread "main" java.lang.StackOverflowError
错误产生原因
Student构造函数不断自己初始化,形成了循环,不断的new,然后堆栈溢出了
public void setName(String name){
student.name = name;
}
代码改进
使用this关键字,代替当前类
public void setName(String name){
this.name = name;
}
错误代码
Student类
/**
* @author yibox
* @date 2019 09 02 21:36
*/
public class Student {
private String name;
private int age;
Student student = new Student();
public String getName(){
return name;
}
public int getAge(){
return age;
}
public void setAge(int age){
age = age;
}
public void setName(String name){
student.name = name;
}
}
student测试类
/**
* @author yibox
* @key qcby
* @date 2019 09 02 21:38
*/
public class StudentTest {
public static void main(String[] args) {
Student student = new Student();
System.out.println("姓名"+student.getName()+"年龄"+student.getAge());
student.setAge(10);
student.setName("小明1");
System.out.println("姓名"+student.getName()+"年龄"+student.getAge());
}
}