不多说,直接上干货!
通过
牛客网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; } }
结果,是
我们看到编译直接通不过,所以说一般函数中是不能直接调用构造函数的。