不多说,直接上干货!
通过
牛客网Java刷题知识点之构造函数是什么、一般函数和构造函数什么区别呢、构造函数的重载、构造函数的内存图解
我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会调用构造函数。那么我们在定义和调用构造函数时,需要注意哪些细节呢?
牛客网Java刷题知识点之构造函数与set方法、与类名同名的一般方法、构造函数中有return语句
需要注意的细节:构造函数可以调用一般函数,但是一般函数不可以直接调用构造函数
class Person {
private String name;
private int age;
//构造函数,初始化name
Person(String n) {
setName(n);
System.out.println(name+":"+age);
}
//一般函数,设置name
public void setName(String n) {
name = n;
}
}
编译通过,我们来测试一下
class PersonTest {
public static void main(String[] args) {
Person p = new Person("小强");
}
}
很显然构造函数中调用一般函数是可以的。
但是,当我们在set方法中调用构造函数:
class Person {
private String name;
private int age;
//构造函数,初始化name
Person(String n) {
name = n;
System.out.println(name+":"+age);
}
//一般函数,设置name
public void setName(String n) {
Person(n);
name = n;
}
}
结果,是
我们看到编译直接通不过,所以说一般函数中是不能直接调用构造函数的。