构造函数为了实例化类而存在 没构造函数类将不能被实例化 可以重载 当类里没构造函数系统会自动帮你添加默认构造函数 当你写了构造函数 系统不会帮你添加已你写的为主。
当类被实例化时每个构造函数最多只运行一次 最少运行一次构造函数
构造函数语法格式 访问修饰符 类名 函数体 函数体不能被省略
当所有构造函数被私有化时不能在外部类初始化该类只能在类内部初始化该类
初始化一个类需先初始化成员属性 初始化一个子类须先初始化父类
调用语句语法格式 this(参数列表);
该语句只能在构造函数里面使用而且必须在地一行使用 不能在成员方法里使用
构造函数不能被递归 构造函数之间不能相互被调用这样防止进入循环调用 如构造函数2调用构造函数1可以但是同时构造函数1调用构造函数2就报错 又如构造函数1和2调用构造函数3可以 但同时构造函数3调用构造函数1或2 就报错
如- public class Demo{
- public Demo(){
- //this(1); 编译通不过 互相调用如果把this();注释掉就可通过
- this(1,true); //通过 第一行被注释所以它在地一行
- }
- public Demo(int i){
- this(); //单项调用 编译通过
- }
- public Demo(int i,boolean f){
- this(true,2); //编译通过
- }
- public Demo(boolean f,int i){
- } //Demo(1); 这里随便调用哪个构造方法会造成构造方法循环调用所以编译通不过。。
- }
复制代码
|
|