java构造器

系列文章目录

第一章 万事万物皆对象
第二章 java构造器
第三章 java访问权限
第四章 java初始化
第五章 java继承
第六章 java重载与重写
第七章 java接口和抽象类
第八章 java数组
第九章 java内部类
第十章 java时间操作
第十一章 final关键字
第十二章 java字符串
第十三章 java异常
第十四章 java泛型
第十五章 java IO操作
第十六章 java NIO操作
第十七章 java zip压缩
第十八章 java反射
第十九章 java反射之Type接口
第二十章 java8流式操作
第二十一章 java8函数式编程


文章目录

    • 构造器


原文链接 https://zhhll.icu/2021/java基础/面向对象/2.java基础之构造器/

构造器

学习java对于构造器应该很熟悉,但是有些人会认为构造器不是必要的,这就是对于构造器没有深入的了解。

每一个java类中都必须至少有一个显式或隐式的构造器,很多时候看到类中并没有定义构造器,有人会认为构造器不是必须的,其实那是编译器隐式的提供了一个无参构造器,否则在进行实例化的时候就无法成立

构造器是一个特殊的方法,用来构造并初始化对象,构造器与类同名

// person变量仅仅是引用了一个对象
Person person = new Person();

如果父类中只有一个有参构造器,而没有无参构造器的话,就需要子类必须提供一个构造器去显式的调用父类的有参构造器方法,否则就会出现编译错误

There is no default constructor available in 'com.zhanghe.study.duotai.Parent'

这里就验证了在子类构造器中会隐式的调用父类构造器(super()),而此时没有无参构造器了,就会出现异常

建议如果添加构造器的话保留一个无参构造器

注意:在构造器中的第一条语句要么是调用父类的构造器(使用super()),要么是调用本类中的另一个构造器(使用this());而且如果使用super()或this()语句的话,就必须是构造器的第一条语句,否则编译器就会报错,是为了让父类中的变量在使用前被正确的初始化

你可能感兴趣的:(java基础,java)