- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch4_6面向对象程序设计
第4章 面向对象编程 4.1 面向对象基本概念 4.2 Java的类与对象 4.3 成员变量与封装 4.4 成员方法 习题 对象 对象的状态 对象的行为 我们可以把现实世界的事物抽象成对象。 对象一般都有两个特征:状态(state)和行为(behavior)。 软件的对象概念是由现实世界对象抽象而来 。把现实世界对象的状态保存在软件对象的变量中;现实世界对象的行为通过软件对象的方法(函数)来实现。 对象的状态 变量(数据) 对象的行为 方法(函数或过程) 在软件中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。 类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。 简单的说,面向对象编程(Object Oriented Programming,简称OOP)描述的是对象之间的相互作用。 面向对象编程与面向过程编程的区别: 过程化程序设计先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算。 面向过程编程的程序员,习惯于建立数据结构存放数据并定义方法(函数)来操作数据;面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起。 面向过程的程序设计 使用逐步求精的处理过程:将完成的任务分解为多个子任务,子任务再分解直到可以直接实现为止(自顶向下); 编写求解简单任务的过程,将其组装为更加复杂的过程,直到完成需要实现的功能为止。(自底向上) 面向对象的程序设计 首先从项目中分离出类,然后再找出这个类需要定义的方法; 在OOP中,每个方法都要与主责执行这个操作的类相关联。 对于较小规模的问题,使用面向过程的程序设计比较合适; 对于规模较大的问题,使用类和方法可以带来两个主要的优势 类提供了一种便于将众多方法聚集在一起的机制; 类的封装机制有助于对其他的类方法隐藏数据表示。 面向对象程序设计 从程序设计的角度看,类是面向对象程序中最基本的程序单元。 类实质上定义的是一种数据类型,这种数据类型就是对象类型 。所以我们可以使用类名称来声明对象变量。 声明对象变量之后,还不能使用对象。必须用运算符new创建对象实体之后,才能使用对象。 对象和类的描述尽管十分相似,但它们还是有区别的。现实世界中,类不能代表它所描述的对象,这是非常清楚的,因为自行车图纸毕竟不是自行车。但在软件业中二者不太容易区分。一方面,由于软件对象都是现实对象或抽象概念的电子模型;另一方面,经常不加区分地将对象和类统称为“对象”。 Java编程就是设计类,可以采用自定义方法或继承方法设计一个类,然后使用它的实例对象完成具体的功能。 面向对象编程的难点 掌握面向对象的困难之处在于思路的转换。 我们通常习惯于考虑解决问题的方法,而不是考虑将问题抽象成对象再去解决它。 面向对象的程序设计 问题:求一个长方形的周长和面积。 以面向过程的程序设计方式思考: 1、确定长方形周长和面积的算法。 2、编写两个方法(函数)分别计算长方形的周长和面积。 3、求周长的方法(函数)和求面积的方法(函数)需要两个参数,分别是长方形的长和宽。 面向过程的程序设计代码: class Rectangle { static int perimeter(int length,int width) { return 2*(length+width); } static int area(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)); } } 面向对象的程序设计 问题:求一个长方形的周长和面积。 以面向对象的程序设计方式思考: 1、一个长方形可以看成一个长方形对象。 2、一个长方形对象有两个状态(长和宽)和两个行为(求周长和求面积)。 3、将所有长方形的共性抽取出来,设计一个长方形类。 4、通过长方形对象的行为,就可以求出某个具体的长方形对象的周长和面积。 class Rectangle { int l,w; int perimeter() { return 2*(l+w); }
文档评论(0)