第3讲 教学课件-面向对象程序设计.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象的基本概念 对象(Object)是一个应用系统中用来描述客观事物的实 体,是具有特定属性(数据)和行为(方法)的基本运行单 位,是类的一个特定状态下的实例。 类(Class)是Java代码的基本组织模块,是用以描述一组 具有共同属性和行为的对象的基本原型,是对这组对象 的概括、归纳与抽象表达,它定义了本类对象所应拥有 的状态属性集及操作这组属性的行为方法集。 面向对象的基本概念(续1) 接口(Interface)是一种只包含常量与抽象方法的特殊 的类,是Java语言用以实现类间多重继承功能的唯一手 段。接口定义了一组特定功能的对外接口与规范,而并 不真正实现这种功能,功能的实现留待给实现这一接口 的各个类来完成 类与对象的关系 类与对象之间的关系,类似于数据类型与变量之间的关系;一个类可以生成无数个不同的对象,每个对象属性值不同,其状态也不同。 类与对象的关系示例 计算机模型与计算机实体之间的关系: 面向对象编程(OOP) 从问题域客观存在的事物出发,将这些现实世界的物理实体抽象成概念世界的抽象数据类,再进一步将这种抽象数据类转换为计算机世界的类(Class);类刻画出实体所具有的状态信息与所能发挥的功能信息,是创建对象时所遵循的模板(Template)。对类进行实例化,就生成一个个的对象,对象对应于各个具体事物,是程序运行过程中实际发挥作用的类的独立内存映像。借助于类与对象这两个面向对象程序中最基本的要素,按照尽可能符合人类自然思维的方式,来构造软件系统,这就是所谓的面向对象程序设计(OOP) OOP的逻辑过程 面向对象设计分析的完整过程如图所示: 面向对象的重要特征 抽象 抽象(Abstraction):抽象是面向对象编程的起点,也是其最本质的特征之一。抽象的广义概念是这样定义的:从研究对象中提取与当前目标主题关系最密切的主要方面,而忽略掉与目标无关的那些方面或关系不大的细枝末节,从而更充分地注意与当前目标有关的方面,更明确地突出主题,这就是抽象 抽象示例 下图阐述了如何由自然界众多的动物实体出发,经过抽象的处理过程,最终得到动物这一概念 封装 封装(Encapsulation):封装也可称为信息隐藏(Information Hiding), 是通过对象的方法来访问与改变对象属性的一种机制。封装是面向对象的一个重要原则,其实现的核心是将类的属性与相关的操作捆绑起来,包装成不可分割的、独立的对象实体,将内部的数据与实现细节尽可能隐蔽起来,使外部用户不能直接操纵对象的内部信息,只能通过对象对外提供的施加有一定限制的访问接口来使用对象 封装示例 下图形象地说明了一个类的封装原理。类对数据与行为的封装是借助于不同级别的访问修饰符来达到控制目的的 继承 继承(Inheritance):继承是指从已有的类中可以派生出若干个新类,已有类称为基类或父类,新类称为派生类或子类;子类将自动地获得基类的属性与方法,从而不需再重复定义这些属性与方法;当然子类还可以修改父类的方法或增加新的方法,从而使自己更适合特殊的需要。类之间的继承关系是现实世界中遗传关系的直接模拟 多态性 多态性(Polymorphism):是指允许不同类的对象对同一消息作出各自的响应,即以统一的风格处理已存在的数据及相关的操作。多态性语言具有灵活、抽象、行为共享、代码共享的优势,较好地解决了应用程序中方法同名的问题 OOP的优越性 从面向过程到面向对象是程序设计技术的一个飞跃。人们之所以要采用面向对象的程序设计技术,其目的在于: OOP的优越性(续) 提高程序的可靠性与可维护性 提高程序的可扩展性 增强程序的可控制性 成员方法 如果方法有返回值类型,则方法体中必须有return语句.如果想让方法执行后得到值a,即返回值为a,那么在方法中要使用return a语句。 return有“返还”之意,它把表达式的值返回到调用之处。例如: public class Class3{ double f(int x){ return 2.5+x; } public static void main(String[] args){ Class3 aaa=new Class3(); double y=aaa.f(3); System.out.println(y); System.out.println(aaa.f(2)); } } 构造方法 EmpInfo.java public class EmpInfo { String name; // 雇员的姓名 String designation; // 雇员的职务 St

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档