- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- FISHER 调压阀 1190.pdf
- 七年级上 思想品德 世界因生命而精彩.ppt
- 和望变桨故障分析.doc
- 06A0车间物料管理规定.doc
- 单片机关键字集合.pdf
- 高尚--郑州大学材料与工程学院材料工程技术专业分团委学生会工作计划.doc
- 黄执中辩论理论.doc
- 第3章 设计应用文.ppt
- 二年级上学期工作总结.doc
- 第十二、十三章 运动和力、力和机械单元过关训练题.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)