Java专题3案例1.ppt_第1页
Java专题3案例1.ppt_第2页
Java专题3案例1.ppt_第3页
Java专题3案例1.ppt_第4页
Java专题3案例1.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

面向对象,教学目标,理解面向对象的思想理解类类与对象之间的关系构造方法This用法重载,教学任务,打印人员信息演示程序,相关实践知识1,打开JCreator,相关实践知识2,新建People类,学习面向对象程设计,相关实践知识3,创建People类,/*创建一个People类*/publicclassPeople,相关实践知识4,创建数据成员,/*定义People类的成员变量*/publicStringname;publicintage;publicchargender;publicdoubleheight;publicdoubleweight;,相关实践知识6,创建People类的成员函数,/*定义People类的成员函数*/publicvoidsetName(Stringtemp)name=temp;publicStringgetName()returnname;,相关实践知识5,创建构造函数,publicPeople()name=小明;age=26;gender=F;publicPeople(Stringname,intage,chargender,doubleheight,doubleweight)=name;this.age=age;,相关实践知识7,创建main函数,publicstaticvoidmain(Stringargs)/*利用构造函数创建一个类的实例*/第一种实例化变量方式Peoplep1;p1=newPeople();/第二种实化变量方式Peoplep2=newPeople(“can”,28,M,180,75);System.out.println(“p1各变量值:姓名、年龄、性别、身高、体重:+n++n+p1.age+n+p1.gender+n+p1.height+n+p1.weight);,相关实践知识8,重构setName方法publicvoidsetName(Stringname)=name;是数据成员,name是参数。,小结,用指针串一下上面讲的内容。Inti;i=10;它的内存结构。Peoplep1;p1=newPeople();它的内存空间。,总结,理解面向对象的思想理解类类与对象之间的关系构造方法This用法重载,面向对象程序设计,面向对象程序设计历史:汇编语言面向过程面向对象面向过程和面向对象的区别:面向过程:顺序思维(程序执行过程)面向对象的思想:以需要解决的问题中所涉及的各种对实体为主体,面向服务,面向切片,面向对象程序设计,面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步的实现,使用的时候一个一个调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。例如:五子棋游戏。面向过程设计思想:1.开始游戏2.黑棋先走3.绘制画面4.判断输赢5.白子走6.绘制画面7.判断输赢8.。面向对象(OOP)设计思想:分析游戏中的所涉及的对象有哪些:1)黑白双方-下棋行为负责接受用户输入,告知棋盘布局变化2)棋盘-格子和绘制画面行为接受上面的棋子变化,重绘棋盘布局3)规则系统-判定犯规和输赢行为根据棋盘布局判断输赢,面向对象程序设计,OOP认为程序是由对象组成的,这些对象有自己的属性和能够执行的操作。是自己构造对象还是从外界获取对象完全取决于预算和时间的需求。但是,从根本上说,只要对象能够满足要求,就不必关心其功能的具体实现。如:计算机制造商DELL他们不关注电源是那里做的,用什么做的,只关注是不是符合要求。绝大多数的Java程序员不必关心Java给我们提供的类库中的对象的具体实现,只要保证该对象满足需要就可以了。如:inta;a=newint5;Array.sort(a);Array是java提供给我们的一个对象,一个数组对象。它提供了一个排序的功能,我们不需要知道这个功能怎么实现,只需要在想对数组排序时调用就可以了。,什么是对象,对象的定义:在面向对象的方法中,对象是现实世界实体或概念在计算机世界的表示,是具有唯一对象名,固定对外接口的这一组变量/方法的集合,是用来模拟组成或影响现实世界问题的一个或一组因素。对象的特征:状态和行为计算机表示对象的方法:变量与函数(方法),对象之间的互操作,单个对象能够实现的功能是有限的,我们的应用程序往往包含很多的对象,通过这些对象之间的相互作用,程序可以实现更高级、更复杂的功能。A对象为了能让B对象精确完成指定的动作,需要将一些细节信息作为消息参数一起发往对象B。因此一个消息将由三部分构成:消息所属的对象、消息名称和消息所需要的参数。基于消息机制实现对象的互操作主要的好处:因为一个对象的行为是以方法表达的,消息机制可以支持对象间所有可能的互操作。通过消息机制不要求互操作的对象在同一个进程,甚至同一台机器上。因此,这种对象互操作机制也是分布式对象互操作的基础。,什么是类,问题:请描述一个具体的事物对象。状态(属性)有哪些?行为有哪些?请找到与这个具体事物类此的事物。描述一下这几个事物的共同点。小结:现实世界中的所有对象都属于某种对象类型。同一种类型的对象具有共同的特征与行为。对象类型就是同种类型对象的集合和抽象。抽象:面向对象提供了一种选择方式:按需选择。我们称这种选择为抽象。对象类型-”ClassofObject”。取第一个词”class”作为对这种对象类型的简易名字。中文我们叫它“类”。,类的是一种数据类型,使用class定义的类在程序中被称为一种抽象数据类型,它是面向对象程序设计语言的一个基本概念。Inta=1;OneClassone;一个类在定义后,我们可以象使用其他数据类型一样,声明该类的变量并创建该变量所指向的对象,然后通过该变量调用对象的方法实现对对象的操作。对象在创建时,是以所属类为模板的。所以在面向对象程序语言中,类是一种模板或原型,它定义了某种类型所有对象都具备的变量和方法。这个对象的创建过程叫做实例化。,ClassAprivateinta;publicvoidsetA(inta)this.a=a;,面向对象程序设计的特点,封装使用对象的方法将对象的变量与实现保护起来,就成为封装。抽象抽象是具体事物一般化的过程继承继承是指一个类拥有另一个类的所有变量和方法多态多态是以继承为基础来进行讨论的。多态是指程序的多种表现形式:对象变量多态重载(动态绑定),类的使用,类:自定义数据类型类中有什么:数据成员(成员变量)与成员方法定义类:类声明(名称、访问性、特性)类体(数据成员、成员函数),类定义格式,格式:修饰符class类名成员数据(变量);成员方法(函数)修饰符:public/friendly(缺省的),final/abstract,类命名规范,类名:Java中合法的标识符,其编码规定与其他变量相同不能为Java中的关键字不能包含空格或点号“.”可以下划线“_”、字母或“$”符号开头类名应该有意义类名应该是名词类名的首字母应该大写若两个单词,每一单词的首字母都大写,数据成员与成员函数,类中数据成员与成员函数数据成员:可以是Java中任意数据类型,包括简单类型、数组、类和接口成员函数:其中返回类型可以是任意的Java数据类型或类,当一个方法不需要返回值时,返回类型为void。,数据成员,表明对象的状态,也称为实例变量定义的格式:修饰符数据类型变量名;修饰符:final,friendly(缺),private,protected,public,static数据类型:基本数据类型,数组,类,接口变量名:名词并有意义首字母小写,多个单词组合时,第二个单词首字母要大写不能为Java的关键字如不赋值,运行时自动初始化,成员函数,类的方法实现了类所具有的行为,其他对象可以根据类的方法对类进行访问。定义的格式:修饰符返回类型方法名(参数列表)修饰符:除了abstract,synchronized,native外,其他修饰与成员变量的一样。返回类型:基本数据类型,数组,类,接口,void方法名:可以是任何一个有效的标识符动+名字并有意义首字母小写,多个单词组合时,第二个单词首字母要大写不能为Java的关键字参数列表:可以基本数据变量,也可以数组,类,接口变量前者:传值(基本数据类型)后者:传引用(数组、类、接口变量),构造方法,它是一个特殊的成员方法。它是对象被创建时初始对象的方法。即用来构建对象的方法。特征:必须与类名完全一样,没有返回类型如省略,Java会自动调用默认的构造方法,即无参的构造方法一般做初始化成员数据的工作,Java为对象分配内存,初始化实例变量并调用构造方法两种构造方法参数化构造方法默认/隐式构造方法,方法重载,重载:在一个类的定义中有多个名称相同的方法,但每个方法的参数顺序,参数类型,参数个数不同.重载反映了现实世界的变化。例子:override.java,overrideConstruction.java分为:成员方法重载构造方法重载,对象,类与对象的关系人-张三具体与抽象的关系类是对象的模板类是对象的规范先有类还是先有对象?先有类,后有对象。举例:建大楼。,类的实例化,将类实例化就生成对象。通过消息激活指定的某个对象的方法以改变其状态或产生一定的行为,从而完成某一任务Java语句中,使用new操作符来对类进行实例化。格式:typeobjectName=newtype(参数列表)type:对象的类型objectName:对象名new运算符为对象分配内存空间,实例化一个对象,this,当需要在类的实例方法中,指向调用该实例的变量或方法时,可以使用关键字this类的构造方法和实例方法中解决局部变量与实例变量同名的问题在构造方法中使用this调用另一个构造方法,封装(encapsulate),“类”的结构示意图告诉我们“公共API”是指对象的对外接口,其他对象只能通过这些接口向对象发消息,请求对象的服务。而对象的其他成员都无法访问,因此可以把对象看成是一个提供服务的“黑盒子”。只要对象对外的接口不变,就可以保证在增加和减少对象的变量和方法时,使用对象服务的程序不变。这样就可以很好的减少了因为一个模块的改动连锁导致全部程序的改动。这就说“类”是应该具有封装性的。,封装,封装给面向对象设计带来的好处:模块化。这使得对象的代码能够形成独立的整体,单独进行实现和维护,并使对象能够在系统内进行方便的传递。保证对象数据的一致性,并易于维护。对象的私有信息被有效的保护起来,防止外界对对象私有信息的修改,保证了信息的一致性。开发者可以随时改变对象的私有数据和方法,而不会影响到调用对象接口的其他程序。,继承,当对象A是对象B的一个特例时,称对象A继承了对象B。例如:以”山地车”

温馨提示

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

评论

0/150

提交评论