- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章java基础.ppt
* 然后在每一个子类中重写draw方法,例如: class Circle extends GraphicObject { void draw() { . . . } } class Rectangle extends GraphicObject { void draw() { . . . } } 4.4 抽象类 4.4.2 抽象方法(续)——一个绘图的例子 * 4.6 类的组合 类的组合 面向对象编程的一个重要思想就是用软件对象来模仿现实世界的对象 现实世界中,大多数对象由更小的对象组成 与现实世界的对象一样,软件中的对象也常常是由更小的对象组成 Java的类中可以有其他类的对象作为成员,这便是类的组合 * 4.6.1 组合的语法 组合的语法很简单,只要把已存在类的对象放到新类中即可 可以使用“has a”语句来描述这种关系 例如,考虑Kitchen类提供烹饪和冷藏食品的功能,很自然的说“my kitchen has a cooker/refrigerator”。所以,可简单的把对象myCooker和myRefrigerator放在类Kitchen中。格式如下 class Cooker{ // 类的语句 } class Refrigerator{ // 类的语句} class Kitchen{ Cooker myCooker; Refrigerator myRefrigerator; } 4.6 类的组合 * 一条线段包含两个端点 public class Point //点类 { private int x, y; //coordinate public Point(int x, int y) { this.x = x; this.y = y;} public int GetX() { return x; } public int GetY() { return y; } } 4.6 类的组合 4.6.1 组合的语法——例4-18 * class Line //线段类 { private Point p1,p2; // 两端点 Line(Point a, Point b) { p1 = new Point(a.GetX(),a.GetY()); p2 = new Point(b.GetX(),b.GetY()); } public double Length() { return Math.sqrt(Math.pow(p2.GetX()-p1.GetX(),2) + Math.pow(p2.GetY()-p1.GetY(),2)); } } 4.6 类的组合 4.6.1 组合的语法——例4-18 * 4.6.2 组合与继承的比较 组合与继承的比较 “包含”关系用组合来表达 如果想利用新类内部一个现有类的特性,而不想使用它的接口,通常应选择组合,我们需在新类里嵌入现有类的private对象 如果想让类用户直接访问新类的组合成分,需要将成员对象的属性变为public “属于”关系用继承来表达 取得一个现成的类,并制作它的一个特殊版本。通常,这意味着我们准备使用一个常规用途的类,并根据特定需求对其进行定制 4.6 类的组合 * car(汽车)对象是一个很好的组合例子,由于汽车的装配是故障分析时需要考虑的一项因素,有助于客户程序员理解如何使用类,而且类创建者的编程复杂程度也会大幅度降低 class Engine { //发动机类 public void start() {} public void rev() {} public void stop() {} } 4.6 类的组合 4.6.1 组合与继承的比较(续)——Car的例子 * class Wheel { //车轮类 public void inflate(int psi) {} } class Window { //车窗类 public void rollup() {} public void rolldown() {} } class Door { //车门类 public Window window = new Window(); public void open() {} public void close() {} } 4.6 类的组合 4.6.1 组合与继承的比较(续)——Car的例子 * public class Car { public Engine engine =
文档评论(0)