书签 分享 收藏 举报 版权申诉 / 32
上传文档赚钱

类型深入类-ch5-2-构造函数-重载汇总课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4708265
  • 上传时间:2023-01-03
  • 格式:PPT
  • 页数:32
  • 大小:146.21KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《深入类-ch5-2-构造函数-重载汇总课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    深入 ch5 构造 函数 重载 汇总 课件
    资源描述:

    1、主要内容 类的多态性或称为 函数方法(成员)的重载 构造函数 类的继承性 接口 所谓的“重载”是指相同的方法名称,若参数个数不同,或参数个数相同、类型不同的话,方法便具有不同的功能。下面的例子把app8_1的setColor()、setRadius()与setAll()三个方法用Java重载的特性,以单一方法 setCircle来取代。从本例可看出,setColor()、setRadius()与setAll()均是在赋值对象的数据成员,这好比是家中分别买了冷气机、暖气机和除湿机一样,不但占空间,且维护上也不方便。Java的重载功能,恰可补足这方面的缺憾。从上例可看出,通过方法的重载,只需有一个

    2、方法名称,却可拥有不同的功用,使用起来相当的方便。public void setCircle(String str)color=str;public void setCircle(double r)radius=r;public void setCircle(String str,double r)color=str;radius=r;class app8_2 public static void main(String args)cir1.setCircle(Red);cir1.setCircle(2.0);cir1.setCircle(Blue,4.0);图8-1 使用重载时,方法会根据参

    3、数的个数与类型来调用相对应的方法 8-1-2 使用重载常犯的错误 使用重载时,它的方法是根据参数的个数与类型来调用相对应方法,因此每一个方法的参数个数或参数类型必须不同。参数个数或参数类型完全相同,而只有返回类型不同的不能进行重载。例如,下面的程序代码是行不通的:其原因是,一旦调用了setCircle()方法,则程序无法判断是哪一个方法被调用。事实上,尝试编译这样子的方法,compiler也会出现错误信息 多态使程序简洁,为程序员带来很大便利。在面向对象编程中,当程序要实现多个相近的功能时,就给相应的方法起一个共同的名字,用不同的参数代表不同的功能。这样,在使用方法时不论传递什么参数,只要能被

    4、程序识别就可以得到确定的结果。类的多态性体现在方法的重载(overload)上,包括成员方法和构造方法的重载。8-2-1 构造函数的基本认识标识符 类名称(类型1 参数1,类型2 参数2,.)程序语句;.构造函数的名称必须和类名称相同构造函数没有返回值请注意:构造函数的名称必须与其所属之类的类名称相同 8-2-2 构造函数的调用时机 如前节所述,构造函数除了没有返回值,且名称必须与类的名称相同之外,它的调用时机也与一般的方法不同。一般的方法是在需要用到时才调用,而构造函数则是在创建对象时,便会自动调用,并执行构造函数的内容。因此,构造函数不需从程序直接调用,而是在对象产生时自动执行。以下列简单

    5、的例子来说明构造函数的使用:程序第79行定义了构造函数CCircle(),其主要的功用是把radius成员赋值为r(即构造函数所接收的参数)。注意(1)构造函数的名称与类名称相同,都是CCircle。(2)构造函数CCircle()并没有返回值,即使没有返回值,在定义构造函数还是不能加上void这个字,否则在编译时将出现错误。8-2-3 构造函数的重载 在Java里,不仅方法可以重载,构造函数也可以重载。在8-1节已经提过,只要方法与方法之间的参数个数不同,或者是类型不同,便可定义多个名称相同的方法,这也就是方法的重载。再以CCircle为例,下面的程序是从app8_2修改,只是把setCir

    6、cle()方法的重载改为构造函数的重载,如下面的范例:app8_4共定义了两个不同参数构造函数CCircle()。第一个构造函数CCircle()定义在第811行,它没有任何参数,其作用是把radius成员设为1.0,把color成员设为“Green”。第二个构造函数CCircle(String,double)则定义在第1317行,它可分别接收String和double两个类型的参数,再将成员设为相对应的值。8-2-4 从某一构造函数调用另一构造函数 从某一构造函数内调用另一构造函数,是通过this()这个关键字来调用的,如下面的范例:第9行则利用this()关键字调用了有参数的构造函数CCi

    7、rcle(String,double),并把color设为“Green”,radius设为1.0。其语法为:注意在某一构造函数调用另一构造函数时,必须以this关键字来调用,而不能以构造函数直接调用,否则编译时将出现错误。例如,若把第9行改写为:CCircle(Green,1.0);/错误的构造函数调用此外,this关键字必须写在构造函数内的第一行的位置,放错了地方也无法编译 this(Green,1.0);/调用构造函数CCircle(String,double)程序说明:8-2-5 构造函数的公有与私有 方法依实际需要,可设为public与private。相同的,构造函数也有public与

    8、private之分。到目前为止,我们所使用的构造函数均属于public,因此它可以在程序的任何地方被调用,所以新创建的对象均可自动调用它。如果构造函数被设成private,则无法在该构造函数所在的类以外的地方被调用。如下面的范例:8-2-6 构造函数的省略 在第7章与第8章的8-1节所介绍构造函数之前的程序均没有定义构造函数,依然可以创建新的对象,并正确地运行程序,这是因为如果构造函数省略,Java会自动调用默认的构造函数(default constructor)。默认构造函数的格式如下:public CCircle()/默认的构造函数注意:默认的构造函数并没有任何的参数,也不做任何事情如果您自行设计了一个没有参数的构造函数,则在创建对象时会调用自行设计的构造函数,而不会调用默认的构造函数。这是Java的覆写(overriding)所致。8-3 类变量与类方法8-3-1 实例变量与实例方法范例:事例变量与事例方法

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:深入类-ch5-2-构造函数-重载汇总课件.ppt
    链接地址:https://www.163wenku.com/p-4708265.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库