




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象的程序设计,第3章,2,本章总体纲要,类、域、方法和实例对象继承性多态性包(package)封装性关键字abstract、static、final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想,3,3.1类、域、方法和实例对象,目标1面向对象的概念对象和类的概念面向对象的三大基本特征:封装、继承、多态2类类的定义类的成员:成员变量和成员方法构造方法3对象对象的创建和引用Java的垃圾回收机制,4,思考,开发一个在线考试系统,需要创建哪些类?这些类的成员分别有什么?,5,1面向对象的概念,对象,对象是具有某些特殊属性(数据)和行为方式(方法)的实体。可以是有生命的个体,比如一个人或一只老虎。也可以是无生命的个体,比如一辆汽车或一台计算机。也可以是一个抽象的概念,如天气的变化或鼠标所产生的事件。,两个特征:属性(Property)和行为(Behavior)如:一个人的属性有:姓名、性别、年龄、身高、体重等行为有:唱歌、打球、骑车、学习等。,从众多对象中归纳出“类”,电视机A品牌:飞利浦型号:34寸高清行为:开关选频道调声音颜色,抽象,电视机类品牌:型号:行为:,从类实例化一个对象,电视机B品牌:LG型号:21寸纯平行为:开关选频道调声音颜色,电视机C品牌:东芝型号:44寸液晶行为:开关选频道调声音颜色,类的属性和行为-类的成员,从类实例化一个对象,属性,行为,成员变量(也称成员域),成员方法,类的成员,类,类是具有共同属性和行为的对象的抽象。类可以定义为数据和方法的集合。对象具有特殊属性和行为方式的实体。,类,对象,抽象,实例化,封装的实体=数据+方法,操作或行为,属性或状态,成员方法,成员变量,消息,单一对象的存在并没有多大的作用,只有多个对象相互作用才会完成复杂的行为。对象和对象之间是通过传递消息来完成相互通信的。一个消息由三方面内容组成:1)消息的接收者,即消息的目标对象;2)接收对象采用的方法;3)执行方法所需用的参数(Parameters)。,例如:一辆自行车放在车棚中并没有什么用,当我们人骑上它,并加速时才体现它的作用,其中接收者(自行车),采用的方法(加速),所需的参数(上升到更高的档位)。,面向对象的基本特征,1.封装:将数据成员(DataMember)和属于此数据的操作方法(OperatingMethod),放在同一个实体(Entity)或对象中。2.继承:父类定义(Define)一些通用的属性与行为,其子类继续使用。3.多态:在同一个类中可有许多同名的方法,但其参数数量与数据类型不同,而且操作过程与返回值也可能会不同。,(1)模块化(2)信息隐藏,(1)实现代码复用(2)简化设计过程,解决其他语言中不能重名的问题,面向对象的基本特征:封装定义,面向对象的基本特征:封装举例,“学生对象”的内部数据:个人基本信息(年龄、身高、家庭信息)在校情况(专业,班级,宿舍,任职等)选修课表成绩清单(考试,课程设计,毕业设计成绩),入学/注册修课/考试查询成绩毕业答辩,只能通过接口来操作对象,不能随意修改内部数据,面向对象的基本特征:继承,家电类(父类)数据:功率品牌型号方法:启动,停止,电视机类(子类)数据:功率品牌型号尺寸方法:启动,停止选频道调色彩声音,冰箱类(子类)数据:功率品牌型号容量功能方法:启动,停止调温度,开关门,自动拥有父类的数据,方法,继承,子类继承其父类的所有变量和方法还可以增加自己需要的变量和方法,虚框:该类的对象,类继承的实现,被继承的类称为父类继承父类的类称为子类执行继承时,子类将获得父类的属性,并具有自身特有的属性。,Emoloyee类:namesex,Worker类:categoryressAllowance,Officer类:empClassvehicle,工人类,继承了父类的姓名和性别属性外还包含类别和是否有服装津贴属性,主任类,还包含级别和是否配备交通工具属性,职员类,具有姓名和性别两个属性,多继承:一个类有多个父类,即直接继承多个类,多继承,注:Java类只能有一个父类,面向对象的基本特征:多态,家电类(父类)数据:功率品牌型号方法:启动,停止,电视机类(子类)数据:功率品牌型号尺寸方法:启动,停止选频道调色彩声音,冰箱类(子类)数据:功率品牌型号容量功能方法:启动,停止调温度,开关门,启动电视:显示图像,声音,启动冰箱:开始制冷,继承,多态:相同的消息被送到不同的对象时有不同的实现,继承,18,2类,19,类的定义,类的定义格式如下:类修饰词class类名extends父类名implements接口名称列表类体,extends关键字用于继承类,implement关键字用于实现接口,类的修饰符用于说明类的性质和访问权限,包括public、private、abstract、final。,其中public表示可以被任何其他代码访问,abstract表示抽象类,final表示最终类。,类体部分定义了该类所包括的所有成员变量和成员方法,classAnimalStringname;intage;publicvoideat()System.out.println(Eating);publicvoidmove()System.out.println(Moving);,类的定义举例,Animal的成员变量,Animal的成员方法,21,类的成员,从类实例化一个对象,成员变量(也称成员域),成员方法,22,成员变量,成员变量是类的属性,声明的一般格式为:变量修饰符变量修饰符:public、protected、private、和默认(friendly)。成员变量,实例变量,类变量:静态变量,用static进行修饰,23,成员方法,成员方法定义的类的操作和行为,一般形式为:方法修饰符()方法体成员方法修饰符主要有public、private、protected、final、static、abstract和synchronized七种,前三种的访问权限、说明形式和含义与成员变量一致。与成员变量类似,成员方法也分为实例方法和类方法。如果方法定义中使用了static,则该方法为类方法。publicstaticvoidmain(Stringargs)就是一个典型的类方法,24,类成员的常用修饰符及访问范围,25,思考,开发一个在线考试系统,需要创建哪些类?这些类的成员分别有什么?,26,试题类(Testquestion类)属性:包括试题内容、答案、用户选择的答案等。方法:获取取试题、设置选择的答案、获取选择的答案、设置标准答案、获取标准答案、检查答案正确与否等。,类成员和实例成员,在类的定义中,成员变量和成员方法前面带有static的为类属性和类方法;不带static的为实例属性和实例方法。,类属性和类方法,classAnimalintweight;Stringcolour;staticintcount=0;Animal()+count;System.out.println(ThetotalnumberofAnimalis:+count);publicvoideat()System.out.println(Eating);publicstaticvoidmove()System.out.println(AnimalcanMoving);,成员属性成员方法,publicclassStaticTest1publicstaticvoidmain(Stringargs)System.out.println(ThetotalnumberofAnimalis:+Animal.count);Animal.move();Animala1=newAnimal();Animala2=newAnimal();运行结果为:ThetotalnumberofAnimalis:0AnimalcanMovingThetotalnumberofAnimalis:1ThetotalnumberofAnimalis:2,classAnimalintweight;Stringcolour;staticintcount=0;Animal()+count;System.out.println(ThetotalnumberofAnimalis:+count);publicvoideat()System.out.println(Eating);publicstaticvoidmove()System.out.println(AnimalcanMoving);,与类属性和类方法相比较,实例属性和实例方法必须在实例化变量之后才能使用,将上例中Animal.move()换成Animal.eat(),结果如何?为什么?,实例属性和实例方法,eat()是实例方法,只能由类的对象调用也就是只能a1.eat(),或a2.eat(),31,构造方法,构造方法在创建新的实例对象时起作用构造方法通常用来初始化实例对象,例如:初始化成员域或设置工作环境,构造方法,构造方法名称与类名称相同构造方法没有返回类型其任务是在创建对象时初始化其内部状态若无定义系统默认有一个无参构造方法,构造方法,classPointintx,y;Point()/不带参数的构造方法x=0;y=0;Point(intix,intiy)/带参数的构造方法x=ix;y=iy;voidmove(intnewX,intnewY)x=newX;y=newY;,构造方法没有返回类型,构造方法名与类名相同,构造方法的三个基本特点父类和子类的构造方法有一定关联(参见课本P62),34,默认的构造方法,如果没有显式地定义类的构造方法,则系统会为该类定义一个默认的构造方法。该构造方法不含任何参数。-这个默认的构造方法首先调用其父类的不含任何参数的构造方法,然后初始化新生成的实例的各个成员变量-默认值:基本数值类型:0;boolean:false;引用数据类型:null-最好自己写构造方法一旦在类中定义了构造方法,系统就不会再创建这个默认的不含参数的构造方法。,35,3对象,对象的创建,对象的声明和创建类名对象名;/声明对象名=new类名(参数);/创建(2)对象的使用对象名.成员变量名;对象名.成员方法名(参数列表);(3)对象的销毁自动垃圾回收机制周期性的释放无用的对象。,(1)对象的创建,第一步:进行对象的声明。一般形式为:;例如:Animaldog;第二步:实例化对象,通过运算符new实现一般形式为:=new;例如:dog=newAnimal();以上两步也可合并:=new,38,对象的创建(举例),对象的声明只是创建变量的引用,并不分配内存,要分配实际内存空间,必须new关键字。,39,(2)对象的引用,对象创建之后,通过“”运算符用于访问对象中的成员变量和成员方法。一般形式为:由于类变量和类方法不属于某个具体的对象,因此我们也可以直接使用类型替代对象名访问类变量或类方法。例如:Animal.age=3;Animal.eat();,实例变量成员和实例方法成员只能通过对象来引用例如,Point为类,p为Point的对象,p调用类的方法move格式如下:p.move(30,20);同样,也可以用new生成对象的引用,然后直接调用它的方法,如:newpoint().move(30,20);,(2)对象的引用,(3)对象的销毁,有些面向对象语言保持对所有对象的跟踪,所以需要在对象不再使用的时候将它们从内存中清除。JAVA当对象不再被使用的时候将其清除,这就是所谓的“垃圾回收机制”。JAVA的垃圾收集器:它周期性地自动将不再被引用的对象从内存中清除。两个有关垃圾回收的成员方法:gc()finalize()参见课本P64和P65例,42,思考:,实现考试系统中所需要的试题类(Testquestion类)属性:包括试题内容、答案、用户选择的答案等。方法:获取取试题、设置选择的答案、获取选择的答案、设置标准答案、获取标准答案、检查答案正确与否等。,43,定义Testquestion类,classTestquestionprivateStringquestionText=;/试题内容privateStringstandardKey;/答案privateStringselectedKey;/选择的答案publicStringgetQuestion()returnquestionText;/获取试题publicvoidsetQuestion(Strings)questionText=s;publicStringgetSelectedKey(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 以微粒为核心的科学探究课程教案
- 母爱的味道记母亲的一件小事作文(15篇)
- 一件勇敢的事记叙文5篇
- 农业生产技术推广应用情况表
- 我们的节日欢乐元旦记事作文(9篇)
- 个性化印刷品销售合同
- 农业科技研究与成果转化协议
- 诗歌与散文欣赏:高一语文教学专题
- 技术支持资源表-支持服务体系详细介绍
- 2025年艺术设计专业入学考试试卷解答
- 绿色建筑工程监理实施细则
- 《积极心理学(第3版)》 课件 第11章 宽容
- 陕西省西安市数学中考2024年试题及答案解析
- DB37T 1914-2024 液氨存储与装卸作业安全技术规范
- 国家开放大学本科《理工英语4》一平台机考第二大题词汇与结构总题库
- 国际法(第七版) 课件 第九章 外交和领事关系法
- 2024年哈尔滨铁道职业技术学院单招职业适应性测试题库各版本
- 水表检定记录全册
- DG-TJ08-2411-2023 地下结构隔排水主动抗浮技术标准
- 三期(孕期、产期、哺乳期)员工风险评估
- 多重耐药菌相关知课件
评论
0/150
提交评论