Java程序案例教程(主编田智、杨艳慈 西安科大版)课件:第5章 类的基本形式05.pptVIP

Java程序案例教程(主编田智、杨艳慈 西安科大版)课件:第5章 类的基本形式05.ppt

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
 5.7 构 造 方 法   1.构造方法的定义   在Java程序中,构造方法所完成的主要工作是帮助新创建的对象赋初值。构造方法可视为一种特殊的方法,它的定义方式与普通方法类似,其语法如下:   在使用构造方法时应注意以下几点:   (1) 它具有与类名相同的名称。   (2) 它没有返回值。   构造方法没有返回值,其名称必须与类的名称相同,它的调用时机与一般方法不同。一般方法是在需要时才调用,而构造方法则是在创建对象时便自动调用,并执行构造方法的内容。因此,构造方法无需在程序中直接调用,而是在对象产生时自动执行。   基于上述构造方法的特性,可利用它来对对象的数据成员进行初始化赋值。所谓初始化,就是为对象赋初值。   下面的程序说明了构造方法的使用。   【例5-13】 TestConstruct.java。   从上述程序中读者不难发现,在类中声明的构造方法会在实例化对象时自动调用。读者可能会问,在之前的程序中用同样的方法来产生对象,但是在类中并没有声明任何构造方法,而程序不也一样正常运行了吗?实际上,读者在执行javac编译Java程序时,如果在程序中没有明确声明构造方法,则系统会自动为类加入一个无参的且什么都不做的构造方法,类似于下面代码:     public Person(){}   所以,之前的程序虽然没有明确声明构造方法,也是可以正常运行的。   2.构造方法的重载   在Java中,不仅普通方法可以重载,构造方法也可以重载。只要构造方法的参数个数不同,或是类型不同,便可定义多个名称相同的构造方法。这种做法在Java中是常见的。   【例5-14】 TestConstruct1.java。   (3) 第20行调用Person类中含有两个参数的构造方法(new Person(张三,25) ),同时将姓名和年龄传到类中,分别为各个属性赋值。   (4) 第21行调用Person类中的talk()方法,并打印信息。   从上述程序可以看出,构造方法的基本作用就是为类中的属性初始化,在程序产生类的实例对象时,将需要的参数由构造方法传入,之后再由构造方法为其内部的属性进行初始化。这是在一般开发中经常使用的技巧,但是这里有一个问题是读者应该注意的,请看下面的程序。   【例5-15】 TestConstruct2.java。   可以看出,在编译程序第20行(Person p = new Person())时发生了错误,这个错误说找不到Person类的无参构造方法。前面曾经提过,如果程序中没有声明构造方法,程序就会自动声明一个无参的且什么都不做的构造方法,可是现在却发生了找不到无参构造方法的问题,这是为什么呢?读者可以发现第5~10行已经声明了一个含有两个参数的构造方法。在Java程序中只要明确声明了构造方法,则默认的构造方法将不会被自动生成。要解决这一问题,只需要简单修改一下Person类即可,可以在Person类中明确地声明一无参的且什么都不做的构造方法。   【例5-16】 TestConstruct2.java。

您可能关注的文档

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档