巧证默认构造函数的存在性

8 篇文章 0 订阅
7 篇文章 0 订阅

今日之失,未必不为后日之得。

Java编程语言的『面向对象』已经深入人心。自然而然,构造器(构造函数)作为类和对象的桥梁,深刻地理解它的重要性不言而喻。

构造器是用来初始化对象的。

一般而言,我们都会将Class理解为蓝图(blueprint)亦或是模板。而对象则是Class概念下更加具体化的东西。
对于动物这个概念而言,我们可以将其作为Class类存在,那么具体的动物(老虎,大象,狮子.ie)就可以被看成对象。

这篇文章的重点在于构造器,所以关于Class(类)对象(Object) 的关系就不详细展开啦。

我们都知道:

构造器是类的一部分,所有的类都必须有构造器

但是我们在定义类的时候,却可以将此不置可否,视若无物。

1.谁给我们做这么大的勇气,WHY?

The compiler automatically provides a no-argument, default constructor for any class without constructors.
(编译器会为没有显式声明构造器的类自动提供一个无参的默认构造器)

一直以来,我们也都将此奉为『金科玉律』。

在编程界一直流传着:Talk is cheap ,show me the code,这句话一直萦绕在我的心头啊.

现在我们就来证明其真实的存在。

用事实说话
用事实说话

为了更好地证明,这里声明一个最简单的类:

public class Demo {
}

然后使用终端:

使用命令 javac Demo.java 进行编译,然后使用命令 Java -c Demo.class查看输出即可。

如下图所示,在编译后的字节码文件(.class文件)中,我们清楚地看到默认构造方法Demo()的存在
在这里插入图片描述

如果使用IDE开发,运行该类(别忘了写main()),然后找到相应的class文件直接查看,也可以得出此结论。


对于高阶的Java开发者而言,掌握Java字节码是必备技能

这篇文章虽然简单,但是希望能起到抛砖引玉的效果。在学校我们接受的是教条式教育,如果我们踏入社会,希望我们可以自己去动手实践。

实践是检验正理的唯一标准

给大家推荐一篇讲解Java字节码的文章:Java字节码结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值