「Java」通俗易懂地告诉你java语言为什么这么设计“构造方法”

文章图片
花10分钟认真的看完一篇文章或许会有意想不到的收获!
每一本讲java的教材都会有一部分内容是讲“java构造方法”的并且我们在实际的编码中也离不开“java构造方法” , 为什么“java构造方法”这么重要?
今天我们就来对“java构造方法”一探究竟
01定义废话少说先看定义!
构造方法是类的一种特殊方法 , 用来初始化类的一个新的对象 , 在创建对象(new 运算符)之后自动调用 。 Java 中的每个类都有一个默认的构造方法 , 并且可以有一个以上的构造方法 。Java 构造方法有以下特点:
- 方法名必须与类名相同
- 可以有 0 个、1 个或多个参数
- 没有任何返回值 , 连 void也不能有
- 默认返回类型就是对象类型本身
- 只能与 new 运算符结合使用
- 如果不去自定义构造方法 , 每个类都有默认的无参构造方法
- 如果自定义构造方法了 , 那么默认的构造方法会失效 , 实例化对象的时候 , 必须用自定义的构造方法实例化对象
通过代码可以发现 , 如果我们自定义了一个带有“i”参数的构造方法 , 那么我们实例化对象的时候就不能使用无参构造了 , 因为你自定义构造参数后 , 默认的无参构造就不生效了 。 同时你必须使用自定义的构造方法 。
可能有点啰嗦了 , 其实我这里就想说一点
java无论如何都会调用构造方法去初始化对象中的变量 , 或是通过默认的构造方法 , 或是通过自定义的构造方法02深入那么为什么 , java无论如何都要通过构造方法去初始化对象中的变量?初始化变量这件事情这么重要吗?
嗯!初始化变量真的很重要!
计算机的存储单元是一个硬件 , 只要通电了 , 里面就会有“0”和“1” , 或是全“0” , 或是全“1” , 或者是“0”和“1”都有 。 那么有了“0”和“1”就一定会有数据 。作为程序员我们在声明一个变量并不去初始化的时候 , 这个变量里面其实是有值的 , 因为当我们声明一个变量的时候就分配了一段内存空间 , 这个空间或许之前就被其他变量使用过 , 里面存的是我们不知道的一个值 , 或许没有被任何变量使用过 , 存的是系统的一个“填充值” , 反正里面一定有一个我们不知道的值 。
所以 , 我们如果不初始化这个变量直接放到程序中去运行 , 这是非常危险的 , 会出现意想不到的错误 。
03java为什么这么做初始化变量其实就是给变量赋值 , 把原来那么不确定的值给覆盖掉 , 换成一个系统规定的值 , 比如java中String初始化之后就是“null” 。
在c语言中是没有自带的构造方法的 , 所以许多c程序的错误都源于程序员忘记初始化变量 。
java为了避免程序员忘记初始化这个问题 , 在语言层面强制要求初始化 , 这样就使得程序安全了许多 。
还有一个问题就是为什么构造方法是和类名同名的?
- 给构造方法命名任何的名字都可能与类的某个成员名称冲突
- 调用构造器是编译器的责任 , 所以必须让编译器知道改调用哪个方法 。
尽我所能将一些编程知识用最通俗易懂的方式分享给你
推荐阅读
- 程序员■Java程序员必知:HashMap进行put操作会不会引起死循
- 课工场郑州翔天信鸽|JavaScript最常用,java是主流,JetBrains公布编程语言排名
- 猿灯塔|POI Excel,Java架构-Apache
- 【Java】github上标星70.5k,贼火的Java突击手册,全面详细对标阿里P7
- 【创业】00后创业跨境电商,未成年为妈妈买两套房,告诉你行业多暴利
- 「编程」后台编程语言互相争执,为何前端公认JavaScript?
- 腾讯@JAVA如何连接数据库
- 地道酬善|哆啦乐选告诉你社区新零售的现状都有哪些?
- 好瓜|是否正在走向歧路?这就告诉你!,“微商”界的餐饮老板
- []10张图片告诉你,大自然的力量有多奇妙,人类有多渺小
