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()语句的话,就必须是构造器的第一条语句,否则编译器就会报错,是为了让父类中的变量在使用前被正确的初始化

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾光师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值