Java - Design with inheritance

当我们使用现成的类来建立新类时,较好的方式是首先选择组合,尤其是不能十分确定应该使用哪一种方式时。组合不会强制我们的程序设计进入继承的层级结构中。而且组合更加灵活,因为它可以动态选择类型(因此也就选择了行为);相反,继承在编译时就需要知道确切类型。/** *//** * Title: 用继承进行设...

2008-04-28 14:37:00

阅读数:573

评论数:0

Java - Constructors and Polymorphism

构造器并不具有多态性(它们实际上是static方法,只不过该static声明是隐式的)。但仍需要理解构造器怎样通过多态在复杂的层次结构中运作。基类构造器总是在导出类的构造过程中被调用,而且按照继承层次逐层链接,以使每个基类的构造器都能得到调用。这样做是有意义的,因为构造器具有一项特殊任务:检查对象...

2008-04-28 09:52:00

阅读数:637

评论数:0

Java - interface02

群组常量接口中的字段自动是public的,同时也自动是static和final的,所以接口就成为了一种很便捷的用来创建常量组的工具(Java中标识有static final时,使用大写字母的风格,并在一个标识符中用下划线来分割多个单词)。/** *//** * Title: About const...

2008-04-27 15:41:00

阅读数:568

评论数:0

Java - interface01

interface关键字使abstract的概念向前迈进了一步。abstract允许人们在类中创建一个或多个没有具体实现的方法;interface则产生一个完全抽象的类,它的所有方法都没有具体实现(全部都只是声明)。你可以将interface看作“纯粹的”abstract class。它允许类的创...

2008-04-26 21:52:00

阅读数:708

评论数:0

Java-Abstract classes and methods

在所有“乐器”的例子中,Instrument类的目的是为它的所有导出类创建一个通用接口。建立通用接口的唯一理由:不同的子类可以用不同的方式表示此接口。通用接口建立起一种基本形式,以此表示所有导出类的共同部分。当希望通过通用接口操纵一系列类时,就需创建一个抽象类。与基类所声明的特征签名相符(重载不相...

2008-04-20 20:56:00

阅读数:939

评论数:1

Java-polymorphism-02

提出问题:上例tune()方法接收一个Instrument引用。那么编译器怎样才能知道这个Instrument引用指向的是Wind对象,而不是Stringed对象或Brass对象呢?回答问题:编译器无法得知,是“绑定”机制赋予的力量。方法调用绑定将一个方法调用和一个方法主体关联起来被称作“绑定”。...

2008-04-20 17:13:00

阅读数:833

评论数:0

Java-polymorphism-01

面向对象的三种基本特征:数据抽象、继承和多态。数据抽象即抽象数据类型(abstract data type, ADT),这其中包含三层含义:封装、信息/实现隐藏和状态保持(参加blog:Java-面向对象含义)。多态通过分离“做什么”和“怎么做”(可以有多种方法实现“怎么做”,这也是之所以称为多态...

2008-04-20 17:06:00

阅读数:766

评论数:0

Java-package and import for second perspective

由于大家对package的使用存在太多困惑,我在这里将自己对于package的使用的领悟进行一点总结: 1.package中所存放的文件一般就分这三种(1)java程序源文件,扩展名为.java。(2)编译好的java类文件,扩展名为.class。(3)其他文件,其他任何文件,也称为resourc...

2008-04-18 11:59:00

阅读数:642

评论数:0

Java-如何定制自己的工具库: mytools or myutil

掌握了包的知识后,就可以创建自己的工具库来减少或消除重复的程序代码了。例如:给System.out.println()创建一个别名来减少输入负担。package edu.foresthe.mytools;public class P {       public static void rint(...

2008-04-18 11:34:00

阅读数:2131

评论数:3

Java-package and import for first perspective

包:程序库单元,即当使用关键字import来导入整个程序库(library)时那些变为可用的单元。如:import java.util.*;这将把标准Java发布的整个实用程序(utility)库都引入到程序中来。例如,java.util中有一个ArrayList类,你现在既可以用全称java.u...

2008-04-17 08:47:00

阅读数:966

评论数:0

Java-面向对象的含义

以下文字摘录至《UML面向对象设计基础》美Meilir Page-Jones著 1.封装(encapsulation):将相关的概念组成一个单元,其后可以通过一个名称来引用它。重复的代码可以放到程序的某个地方,并可以从主程序的不同地方通过一个名字来激活。eg:代码复用(组合+继承)。面向过程封装:...

2008-04-15 17:51:00

阅读数:1948

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭