电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

面向对象程序设计

61页
  • 卖家[上传人]:宝路
  • 文档编号:47512076
  • 上传时间:2018-07-02
  • 文档格式:PPT
  • 文档大小:208.02KB
  • / 61 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第4章继承与多态14.1 继承与多态的实现技术继承是指一个类的定义可以基于另外一个已 经存在的类,即子类基于父类,从而实现父 类代码的重用。两个类之间的这种继承关系 可以用UML图形符号表示:2父类与子类相比较,涵盖了更加共性的内容 ,更加具有一般性,而子类所添加的内容更 加具有个性,是一般性之外的特殊内容,因 此,这种类的继承关系充分地反映了类之间 的“一般-特殊”关系。类的继承具有传递性,即子类还可以再派生 子类,最终形成一个类层次结构。在Java语言中,通过定义子类支持继承性。 不仅如此,Java还提供了抽象类和接口,以 便使类层次得到更高级别的抽象。3多态性是面向对象程序设计的又一个核心概 念,它有助于增加软件系统的可扩展性、自 然性和可维护性。所谓多态是指不同的类对 象收到同一个消息可以产生完全不同的响应 效果的现象。利用多态机制,用户可以发送 一个通用的消息给各个类对象,而实现细节 由接收对象自行决定,这样,同一个消息可 能会导致调用不同的方法。 4类层次结构举例54.2 类的继承4.2.1 定义子类子类是通过在定义类时利用关键字extends指出父类实现的,其语法格式为:

      2、Modifier class ClassName extends SuperClassName/ClassBody6在一个公司中,雇员是该公司聘用的工作人员 ,经理是管理公司的一种特殊雇员,这类雇员 不但拥有普通雇员的所有特征外,还可以得到 公司发给的特殊津贴,因此这两个类可以用继 承关系进行描述,雇员类Employee是父类,经 理类Manager是子类。假设Employee类只包含姓 名、所在部门和基本工资三个属性及相关的行 为方法,Manager类在继承Employee类所有内容 的基础上,还需要附加一个描述特殊津贴的属 性及相关的行为方法。 举例1:公司雇员78public class Employee/ 雇员类 private String name;/ 姓名 private double salary;/ 工资 private String department;/ 部门 public Employee() name = “; salary = 0.0; department = “; public Employee(String name, double salary,

      3、String department) this.name = new String(name); this.salary = salary; this.department = new String(department); public void setName(String name) this.name = new String(name); public void setSalary(double salary) this.salary = salary; public void setDepartment(String department) this.department = new String(department); public String getName() return name; public double getSalary() return salary; public String getDeparyment() return department; public String toString() return “name: “ + name + “

      4、nsalary: “ + salary + “ndepartment: “ + department; 9public Manager extends Employee / 经理类 private double special; / 特殊津贴 public Manager() super(); special = 0.0; public Manager(String name, double salary, String department, double special) super(name, salary, department); this.special = special; public void setSpecial(double special) this.special = special; public double getSpecial() return special; public String toString() return super.toString() + “nspecial: “ + special; 10任何一个几何图元都有颜色和原点这两个基

      5、本属性。矩形是一种图元,它还有长(length)、宽(width)两个属性,正方形是一种特殊的矩形,它的特殊性在于长和宽相等。ShapRectangleSquare举例2:几何图元处理11两个属性:一个是颜色Color类;另一个是原点,使用类库中的Point类。Shape类12public class Color /Color类定义 private int red; / 红色private int green; / 绿色private int blue; / 蓝色public Color()red=0;green=0;blue=0; /构造方法 public Color(int red,int green,int blue) /构造方法 if (red255) this.red=0; else this.red=red; if (green255) this.green=0; else this.green=green; if (blue255) this.blue=0; else this.blue=blue; 13public void setColor(int red,int g

      6、reen,int blue) /设置颜色 if (red255) this.red=0;else this.red=red;if (green255) this.green=0;else this.green=green;if (blue255) this.blue=0;else this.blue=blue; public int getRed()return red; /获取红色 public int getGreen()return green; /获取绿色 public int getBlue()return blue; /获取蓝色 public String toString() /将颜色信息转换成字符串描述形式 return “Red: “+red+“ ,Green: “+green“+“ ,Blue: “+blue; 14Shape 类的定义 15public class Shape / Shape类定义 private Color color; / 颜色属性private Point origin; /原点属性public Shape() / 构造方法color=new

      7、 Color();origin=new Point();public Shape(Color c, Point o) /构造方法 color=c; origin=o; public void setShape(Color c,Point o) / 设置几何图形的颜色和原点 color=c; origin=o; public Color getColor()return color; / 获取颜色public Point getOrigin()return origin; / 获取原点public String toString() / 将几何图形的信息转换成字符串描述形式 return color.toString()+“n“+origin.toString(); 16Rectangle类的UML类图描述17public class Rectangle extends Shape /Rectangle类定义 private int length; /长private int width; /宽public Rectangle() /构造方法 super(); /调用父类的构造方法len

      8、gth=0;width=0;public Rectangle(Color c,Point o,int l,int w) /构造方法super(c,o);length=l;width=w;public int getLength()return length; /获取长度public int getWidth()return width; /获取宽度public void setLW(int l,int w)length=l;width=w; /设置长、宽 18Square类不需要增加新的成员变量,只重新定义一些适用于正方形的成员方法或更改一些成员方法的接口形式以便更加适用于正方形即可。Square类19public class Square extends Rectangle / Square类定义public Square() super();public Square(Color c,Point o,int e) super(c,o,e,e); public int getEdge() return getLength(); /获取边长public void setEdge(int

      9、 e) setLW(e,e); /设置边长20在Java语言中,子类将继承父类的成员,但子类对象对父类成员的可访问性却由访问属性控制。如果子类与父类在同一个包中,子类可以直接访问父类具有public、proteced和默认访问属性的成员。如果子类和父类不在同一个包中,子类只能够直接访问父类具有public、proteced访问属性的成员,而具有private和默认访问属性的成员需要通过具有public或protected的成员方法实现访问目的。 21在同一个包中子类访问父类成员的规则22在不同包中子类访问父类成员的规则23在Java语言中,子类不负责调用父类中带参数的构造 方法。若要在创建子类对象时希望对从父类继承的成 员变量初始化,就要在子类的构造方法中利用 super()调用父类的构造方法,并且必须将它作为子 类构造方法中的第一条语句。如果第一条语句不是调用父类构造方法的语句,系统 将自动地插入一条调用父类默认构造方法的语句。由 于默认的构造方法不带参数,所以,如果父类定义了 带参数的构造方法,而没有定义不带参数的构造方法 ,将会出现编译错误。 4.2.2 子类的构造方法24public cla

      《面向对象程序设计》由会员宝路分享,可在线阅读,更多相关《面向对象程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.