




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章Java与面向对象编程,本章内容提要,面向对象的程序设计方法力求符合人脑的思维方式,通过符合人类思维的更抽象的客观世界模型,降低、分解问题的难度和复杂性,并以此来解决问题。与结构化的程序设计方法有何区别?,3.面向对象基础,面向对象的基本原理面向对象方法学是面向对象程序设计技术的理论基础。该理论的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与人类的认知过程同步,通过对人类认识客观世界及事物发展过程的抽象,建立规范的分析设计方法,由此使程序具有良好的封装性、可读性、可维护性、可重用性等一系列优点。,3.面向对象基础,面向对象的基本概念1对象对象就是现实世界中实体在计算机逻辑中的映射和体现。实体都具有一定的属性和行为。从面向对象的观点来看,所有的面向对象的程序都是由对象构成的。,3.面向对象基础,2类类就是具有相同或相似属性和行为的对象的抽象。在面向对象的程序设计中,类与对象是抽象与具体的关系。,3.面向对象基础,3属性对象的属性主要用来描述对象的状态。属性用变量来定义。4行为对象的行为又称为对象的操作,主要描述对象内部的各种动态信息。行为用方法来刻画。,3.面向对象基础,面向对象编程的特点1封装封装,就是将事物的内部实现细节隐藏起来,对外提供一致的公共的接口间接访问隐藏数据。优点:使得Java程序具有良好的可维护性使得代码的重用性大为提高,3.面向对象基础,2继承当一个类拥有另一个类的数据和操作时,就称这两个类具有继承关系。被继承的类称为父类或超类,继承父类的类称为子类。继承有单重继承和多重继承之分。优点:使得面向对象的程序结构清晰,易于理解。,3.面向对象基础,3.多态多态指多种表现形式,就是对象响应外部激励而使其形式发生改变的现象。多态有两种情况:一种是通过类之间继承导致的同名方法覆盖体现的,另一种是通过同一个类中同名方法的重载体现的。优点:提高了程序的抽象程度和简洁性。,3.面向对象基础,类的结构classextendsimplements类体成员变量定义;成员方法定义;在类的声明格式中,内部的内容表示可选的,可以根据需要有选择的进行编写。,3.2类,1类的声明类的声明由修饰符、关键字class、类名、继承父类、实现接口五部分构成。例如:classStudent/定义类Studentintstu_name;/定义类属性stu_name;,3.2类,(1)继承父类关键字extends表示当前类是已经存在的某个类的子类。Java语言中只允许单一继承。类通常不需要从头生成。他们可以从其他的类派生而来,继承祖先类的可用类成员。即使是从头创建的新类也必须继承Object类。,3.2类,(2)实现接口关键字implements表示当前类实现了某个接口定义的功能或方法。接口是和类相似一种Java程序的基本单元,是Java程序用来实现多重继承的一种特殊机制。,3.2类,(3)修饰符,3.2类,2.类体class通常,Java中把成员变量放在方法前面定义。,3.2类,成员变量在类体中并且在方法之外定义的变量称为成员变量。修饰符变量类型变量名;例如:IntegerstuAge;intage=9;,3.2类,1访问控制权限public、private及protected2静态变量修饰符又被称为类变量,静态变量用关键字static表示。3常量修饰符指在程序中不能被改变的变量,常量用关键字final表示。,3.2类,成员方法1方法定义方法也由两部分组成,即方法头和方法体。()throws,3.2类,(1)方法修饰符方法修饰符控制方法在什么条件下使用以及如何使用,包括public(公有的)、private(私有的)及protected(保护的)。(2)返回值类型返回值类型可以是基本数据类型、应用类型(引用类型)以及void(空类型)。,3.2类,(3)方法名(4)形参列表形参列表是以“,”分开的、参数的数据类型和变量名的列表。(,)(5)throws方法的异常列表定义了可能抛出的各种异常。,3.2类,2方法体方法的功能实现部分,主要由局部变量和语句构成。方法体也可以是空的,即没有任何变量和语句。例如:voidsetName(Stringname)例3-1方法的定义,3.2类,构造方法(1)构造方法的方法名与类名相同。(2)构造方法不允许声明返回值。(3)构造方法的作用是完成对类对象的初始化。(4)构造方法只能通过new运算符调用,不能通过对象或类调用。(5)一个类可以定义多个构造方法。,3.2类,例3-2构造方法的定义构造方法的作用:(1)为每个新建的对象赋初始值,从而保证每一个新建的对象处于合理正常的状态。(2)引入更多的灵活度,使得初始化工作不仅仅包括成员变量的赋值,还可以有更复杂的操作。,3.2类,对象创建1声明对象typeobjectname;例如:Studentxiaolin;,3.3对象,xiaolin,2建立对象并初始化实际上就是将一个类实例化,这是通过new关键字来完成的。例如:newStudent(小林,1001,12);,3.3对象,对象引用被赋值后,将指向一个真正的对象,即对象引用的内存空间中存储这个新建立对象的内存空间的首地址,那么通过对象引用就可以访问这个对象的所有可以访问的成员了。,3.3对象,通过同一个类模板可以声明多个对象引用,也可以建立并初始化多个对象:Studentxiaolin,xiaofei;xiaolin=newStudent(小林,1001,12);xiaofei=newStudent(小飞i,1002,16);Studentxiaoqiang=xiaolin;,3.3对象,例3-3创建对象判断对象a的引用是否存在a!=null或a=null;判断a、b两个对象的引用是否相等a=b;判断a、b两个对象的值是否相等a.equals(b)。,3.3对象,使用对象有两种方式使用对象:一是通过对对象变量的引用来使用对象;objectRenference.variable;二是通过调用对象的方法来使用对象。objectRenference.methodName(paramlist);,3.3对象,例3-4使用对象,3.3对象,姓名:王非学号:10011学院编号:11姓名:黎明学号:10012学院编号:12,释放对象Java中,对象使用的内存空间的释放是自动完成的,不需要在编码时考虑对象的释放问题。Java运行系统具有所谓的“垃圾回收机制”,垃圾回收器(garbagecllectors,GC)在后台运行,定时查看所有对象,识别那些不再被引用的对象(垃圾),给予释放,回收分配给这些对象的内存。,3.3对象,对象引用与对象实体对象引用和对象实体是相互独立的。例3-5通过对象引用遥控对象实体,3.3对象,学生:小明学生:小明学生:小强学生:小强null,为了更好的管理这些类,Java引入了包的概念。包是一种类似于文件夹的一种组织形式,包把各种类组织起来,一方面对类的命名空间进行管理,另一方面作为隐含的访问控制修饰符,是信息隐藏和封装的有力工具。,3.4包,包的概念为了方便管理,通常将需要在一起工作的类放在一个包中。只要包名是惟一的,那么包中的类就有了惟一的类全名。包的引入解决了类名冲突问题。包是一种多层次的组织结构,其成员有子包、类和接口。,3.4包,创建包创建包需要使用关键字package,其一般的格式和语法为:package包名;这条语句必须位于源文件的第一行,并且在同一个源文件中只能编写一条package语句。例如:packagenewpackage;packagesociety.family;例3-7创建包,3.4包,导入包1使用类全名例3-8使用类全名,3.4包,A010010A110111A210212A310313A410414,2导入需要的使用的类利用import关键字,将需要使用的类导入到当前程序中,例3-9导入需要的类,3.4包,3导入整个包包中的所有的类都被加载到当前文件中。例如:importschools.*;所有的Java程序自动导入java.lang包,因此,importjava.lang.*语句可以省略不写。另外编译器在查找需要的类时有特定的查找顺序,先是Java基本类库中的类,后是用户自定义的类。,3.4包,Java有四种类成员的访问控制形式,分别为缺省的(默认的)、公有的、保护的、私有的。类的每个成员都有自己的访问修饰符,但最多只能使用一个访问修饰符,并且访问修饰符必须放在其他修饰符之前。如果类不可访问,则其成员也不可访问,因此讨论类成员的访问控制的前提必须是类是可访问的。,3.5类成员的访问控制权限,1private修饰符private修饰的成员变量和方法仅能在其类的方法中被访问,其他类无法直接访问。【例3-10】私有成员的定义和使用,3.5类成员的访问控制权限,falsexiaoming:1000 xiaoming:1001,2无修饰符如果成员没有指定任何访问修饰符,则表示该成员具有缺省的访问权限,3protected修饰符protected修饰符表示成员的访问权限局限在同一个包的其他类以及其子类(可以属于其他包)中。,3.5类成员的访问控制权限,4public修饰符public修饰符表示类成员公用的。为了使程序具有良好易读的风格,建议最好在编写类代码时用不同的可访问性来组织类成员,并将public成员作为对外公布的接口放在最前面,以便引起关注。,3.5类成员的访问控制权限,类变量被所有的类的所有实例共享的变量称为类变量(classvariable),类变量用修饰符static描述。例3-11类变量的定义,3.6数据共享,122,类变量的访问类变量不依赖于对象。例3-12直接通过类名访问类变量,3.6数据共享,1222,类方法类方法(classm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司聚会赞助活动方案
- 公司现场宣传活动方案
- 公司营地团建活动方案
- 公司清远漂流活动方案
- 公司春茗策划方案
- 公司椅子清仓活动方案
- 公司新生产线策划方案
- 公司新春工会活动方案
- 公司组织云年会活动方案
- 公司端午感恩策划方案
- 人教版(2024)七年级下学期地理期末质量检测试卷(含答案)
- 2025年新能源汽车产业发展考试试卷及答案
- (2025)党校入党积极分子培训结业考试题库与答案
- 2025年中国超薄柔性玻璃(UTG)行业深度分析、投资前景及发展趋势预测报告(智研咨询)
- 交房期间业主维权突发事件应急预案
- 【专题训练】专题04三角形(考题猜想九大题型)(学生版+解析)-2025年七年级数学下学期期末总复习(北师大版)
- 2025年全国护士资格考试试卷及答案
- 难点01:总集篇·十三种简便计算巧算法【十三大考点】-2024年小升初数学典型例题系列(原卷版+解析)
- 2025春季学期国开电大本科《理工英语3》一平台在线形考综合测试(形考任务)试题及答案
- 三一挖机合同协议书
- 越秀地产合作协议书
评论
0/150
提交评论