四Java的面向对象编程

上传人:痛*** 文档编号:190273708 上传时间:2023-02-27 格式:PPT 页数:23 大小:775.52KB
收藏 版权申诉 举报 下载
四Java的面向对象编程_第1页
第1页 / 共23页
四Java的面向对象编程_第2页
第2页 / 共23页
四Java的面向对象编程_第3页
第3页 / 共23页
资源描述:

《四Java的面向对象编程》由会员分享,可在线阅读,更多相关《四Java的面向对象编程(23页珍藏版)》请在装配图网上搜索。

1、Java的面向对象编程的面向对象编程面向对象编程概述o 简单的说,面向对象编程(Object Oriented Programming,简称OOP)描述的是对象之间的相互作用。o 面向对象编程与面向过程编程的区别:过程化程序设计先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算。面向过程编程的程序员,习惯于建立数据结构存放数据并定义方法(函数)来操作数据;面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起。对象 对象的状态 对象的行为o 我们可以把现实世界的事物抽象成对象。我们可以把现实世界的事物抽象成对象。o 对象一般都有两个特征:状态(对象一般都有两个特征:状态

2、(state)和)和行为(行为(behavior)。)。o 软件的对象概念是由现实世界对象抽象而软件的对象概念是由现实世界对象抽象而来来。把现实世界对象的状态保存在软件对象的变量中;现实世界对象的行为通过软件对象的方法(函数)来实现。类和对象o把相似的对象划归成一个类。o在软件中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。o类是创建对象的模板,对象是类的实例。面向对象程序设计o 从程序设计的角度看,类是面向对象程序中最基本的程序单元。类实质上定义的是一种数据类型,这种数据类型就是对象类型。所以我们可以使用类名称来声明对象变量。o 声明对象变量之后,还不

3、能使用对象。必须用运算符new创建对象实体之后,才能使用对象。面向对象编程的难点o 掌握面向对象的困难之处在于思路的转换。我们通常习惯于考虑解决问题的方法,我们通常习惯于考虑解决问题的方法,而不是考虑将问题抽象成对象再去解决它而不是考虑将问题抽象成对象再去解决它。一个简单的例子o 编写一个驾驶汽车的方法编写一个驾驶汽车的方法面向过程的程序设计:编写一个方法,void drivecar();面向对象的程序设计:将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来,设计一个类Car,类中有一个方法void drive(),用Car这个类实例化一个具体的对象car,调用:car.drive()。类的

4、构造方法o 构造方法的名字和类名相同,并且没有返回值。o 构造方法主要用于为类的对象定义初始化状态。o 我们不能直接调用构造方法,必须通过new关键字来自动调用,从而创建类的实例。o Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供一个缺省的构造方法,也就是不带参数的构造方法。new关键字的作用o为对象分配内存空间。为对象分配内存空间。o引起对象构造方法的调用。引起对象构造方法的调用。o为对象返回一个引用。为对象返回一个引用。缺省构造方法数值型0booleanfalsechar0对象null方法的重载(overload)特殊变量thiso this变量代表对象本身

5、变量代表对象本身o 当类中有两个同名变量,一个属于类(类的当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用(方法中的局部变量),使用this区分成员区分成员变量和局部变量。变量和局部变量。o 使用使用this简化构造函数的调用。简化构造函数的调用。特殊变量thiso 关于实例方法和实例数据成员的进一步说明关于实例方法和实例数据成员的进一步说明 一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝,尽管在内存中可能有多个对象,而数据成员在类的每个对象所在内存中都存在着一份拷贝。this变量允许相同的

6、实例方法为不同的对象工作。每当调用一个实例方法时,每当调用一个实例方法时,this变量将被变量将被设置成引用该实例方法的特定的类对象。方法的代设置成引用该实例方法的特定的类对象。方法的代码接着会与码接着会与this所代表的对象的特定数据建立关联。所代表的对象的特定数据建立关联。关键字statico 静态方法和静态变量是属于某一个类,而不属于类的对象。o 静态方法和静态变量的引用直接通过类名引用。o 在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。o 可以用类的对象obj去调用静态的方法method(),如:obj.method()。常量的定义o 使用关键字使用关键字fin

7、al定义常量,例如:定义常量,例如:final double PI=3.1415926;o 作为一种约定,在定义常量时,通常采用大作为一种约定,在定义常量时,通常采用大写形式。写形式。o final常量可以在声明的同时赋初值,也可常量可以在声明的同时赋初值,也可以在构造函数中赋初值。以在构造函数中赋初值。o 为了节省内存,我们通常将常量声明为静态为了节省内存,我们通常将常量声明为静态的(的(static)。)。类的继承o 理解继承是理解面向对象程序设计的关键。o 在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。o 在Java中

8、,不允许多继承。方法的覆盖(override)o 在子类中定义一个与父类同名、返回类型、参数类型均相同一个方法,称为方法的覆盖。o 覆盖发生在子类与父类之间。特殊变量supero 特殊变量特殊变量super,提供了对父类的访问。,提供了对父类的访问。o 可以使用可以使用super访问父类被子类隐藏的变量访问父类被子类隐藏的变量或覆盖的方法。或覆盖的方法。o 每个子类构造方法的第一条语句,都是隐含每个子类构造方法的第一条语句,都是隐含地调用地调用super(),如果父类没有这种形式,如果父类没有这种形式的构造函数,那么在编译的时候就会报错。的构造函数,那么在编译的时候就会报错。多态性 o 通过覆

9、盖父类的方法来实现,在运行时根据传递的对象引用,来调用相应的方法。面向对象的程序设计o 问题:求一个长方形的周长和面积。问题:求一个长方形的周长和面积。以面向过程的程序设计方式思考:以面向过程的程序设计方式思考:1、确定长方形周长和面积的算法。2、编写两个方法(函数)分别计算长方形的周长和面积。3、求周长的方法(函数)和求面积的方法(函数)需要两个参数,分别是长方形的长和宽。o 面向过程的程序设计代码:class Rectanglestatic int perimeter(int length,int width)return 2*(length+width);static int area(

10、int length,int width)return length*width;public static void main(String args)System.out.println(perimeter=“+Rectangle.perimeter(5,4);System.out.println(area=“+Rectangle.area(5,4);面向对象的程序设计o 问题:求一个长方形的周长和面积。问题:求一个长方形的周长和面积。以面向对象的程序设计方式思考:以面向对象的程序设计方式思考:1、一个长方形可以看成一个长方形对象。2、一个长方形对象有两个状态(长和宽)和两个行为(求周长和求面积)。3、将所有长方形的共性抽取出来,设计一个长方形类。4、通过长方形对象的行为,就可以求出某个具体的长方形对象的周长和面积。面向对象的程序设计o Demo

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!