2013Java程序设计-6-对象和类.ppt_第1页
2013Java程序设计-6-对象和类.ppt_第2页
2013Java程序设计-6-对象和类.ppt_第3页
2013Java程序设计-6-对象和类.ppt_第4页
2013Java程序设计-6-对象和类.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java编程,1,Java,第6章:类和对象,Java编程,2,学习目标:理解类和对象的概念以及它们之间的区别,掌握类的定义和类之间关系的描述,理解相应的UML基本图的作用,理解构造方法,能够使用新的运算符实例化一个对象,理解对象的引用, 掌握成员变量和通过变量名引用对象的方法,理解和掌握变量的范围,理解关键字this的用法,理解静态的作用,理解方法的声明和调用理解包的概念,掌握包的作用。 Java编程,3,6.1.1面向对象的基本概念,什么是面向对象方法中的对象,“对象”是计算机逻辑中现实世界实体或概念的抽象表示。对象的主要特征是以数据为中心,这是一个集成了数据和操作的包。封装隐藏了类的内部实现细节,并迫使类的用户通过指定的接口访问对象,从而提高了代码的可维护性。对象是一组具有唯一对象名和固定外部接口的属性和操作,用于模拟构成或影响现实世界问题的一个或一组因素。程序程序=算法数据;面向对象的程序=对象消息。Java编程,类4,6.1.2和对象。客体是构成现实世界的个体。他们之间有错综复杂的关系。正是这种关系的存在构成了一个多彩的世界。面向对象的分析:一些对象有相似的特征,一些对象相互作用。有必要找出这些对象及其关系。对这些个人进行班级分析,可以将他们分为不同的类型,如学校课程、银行业务等。这种通过归纳对个体进行分类的过程本质上是用面向对象技术创建类的过程。类是一组具有相同特征(属性)和相同行为(方法)的对象的抽象。Java编程,5,6.2类使用JDK,Java编程,6,示例1:使用数学类,/程序6-1:程序使用数学类生成随机数publicClassRandom PublicStaticViedMap(字符串)参数) For(INTI=0;i10I )/使用随机方法生成一个介于0.0和1.0之间的随机数。System.out.println(这次生成的随机数是: r );,Java编程,7,示例2:讨论:doubler=math . random();应用模式和上述程序有什么区别?/程序6-2:一个窗口程序importjavax . swing . JFrame;公共类框架演示公共统计信息工具映射(字符串)参数)JFramefrmfrm=新JFrame(我的窗口程序);frm.setSize(400,300);frm.setVisible(真);,Java编程,8,图6-1变量声明和变量引用的对象,Java编程,9,6.3创建您自己的类。在Java语言中,要表示一个对象,您必须首先拥有该对象所属的类,无论该类是由J2SDK开发工具包提供的、由第三方提供的还是由开发人员自己定义的。类封装了一组对象的公共属性和方法、Java编程、类10、6.3.1的结构、类的定义。PublicclassStudent/首先定义类对象的属性privateStringid私有字符串名称;日期出生日期;/定义构造函数。一个类可以有许多方法来构造对象:公共学生()./以下方法用于定义此类对象:PUBLICVOIDDACADEMICROCORD(学术记录).,Java编程,11,6.3.1类结构(续。),类修饰符类名扩展父类名实现接口名修饰符类型成员变量1;修饰符类型成员变量2;静态/类初始化块构造函数1(参数1,参数2,)功能体;构造函数2(参数1,参数2,)功能体;修改器类型成员方法1(参数1,参数2,)抛出异常列表方法体;修改器类型成员方法2(参数1,参数2,)抛出异常列表方法体;、Java编程、结构(续。)的类12,6.3.1,用UML表示的类,符号,-#分别表示公共的,私有的,受保护的修饰符,Java编程,13,6.3.2声明一个定制的类,一些类声明的例子是简单的类类类学生一个可被任何其他类访问的类-公共类学生一个不能被继承的最终类-最终公共类学生,一个抽象类-抽象公共抽象类学生.继承父类“学生扩展”的类-PubliccLassPostGradeExtendStudent .继承父类学生的类。并实现了一个接口类PublicClassPostGradielTendStudentiimplementationImplementationCTs ,Java编程,14,6.3.3向类中添加成员变量,并使用属性描述对象状态(保存对象的信息)访问修饰符类型的变量名;访问修饰符类型变量名=初始值;访问修饰符类型变量名=初始 ,变量名=初始;publicclassStudent Stringid公共字符串名称;公共收费者= M私人日期出生日期;privateListacademicRecordList,publicclassAccount Stringid/字符串类型帐户的唯一性表示私有字符串名称;/帐户所有者privateintbalance的名称;/以整数表示的账户当前余额),Java编程,15,6.3.3属性声明(续。),Java编程,16,6.3.3属性声明(续。),1。访问控制范围修饰符对由其他对象定义的类的访问限制,Java编程,17,2可直接访问的类属性的属性访问可以通过“类名”来访问。类属性”,如系统输出或“对象引用名称”。类别属性名称”;可直接访问的对象属性可以通过“对象引用名称”来访问。属性名称”;当声明一个类时,相应的getXxx(),setXxx()方法通常是为需要访问的属性定义的,而不是直接访问属性值。PublicClassStudent PrivateStringName;publicStringGetName() return this . name; public void setname(string name) ,Java编程,18,封装和信息隐藏。提出了以下问题:publicclassPerson publicintage:publicStringname客户端程序可以直接访问内部数据:P1 . age=-30;/错误的年龄p1。Java编程,19,封装和信息隐藏。为了实现良好的封装,我们通常将类的成员变量声明为私有的,然后通过特定的方法访问这个变量。对于变量操作,通常有读取和赋值操作。我们分别定义了两种方法来实现这两种操作。一个是getXxx()(Xxx指要访问的成员变量的名称),用于读取成员变量操作,另一个是setXxx(),用于为成员变量赋值。可以添加一些控制代码使其合法。一个类通常是一个小模块,它公开外部世界必须知道的东西,同时隐藏其他内容。在程序的详细设计中,我们应该尽量避免一个模块直接修改或操作另一个模块的数据。模块设计追求强大的内聚力(许多函数在类内独立完成,尽可能不受外部干扰)和弱耦合(向外部提供尽可能少的方法调用)。Java编程,20,Java命名空间和访问规则公共:任何其他类或对象,只要能看到这个类,就可以访问变量数据或使用方法。受保护:可以使用相同的类、相同的包。不同包的类必须是要使用的这个类的子类。私有:不允许其他类访问和调用。(默认情况下,前面没有修饰符):只有出现在同一个包中的类可以直接使用它的数据和方法。Java编程,21,可变范围,Java编程,22,/程序6-3:可变范围publicclassTestScope intxpublicstaticvoidmain(字符串)参数) intx=12 intq=96/x和q都可以使用intx=3;/错误的定义。在Java中不允许这种嵌套定义系统输出打印方式( xis x);system . out . println(“QIs”q)。 q=x;/*错误的行,只有x可用,q超出范围*/system . out . println( xis x); PublicIntGetX() returnx;/返回实例的成员变量X的值)。Java编程,23,6.3.4将方法添加到类中,这些方法是独立的著名代码块,具有可重用的特性。方法由对象通过调用方法名来执行。有些方法有某种类型的返回值,有些没有。具有返回值的方法通常在表达式中调用,并作为表达式的一部分参与操作。但是,不返回值的方法通常在调用语句中调用,以使其完成某个功能。方法调用System.out.println(“欢迎!”);intmax=数学最大值(10,20);Java编程,24,1,方法声明修饰符方法返回类型方法名(类型参数1,类型参数2,)抛出异常列表方法体;Java编程,25 ,Java编程,26,2,给类添加方法来完成什么样的功能。什么样的函数需要相应的数据结构和算法来实现,例如上面的取款方法return(),其功能是将账户的余额减少指定的金额,从而修改代表账户对象余额的成员变量余额。方法运行是否需要参数。有些方法要求调用方传递一个参数,这个参数被称为“参数”在声明方法时,为了接收这些参数,有必要预先声明一些与它们对应的参数。该方法有返回值吗?Java编程,27,3。通过方法调用调用对象方法的过程非常简单,可以通过对象名使用成员操作符直接访问。没有返回值的方法调用:System.out.println(“欢迎!”);返回值为intmax=0的方法调用;max=数学最大值(10,20);/调用最大值的方法,并返回最大值的方法。应特别注意方法:返回值、方法名、调用方提供的参数、Java编程、28、6.3.4定义方法(续。)、4。形式参数和参数。一些方法需要在执行期间接收一些外部值,而对象需要在这些方法执行期间将这些值传递给方法代码,这需要一个传递通道。这个通道是声明方法时定义的形式参数列表,如图6-2所示。方法名后面括号中的形参指定了执行该方法所需的值的数量和类型。在实际执行中,需要根据声明的要求(类型、顺序、数量)提供确定的值。在实际执行中,传递给方法的值称为实际参数,可以用常量或变量来表示,变量可以是基本类型,也可以是引用类型。Java编程,29,6.3.4定义方法(续。),值传递和引用传递形式参数定义了接收和执行时传递的值,但是基本类型和引用类型之间有本质的区别。在使用基本类型的变量将一个值传递给被调用方法的形式参数之后,这两个变量将不会被链接,并且每个变量都有自己的值。在值被对象变量传递到被调用方法的形式参数之后,两个对象变量指向同一个对象,并且是同一个对象的两个名称。注意:根据一些数据,Java只传递值,因为由变量保存的对象引用被视为正常值。/程序6-5:程序publicclassBankService/它可以转移帐户,转移金额PublicValidTransfer(AccountSrc,Accountdest,IntAmount) Src。将(金额)从服务请求中心提取到目的地对象;存款(金额); publicstaticvoidmain(字符串)参数) account 1=newaccount( 001 , lunan ,1000);账户2=新账户(002,亮利,800);银行服务机构=新银行服务机构();bs.transfer(a1,a2,100);system . out . println( Luning and a1 . GetBalance();system . out . println( Liang Li and a2 . GetBalance();、Java编程、30、返回值和方法类型方法返回值有两种类型,一种有返回值,一种没有返回值。那些不返回值的可以直接形成调用语句,如System.out.println(),而那些返回值的可以形成表达式的一部分并参与操作。返回表达式;/返回一个帐户的当前余额PublintGetBalance() return this . balance;,返回;public vourity transfer(Accountsrc,Accountdest,intamount) src . retrieve(金额);存款(金额);,Java编程,31

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论