面向对象方法(第2讲).ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象方法(第2讲)

一条线段包含两个端点 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; } } 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)); } } class Engine { //发动机类 public void start() {} public void rev() {} public void stop() {} } class Wheel { //车轮类 public void inflate(int psi) {} } class Window { //车窗类 public void rollup() {} public void rolldown() {} } class Door { //车门类 Window window = new Window(); public void open() {} public void close() {} } public class Car { Engine engine = new Engine(); Wheel[] wheel = new Wheel[4]; Door left = new Door(),right = new Door(); public Car() { for(int i = 0; i 4; i++) wheel[i] = new Wheel(); } public static void main(String[] args) { Car car = new Car(); car.left.window.rollup(); } } 需求:某些可重用构件是直接使用类而不是使用其对象实例。 这些类又称工具类(Utilities)。 防止其他程序员的误用。 做法:提供一个私有的缺省构造方法。 这是工具类的典型编程模式。 例子:java.lang.Math public final class Math { private Math() {} ... // 其他类变量或类方法 } 思考,如何禁止创建类的对象实例?? 私有构造方法的另一用法 迫使客户程序员显式地调用一个普通方法返回新建的对象实例,取代原来构造方法的作用。 有两种典型用法,但注意这两种方法均须是静态的(否则,...)。 class Soup { private Soup() {} public static Soup makeSoup() { return new Soup(); } private static Soup ps1 = new Soup(); public static Soup access() { return ps1; } public void f() {} } 单实例模式 Singleton Pattern 每次返回 一个新对象 编译单元(compilation unit) 由三部分组成: package ... (程序包声明) import ... (类型导入声明) 类型声明 (类或接口) 在物理上对应一个.java文件。 6 完整的类声明 top level class,允许声 明多个;但有且仅有一个public, 且与文件同名。 除注释外必须 出现在第一行 完整的类声明 [ClassModifiers] class Identifier [Super] [Interfaces] ClassBody [Super] 继承关系:直接父类(su

文档评论(0)

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

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

1亿VIP精品文档

相关文档