把本来以为很简单的一个输出日历的习题做了一下,花了很多时间,到现在还遗留两个问题,正在水木清华求助 =_=
1. 关于Calendar类
Calendar类本身是一个抽象类,使用时需要根据具体的日期制度实现。Java内置了对格列高利历(公历)的支持--Gregorian类。
2. Calendar 类设置具体参数的方法以前没碰到过
set(int field, int value)
比如要设置月份为三月,就可以calendar1.set(Calendar.MONTH, Calendar.MARCH);
get(int, int)方法也类似

Chapter 10 Object-Oriented Modeling
1. 软件开发的几个过程
需求描述 -< 系统分析 -< 系统设计 -< 具体实现 -< 测试 -< 安装配置 -< 维护

2. 类与类之间的关系
Association
相关联,如教师、课程与学生三个类之间,学生 听 课,教师 授 课
Aggregation and Composition
包含关系,composition 更为严格,排他性的拥有,如公民与身份证号,aggregation 则无此限制,如学生与所在学校
Inheritance
继承,可以是接口或类
注意它们各自在UML中的符号

3. 类的设计
* 一个有过多内容的类应当被分解为几个小类,如String, StringBuffer, 和 StringTokenizer 类各自处理不同的情况。用户通常把不同的类按各种顺序组合起来使用,因此在设计类时不能限制用户在何时、如何使用这些类,并使用户能够按照任意的顺序和任意的组合设置它们的属性。
一般来讲,最好提供一个无参数的构造方法,并尽可能重载equals和toString方法,在重载equals的同时也要* 重载hashCode方法,使得相同的两个对象有相同的hash code。如果想阻止用户创建类的实例,就把构造函数声明为private,如Math类。
* 使用继承和内置(composition):
inheritance:
public class Cylinder extends Circle {
//...
}
composition:
public class Cylinder {
private Circle circle;
/...
}
一般来说,要用到多态这一特性的话,就要使用继承,否则可以使用内置,因为它相对独立,更机动。
* Convenience class
接口比抽象类更为机动,却不能包含具体方法,可以通过创建一个实现它的方法的抽象类来弥补这一缺陷,使用时哪一个方便就用哪一个。

4. 使用 Sequence Diagrams 和 Statecharts 建模

posts - 403, comments - 310, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2.3 Java notes

Posted on 2007-04-22 20:23 ZelluX 阅读(188) 评论(0)  编辑  收藏 所属分类: OOP
2007-02-03 23:03:26
只有注册用户登录后才能发表评论。


网站导航: