




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计,第7章对象和类,学习目标,理解对象和类以及它们之间的关系掌握如何定义类并创建类的对象了解类和对象的UML表示理解构造函数的作用理解对象引用,掌握如何向方法传递对象引用掌握getter、setter方法掌握this的含义和使用理解实例变量和方法,静态变量、常量和方法理解类中变量的作用域使用对象作为数组元素,面向对象的程序,C语言的面向过程的语言。面向过程的核心:数据结构算法数据加工Java语言是面向对象的语言。面对对象的核心:封装继承多态对象协作,类和对象,对象(object)表示现实世界中可以明确识别的实体。例如,学生、圆、按钮等。对象具有状态和行为。类(class)定义了同一类对象共有的属性和方法。类是对象的模板、蓝图。对象是类的实例。,classCircledoubleradius=1.0;Circle()radius=1.0;Circle(doubler)radius=r;doublefindArea()returnradius*radius*3.14159;,示例,下面是一个圆类:,数据字段,方法,构造函数,类和对象的UML表示,类的UML表示,类名,数据字段,方法,对象的UML表示,对象名:类名,数据字段值,构造函数,构造函数,构造函数(constructor)是一段初始化代码,用于创建对象。语法constructorDeclaration:modifieroptclassName(parameterList)statementsopt缺省构造函数如果类未定义任何类型的构造函数,编译器会自动提供一个不带参数的构造函数。如果已存在带参数的构造函数,则不会提供不带参数的构造函数。,创建对象,使用new操作符创建对象。语法:newClassName(actualParameterListopt);例如:newCircle();/调用无参构造函数newCircle(5);/调用带有一个参数的构造函数Java虚拟机为新创建的对象分配内存,并返回对象的引用。实例变量被赋予默认初值实例变量显式初始化返回对象引用,引用变量,对象通过引用变量(referencevariable)进行访问,引用变量中存储的是对象的引用(reference)。声明引用变量ClassNameobjectRefVar;例如:CirclemyCircle;引用变量赋值objectRefVar=newClassName();例如:myCircle=newCircle();,在一条语句中声明变量和创建对象,合并为一句ClassNameobjectReference=newClassName();例如:,CirclemyCircle,newCircle();,=,1.声明一个引用变量,变量类型为Circle,变量名为myCircle,2.创建对象,返回对象的引用,3.将对象的引用赋值给变量myCircle,访问对象的实例变量和实例方法,访问对象的实例变量objectRefVar.data例如:myCircle.radius访问对象的radius数据字段调用对象的实例方法objectRefVar.method(arguments)例如:myCircle.findArea()调用对象的findArea方法,例声明类并创建对象,编写程序,定义Circle类,创建Circle对象。创建一个半径为5的圆。创建一个半径为1的圆。显示两个圆的半径和面积。将第二个圆的半径改为100,显示其半径和面积。,Example:v1/TestCircle.java,v1/Circle.java,基本类型变量和引用类型变量的区别,变量表示存储数据的内存单元。基本类型变量存储的是基本类型的值。引用类型变量存储的是对象的引用。当变量未引用任何对象时,它是值为null。,赋值的区别,当进行变量赋值时基本类型变量赋值时,变量的实际值赋值给另一个变量。引用类型变量赋值时,对象的引用赋值给另一个变量。,不再被引用的对象,将被运行时系统自动回收,例使用Java类库中的类,使用javax.swing程序包中的JFrame类创建两个窗体。设置窗体的标题、大小和位置,并显示。,Example:TestFrame.java,类成员访问控制符,类中代码可以访问自身的所有成员。其它类中的代码访问成员,受访问控制符的限制:private只能当前类自身可以访问。package无访问修饰符的成员,只有相同包中的代码可以访问。protected子类、同一包中的类可以访问。public所有其它类都可以访问。访问控制是在类的层次上进行的,而不是在每个对象上。,Getter和Setter方法,通常为私有(private)成员变量提供Getter和Setter方法。如果成员变量为DateTypepropertyNameGetter方法用于获取成员变量的值签名:publicDateTypegetPropertyName()Setter方法用于设置成员变量的值签名:publicvoidsetPropertyName(DateTypevalue),Example:v2/TestCircle.java,v2/Circle.java,将对象传递给方法,与传递数组一样,传递对象实际是传递对象的引用。基本数据类型传递的是实际值的拷贝,修改形参,不影响实参。引用类型变量传递的是对象的引用,通过形参修改对象,将改变实参引用的对象。,Example:v2/TestPassObject.java,实例变量与静态变量,实例变量(instancevariable)未用static修饰的成员变量,属于类的具体实例(对象),只能通过引用变量访问。静态变量(staticvariable)是用static修饰的变量,在一个类的所有实例间共享,也称类变量。静态变量可以通过类名访问。,静态常量,静态常量是用staticfinal修饰的变量。例如,Math类中的常量PI定义为:publicstaticfinaldoublePI=3.14159265358979323846;,静态方法,静态方法(staticmethod)是用static修饰的方法。例如:mainJOptionPane.showMessageDialogJOptionPane.showInputDialogMath.random静态方法可以通过类名调用。静态方法只能访问类的静态成员,不能访问类中的实例成员。,例使用实例、静态的变量和方法,为v2.Circle添加一个静态变量,保存创建Circle对象的数量。在main方法中创建circle1和circle2两个对象。修改实例和静态变量,并查看修改的结果。,Example:v3/TestCircle.java,v3/Circle.java,变量的作用域,成员变量(实例变量和静态变量)的作用域是整个类,与声明的位置无关。如果一个变量的初始化依赖于另一个变量,则另一个变量必须在前面声明例如:publicclassFoointi;intj=i+1;如果一个局部变量具有与类中的变量相同的名称,那么局部变量优先,成员变量被隐藏。,Example:TestScope.java,this关键字,this表示当前对象在实例方法中,实例变量被局部变量或方法参数隐藏,可以通过this.instanceVariable访问实例变量。调用当前类的其它构造函数。this(actualParameterListopt)必须是构造函数的第1条语句。,Example:v4/TestCircle.java,v4/Circle.java,对象数组,与基本数据类型一样,可以声明并创建对象数组。当创建对象数组时,数组元素的缺省初值为null。CirclecircleArray=newCircle10;for(inti=0;icircleArray.length;i+)circleArrayi=newCircle();,Circle对象0,Circle对象1,Circle对象9,例汇总圆的面积,编写程序,将一个Circle数组的面积相加。程序创建由10个Circle对象组成的数组然后以随机数初始化圆的半径显示数组中所有圆的总面积,Example:v4/TotalArea.java,例使用Loan类,编写程序,实现一个下面的类并测试。,年利率,缺省值为2.5,贷款年数,缺省值为1,贷款金额,缺省值为1000,贷款日期,构建缺省的Loan对象,使用给定的值,构建Loan对象,获取年利率,获
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 认识时间 教学设计-数学人教版二年级上册
- 新版五年级数学上册全册教案设计
- 术后疼痛管理记录模板
- 内科护理理论与实操试题
- 5.1 认识技术与工程 说课稿-2024-2025学年浙教版七年级上册科学
- 期货清算效率优化-洞察与解读
- 汽车服务安全员考试题库及答案解析
- 建筑废弃物清运管理标准与实践
- 审计项目跟踪报告撰写指南
- 高校教学资源共享平台建设规划
- 2026届海口市重点中学九年级数学第一学期期末达标测试试题含解析
- 基于边缘计算的导航算法优化-洞察及研究
- 实施指南(2025)《DA-T 59 - 2017 口述史料采集与管理规范》
- 高一物理力学知识点总结与测试题
- 广东省深圳市罗湖区2025-2026学年高三第一学期开学质量检测语文(含答案)
- 基于PLC的果园灌溉施肥系统设计
- 2025年武汉市中考英语试卷真题(含答案)
- 大面积脑梗死的护理查房
- 医药代表拜访中的市场分析技巧
- JGT472-2015 钢纤维混凝土
- 变压器市场需求分析报告
评论
0/150
提交评论