欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第7章-对象和类--Java程序设计语言教学课件.ppt

    • 资源ID:82480043       资源大小:1.83MB        全文页数:40页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第7章-对象和类--Java程序设计语言教学课件.ppt

    第7章对象和类Java程序设计程序设计2学习目标l本章介绍Java面向对象程序设计的基本知识:定义类、创建对象及使用对象解决实际问题Java程序设计程序设计37.1对象和类的概念l面向对象程序设计的核心是使用对象编程。对象(object)代表现实世界中可以明确识别的一个整体事物。例如:一个教师、一个学生、一个矩形、软件界面中的一个窗口等,都可以看作是一个对象。l对象必须具备自己独有的特征:状态和行为。对象的状态用一组数据的值来描述,称为数据域;对象的行为由一组对象能够完成的方法来描述。例如:一个矩形对象可以有宽和高两个数据域,它们的数值是矩形对象存在基础;同时矩形对象具有根据宽和高计算面积和周长的方法。Java程序设计程序设计47.1对象和类的概念l类(class)是定义同一类型对象的结构。例如:在特定场合下,所有的矩形都必须具有宽和高两个double类型数据域,具有计算面积的方法和计算周长的方法。在类中使用变量来表示数据域;方法表示行为。此外在类中还必须具有一种特殊的方法,称为构造方法,调用它可以创建类的对象。Java程序设计程序设计67.2类的定义类是一种抽象数据类型,Java语言定义类的语法如下:修饰符class类名/类的数据域成员数据域1;数据域2;/类的方法成员构造方法1;构造方法2;方法1;方法2;Java程序设计程序设计77.2类的定义l类定义的语法结构由类头和类体两个部分组成。类头自左向右包括可选的修饰符、关键字class、类名。类名用标识符命名,通常用名词或名词性短语,构成类名的每个单词的首字母都应大写。l类体由一对大括号括起来。类的组成部分称为类成员,包括数据域和方法成员。数据域成员的定义方式与变量定义相同,语法格式如下:修饰符数据类型数据域名;Java程序设计程序设计87.2类的定义方法成员包括:方法和构造方法。构造方法是特殊的方法,用于创建和初始化对象。构造方法的语法规则包括:修饰符类名(形式参数列表)。Java程序设计程序设计107.3创建对象l构造方法用于创建类的对象,进行了重载的构造方法可以方便地用不同的初始值创建对象。构造方法不能像其它方法一样直接调用,需要使用new运算符进行调用,语法格式如下:new构造方法(实参列表);l调用构造方法时同样要求实参与形参在数量和顺序上匹配,类型兼容,否则会出现构造方法找不到的语法错误。下面语句创建了Rectangle类的两个对象:newRectangle();/调用无参构造方法,创建宽和高都为0的矩形对象newRectangle(10,15);/调用有参构造方法,创建宽10高15的矩形对象Java程序设计程序设计117.3创建对象lJava语言的每个类都必须有构造方法。但是有些类的结构中没有定义构造方法,这种情况下,Java编译器会为类自动添加一个方法体为空的无参构造方法,称为默认构造方法。注意只有在类没有显式定义构造方法的情况才会自动添加默认构造方法。l类是对象的模板,定义了属于该类的对象应该具有的数据和方法。一个对象是类的一个特定的实例。可以从一个类创建多个对象。创建类的一个对象称为实例化。对象和实例两个概念可以互换使用。Java程序设计程序设计137.4.1引用类型和引用变量使用类定义的变量称为引用变量。Java语言使用引用变量来访问对象,引用变量中存放一个对象的地址,定义引用变量的语法格式如下:类名引用变量名;类在定义引用变量时也称为引用类型。用类定义的引用变量能够存放该类的一个对象的地址,称为引用该对象。如数组变量也是引用变量,数组变量可以引用一个数组对象。Java程序设计程序设计157.4.2访问对象的成员创建对象并通过引用变量引用该对象后,可以使用成员运算符“.”访问对象的数据域成员和方法成员。语法格式如下:访问数据域成员:引用变量引用变量.数据域名数据域名访问方法成员:引用变量引用变量.方法名方法名(实参列表实参列表)如以下访问Rectangle对象的成员的语句:Rectanglerect=newRectangle(10,5);System.out.println(Area=+rect.getArea();/输出:Area=50.0rect.width=6;/把该矩形对象的width赋值为6System.out.println(Area=+rect.getArea();/输出:Area=30.0Java程序设计程序设计167.4.3数据域的初始值lJava语言使用直接量null表示引用变量没有引用对象。调用类的构造方法创建对象时,如果构造方法中没有为对象的数据域赋值,则对象的数据域会获得默认的初始值。Java语言规定了不同类型的数据域的默认初始值:引用类型为null,数值类型为0,boolean类型为false,char类型为u0000。如描述课程的类部分定义。publicclassCourse调用默认构造方法创建对象Stringname;/课程名nullinthours;/学时0doublecredit;/学分0.0booleanisRequired;/是否必修falsechargrade;/课程等级u0000Java程序设计程序设计187.4.4类与对象应用实例程序源码:包括两个类的源程序文件。(1)矩形类Rectangle的源程序/文件名:Rectangle.javapublicclassRectangledoublewidth;/宽度doubleheight;/高度Rectangle()/无参构造方法width=0;height=0;Rectangle(doublew,doubleh)/有参构造方法width=w;height=h;doublegetArea()/计算面积的方法returnwidth*height;doublegetPerimeter()/计算周长的方法return2*(width+height);Java程序设计程序设计197.4.4类与对象应用实例(2)测试类TestRectangle的源程序/文件名:TestRectangle.javapublicclassTestRectanglepublicstaticvoidmain(Stringargs)Rectanglerect=newRectangle(10,5);System.out.println(面积:+rect.getArea();System.out.println(周长:+rect.getPerimeter();rect.width=6;System.out.println(面积:+rect.getArea();System.out.println(周长:+rect.getPerimeter();Java程序设计程序设计207.5类成员的可访问性面向对象程序设计的特性之一是封装性,Java语言通过访问修饰符对类及其成员的使用范围进行限制。Java程序设计程序设计217.5.1包Java语言使用包(package)来管理应用程序中的类,Java语言的每一个类都位于一个特定包中。没有指定类在哪个包中,这样定义的类位于默认包中,Java语言虽然允许但不推荐把类置于默认包中。使用包来管理类有四个优点:(1)把功能相近的类置于同一个包中便于查找类;(2)当编写的类被其他应用程序重用时,将类置于包中可以减少或避免命名冲突的情况出现;(3)使用包可以更加灵活的处理类及其成员的可访问性,更好地对类进行保护;(4)使用具有层次关系的包管理类,更加便于应用程序的发布。Java程序设计程序设计227.5.1包lJava语言的包是具有层次关系的,一个包中还可以包含子包。为包进行命名时,使用“.”分隔父包与其子包。例如包名java.lang说明顶层包为java,其中包含了lang子包;而类名java.lang.Math说明Math类位于包java.lang中。通常包名全部使用小写字母命名。l把类置于包中需要在源程序中使用package语句,该语句必须位于一个源程序文件中的第一条语句,其前面只能有注释。package语句的语法格式如下:lpackage包名;lpackage语句的作用是把该源程序文件中定义的所有类置于同一个包中。下面通过一个例子说明如何把类置于指定包中。Java程序设计程序设计247.5.1包l使用包管理应用程序的类时,如果使用类和被使用类位于同一包中,可以不需要进行特别说明直接使用。如果两个类不在同一包中,有两种方式:第一种方式是使用类的命名。这种方式在程序中仅使用类几次还可以,如果使用次数非常多就不方便了。第二种方式是使用import语句导入类。import语句作用是在当前源程序中导入指定的类,可以只使用类名的方式使用该类。import语句位于源程序代码中包语句后面,类定义之前。import语句有两种使用形式,例如:importjavax.swing.*;/导入javax.swing包中的所有类importjavax.swing.JOptionPane;/导入JOptionPane一个类l上面两种import方式对程序的编译和运行效率的影响是相同的。Java程序设计程序设计257.5.2访问修饰符l访问修饰符用来限制应用程序中类和类成员的使用范围,Java语言提供了public、protected、private三个访问修饰符实现四种访问范围。下表中列出了Java语言的四种访问范围。访问修饰符访问修饰符 同一类范围同一类范围内内同一包范围同一包范围内内子类范围内子类范围内 其他范围内其他范围内publicprotected无privateJava程序设计程序设计267.5.2访问修饰符Java程序设计程序设计287.6类的静态成员Java语言的类包括静态成员和实例成员两种类型的成员。实例成员的概念前面已经讲述。使用static修饰的成员称为静态成员,包括静态数据域(也称类变量)、静态方法(也称类方法)。静态成员属于类本身,而不属于类的任何一个对象。见例7-4:为Rectangle2类增加表示创建对象个数的静态数据域,及获取其值的静态访问器方法。新定义的矩形类命名为Rectangle3。Java程序设计程序设计297.6类的静态成员实例数据域与静态数据域的区别是:实例数据域属于特定的对象,一个类可以使用new运算符创建很多对象,每个对象独立拥有自己的实例数据域。本例无论创建多少个矩形对象,每个对象都独立拥有自己的实例数据域width和height。静态数据域是类拥有的,所有创建的矩形对象以共享方式访问。本中的静态数据域numberOfRectangles是所有创建的矩形对象共享的。在访问修饰符允许的情况下,访问静态数据域的方式:对象引用变量.静态数据域/不推荐使用该方式类名.静态数据域/推荐使用该方式Java程序设计程序设计317.7类和对象应用Java语言的类和对象的定义和使用过程中还有其它需要注意的问题,如类中各种变量的作用域、关键字this的使用、对象数组和对象作为方法的参数等。Java程序设计程序设计327.7.1变量的作用域l一个类中的变量主要有类的数据域和局部变量两种形式。其中局部变量的使用在方法一章有过介绍。本节将在类的范围内讨论所有变量的作用域。l局部变量是指在类的方法中定义的变量,不能使用访问修饰符限制作用域,其作用域为定义变量的语句开始到该语句所属的语句块的右大括号。Java程序设计程序设计337.7.1变量的作用域l类的数据域在类内部的作用域与访问修饰符无关,无论在类的任何位置定义数据域,其作用域均为整个类范围,见图(a)。一个特殊情况是某数据域的初始化时使用了另一个数据域,此时被使用的数据域必须定义在前面,如图(b)所示。Java程序设计程序设计347.7.1变量的作用域lJava语言允许类方法中的局部变量与类的数据域同名。这种情况下,在定义局部变量的方法内部,局部变量将屏蔽数据域,即局部变量有效。参见如下程序代码:publicclassSampleprivateStringname=张三;/数据域publicvoidprintName()Stringname=李四;/局部变量,屏蔽了数据域nameSystem.out.println(name=+name);/输出局部变量的值对于上述类执行如下语句后,输出结果是局部变量的值“李四”。Java程序设计程序设计357.7.2关键字thisl类的实例方法中有时会需要引用该类的当前对象,从而访问当前对象数据域或调用当前对象的实例方法。Java语言使用关键字this表示对类的当前对象的引用。类的实例方法中可以用如下方式对当前对象的数据域或方法进行引用:this.数据域/引用当前对象的数据域this.实例方法(参数)/引用当前对象的实例方法l关键字this另外一种用途,是在类的一个构造方法中直接调用另外一个构造方法。这种调用不创建对象,只是将程序流程由当前构造方法转到被调用的构造方法执行,返回后继续执行当前构造方法的剩下的语句。其使用形式如下:this(参数);Java程序设计程序设计367.7.3对象作为方法的参数与返回值l对象作为Java程序的基本要素,也被频繁地用作方法的参数和返回值。前面已经学习了基本数据类型和数组变量作为参数和返回值的情况,只要把握好Java语言的参数传递是“单向值传递”,关于对象在方法调用之间的传递就很容易理解了。l与数组变量作为参数和返回值相同,对象引用变量作为参数和返回值时,在方法之间传递的是对象的地址。进行参数传递时,调用方法的实参引用变量与被调用方法的形参引用变量引用的是同一个对象。Java程序设计程序设计377.7.3对象作为方法的参数与返回值例7-6:编写一个TestRectangle4类,其中定义两个静态方法:createRectangle方法作用是产生一个随机大小的矩形对象;displayRectangle方法的输出一个矩形对象,使用形参获得矩形对象。Java程序设计程序设计387.7.4对象数组程序中有时会需要存储和使用一个类的很多对象,这时应该使用对象数组。对象数组是指数组元素为对象引用变量的数组。定义数组变量及创建数组的形式如下:类名数组变量=new类名数组大小;例如要定义并创建一个可以存放10个Rectangle4对象的数组使用以下语句:Rectangle4rectArray=newRectangle410;如果要将数组的每个元素都引用一个矩形对象,可以使用如下的循环语句实现:for(inti=0;irectArray.length;i+)rectArrayi=newRectangle4();Java程序设计程序设计397.8实例分析:二维坐标系的圆例7-8:编写程序,用户输入二维坐标系的两个圆的圆心坐标和半径后,程序能够判断这两个圆是否是相交圆。课后工作l复习本章内容lJava程序设计程序设计40

    注意事项

    本文(第7章-对象和类--Java程序设计语言教学课件.ppt)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开