如何理解和使用java的构造方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是java的构造方法,如何理解?
很多的新人,才开始学习JA V A的时候会遇到很多的麻烦,对于java中的方法和构造方法的理解很不透彻,那到底Java中的方法和构造方法有什么区别?
构造方法也属于方法,但是他有一个特性,就是在类实例化为一个对象的时候,就是new
的时候,自动执行构造方法。
构造方法就是初始化方法,也可以不写,JVM会自动添加一个默认的构造方法。
1、如何去理解构造方法和普通方法的区别?
方法有返回类型,方法名小写,不能和类名相同;构造方法没有返回类型,void也不行,名与类名相同。
2、构造方法是初始化对象的重要途径,所以就算你给一个类没有定义构造方法,方法在这个类的加载得时候,会自动提供一个没有参数的构造方法。
所以,常见得Student s=new Student();那么,s这个实例,是通过构造方法初始化的;而普通方法不行
3、他们运行顺序不同。
一个类在初始化的时候,例如People是Student的父类,有构造方法public PeoPle(){}那么,当实例化Student p=new Student()得时候,父类的构造方法会隐式执行(你可自己敲代码尝试,父类构造方法中写个输出语句:例如System.out.println("父类构造方法"))。
你会发现,没有调用任何父类,也没有实例化父类,但是构造方法却执行了。
构造方法被程序员调用的时候必须用new 关键字。
4、方法仅仅是类成员,构造方法也是类成员,但是,构造方法有对类属性得初始化的功能。
所以,常见到public PeoPle(String name){=name}或者public
PeoPle(){name="wangsan",age=14},完成了对People类属性name或者age的初始化
作为一名程序员,你到底学会多少?
俗话说得好:优秀的工具并不会把你变得更优秀。
但你的经验和能力却很重要。
(一)以人为本
我知道的最好的程序员总是把人放在第一位。
他们明白他们是在为人写软件,即使那只是一些复杂系统的后台程序或协议,除了程序员没有人会用到它们。
他们写文档,因为这很重要。
他们帮助其它人如何使用自己的程序代码。
他们愿意付出更多的努力去解决更复杂的问题来让人们以正确的方式使用他们的软件。
(二)对学习有很大的胃口
神奇的程序员对知识有一种可笑的饥渴感。
他们总是对你说一些新的、有趣的东西。
他们习惯于大量的阅读(不论在线的还是线下的),他们喜欢尝试,从中学到经验。
他们对新出现的
语言和平台毫不担忧恐惧。
大多数程序员一般会分为如下几类:
1.学习型
这类程序员对所在领域的语言已经比较了解,对于一般功能可以有较为清晰的实现思路,给出需求时可以通过自己的思路来实现,并且会一定程度上考虑边界条件和性能问题。
但仅此而已,他们对可读性和可扩展性考虑很少,也没有项目级别的考虑,主要是希望通过实现代码来练手或是学习。
这类程序员最大的表现在于喜欢“创造代码”,即使有现成的实现,他们也希望自己来实现一套,以达到“学习”的目的。
他们不喜欢复用别人的代码,看见项目中别人实现了相类似的功能,他们会以“需求不同”的借口来自己重新实现一套。
这类人一般来说对技术有着较为浓厚的兴趣,希望能够通过项目来进行学习。
从项目的角度来说,这种做法最大的麻烦在于开发周期可能较长(相比直接使用现成的实现),并且会使得项目代码膨胀,影响未来的维护。
但这类程序员由于有兴趣,如果好好培养或许会成为明天的牛人。
或许你现在还在因为没有一个好的平台可以学习,没有一个可以解答你问题的高手而发愁,做程序不仅仅要当成一份工作,还要当成一份爱好。
如果你是真的爱它,给你一个提高自己的机会,加企鹅好友,444中间513加上最后的089。
5年开发经验的高手教你如何学习JA V A,并录制最新的教程让你能够更快的成长和学习。
2.拷贝型
拷贝型选手就是传说中的“代码拷贝员”了,他们对实现功能几乎没有思路,所作的事情就是从网上或是之前其他团队成员写的代码中拷贝出片段,然后放到项目中,如果运行项目出现了期望结果,则表示任务完成。
这类人只会改代码,却不会写代码。
他们大多对编程毫无兴趣,只是希望以此糊口而已。
3.新手型
当产品有功能需求时,由于经验有限,程序员并不完全知道要如何实现这个功能,需要通过学习、寻找资料等方式来解决问题。
这种情况下的编码过程,程序员的主要目标是“完成功能”,那么很难有多余的心思去考虑边界条件、性能、可读性、可扩展性、编码规范等问题,因此代码bug可能较多,稳定性不高,常常会发生开发花费1个月,改bug却要改上好几个月的事情。
(三)掌握问题规律的本领
当你做开发有了一段时间后,你会发现有时出现的问题和你曾经处理过的问题看起来惊人的相似。
能够识别这些问题,把过往的解决方案应用到你当前的问题上,这是一个很有用处的本领。
如果每次都能改进这个方案,那是更好了。
(四)执着
软件开发是一个实际上比任何人的想像都要缓慢的开发过程。
它很费时间。
有时候你必须要有最够的耐心去精雕细琢出你需要的代码。
有时,作为程序员,我们会写出非常有趣的代码,但也有时候,我们不得不哭丧着脸去写一大堆过去曾经写过的代码。
想想伟大的程序员之所以能坚持下来,是因为他们能看到他们所从事的事业的大蓝景,他们喜欢这一点一点走向目标的开发过程。
这就是我想到的构成一个优秀程序员的一些特征,但这并不是全部,所以我想听听你的观点。
你认为是什么使一个程序员变的优秀?。