¿¿×Å 51testing ÂÛ̳¹ÜÀíÔ±¡°·çÔÚ´µ¡±Í¬Ö¾ºÍһλ²»ÖªÃûMMµÄÐÁÇÚ¹¤×÷£¬ÎÒµÄ blog ÖÕÓÚÍê³É CNBlogs ºÍ 51testing-blog µÄͬ²½¡£Ç×°®µÄͬ־£¬ÎÒÒªÇëÄãÃdzԷ¹ ^_^
Thinking in Java ¶ÁÊé±Ê¼Ç €€€€ 1.Introducation to Object
ÉÏһƪ /
ÏÂһƪ 2007-06-27 17:43:29
/ ¸öÈË·ÖÀࣺ13.ͬ Java ÓйØ
Thinking in Java
All +
All -
*[#KAID2\0Thinking in Java
- 1.Introducation to Object
- + -
面向对象——抽象
- 1.你可以把要解决的问题中所有的概念性的组件都当做一个对象
- 2.程序是一组相互之间传递消息,告诉对方该干什么的对象。
51TestingÈí¼þ²âÊÔÍøYySX1P%T~eJL
消息,是调用专属于某个对象的方法的请求。
- 3.
- 4.任何对象都是某个类的实例
- 5.所有属于同一个类的对象都可以接受同样的消息
- 所有对象都有 状态、行为 和 标示
- 每个对象都属于某个类,而这些类定义它的特征和行为
- 类描述的是一组有共同特征和行为的对象
- 类实际上也是一种数据类型
- 类,是程序员为解决特定问题而定制的
- 数据类型,是为了表示计算机的存储单元而设计的
- 对象,是 类 的 实例
- 每个对象,都是这个类的一个独立的个体
- + -
面向对象——接口
- 每个对象只能满足某些请求,而对象所能接受的请求,
51TestingÈí¼þ²âÊÔÍø8_[j5p*J-[vFpyL1x
是由其所属的类定义的接口决定的
- 接口只负责决定对象所能接受的请求,而对象对
51TestingÈí¼þ²âÊÔÍø0`1huGX1]v/?k
该请求做出的响应,是由“实现”代码完成的
- 你向对象发送了一个消息(提交了一个请求)
51TestingÈí¼þ²âÊÔÍø+j.x.jq5Z%n
对象会决定如何处置这个消息(执行代码)
- Light lt = new Light()
51TestingÈí¼þ²âÊÔÍø]4Ei M^oj M
lt.on();
- + -
面向对象——服务
- 对象——服务的提供者
51TestingÈí¼þ²âÊÔÍøx2k"n/OJU
软件工程师的任务就是制作一组为解决问题提供最佳服务的对象。
- 在良好的面向对象设计中,一个对象应该只作
51TestingÈí¼þ²âÊÔÍøM
KSx [;C u%Z?
一件事,并且做好一件事,而不是作很多事。
- 良好的面向对象设计应当是高内聚的
- + -
隐藏实现
- 程序员分类
- 对类的内部实现进行隐藏,可以避免类内部的敏感部分被误操作
- 只允许客户程序员通过类定义的接口进行访问,
51TestingÈí¼þ²âÊÔÍø9Da ?&M;ws&yi
可以在不影响客户程序员使用的情况下,修改具体的内部实现
- public ——任何人都可以访问
- private ——只有类的创建者可以访问
- protected ——只有继承类可以访问
- package ——缺省的访问权限
- 同属某个package的类可以访问其他类的缺省访问权限的成员
- 在package外,缺省访问权限的成员被当做 private 成员
- + -
复用实现
- 直接用某个类创建它的对象
- 把类的对象放到一个新的类中——创建一个成员对象
- 合成 composition —— 用多个不同类型的已有的类组合成新的类
- 聚合 aggregation —— 动态合成
- 通常将“合成”成为 has-a 关系 ,例如:轿车有引擎
- 在创建新类时,应当优先考虑使用“合成”
- + -
继承:复用接口
- 基类,超类,父类
- 派生类,继承类,子类
- 基类的变化,会对派生类产生影响
- 基类保存的是所有继承自它的类的共有特征和行为
- 所有可以传给基类的消息也都可以传给其派生类
- 可以通过一个类可以接收什么消息来判断这是一个什么类
- 派生类与基类是属于同一类型的——类的相等性
- extends
- override——在派生类中重新定义基类的方法
- 完全替换(pure substitution)
- is-a 关系
- is-like-a 关系
- + -
多态
- + -
abstract 类
- 编译器会禁止任何人创建abstract 类的对象
- abstract 方法
- abstract 方法只存在于 abstract 类中
- abstract 方法表示由该类派生的所有类都有这个方法,
51TestingÈí¼þ²âÊÔÍø0keP5x)i,X(j
但这个方法的实现不在这里
- 如果某个类继承自abstract 类,那么要么把abstract
51TestingÈí¼þ²âÊÔÍø"a'?a
N^b*S(}
方法实现,要么也是一个abstract 类
- + -
interface 关键字
- 不允许实现任何方法,将接口与实现彻底的分离
- 可以继承多个接口,但是不能继承多个常规类或抽象类
- + -
对象的创建
- 在堆中创建——C++ 的做法
- 在栈中创建——java 的做法
- new 关键字
- 垃圾回收器
- + -
容器(container)
- 单根继承体系
- 上传/下传/参数化类型
- 异常处理
- + -
并发
- persistence
- + -
java与internet
- + -
java为什么会成功
- 系统能更易于表述和理解
- 最大程度上利用类库
- 异常处理
- 适于编写大型系统
- java 还是 C++ ?
51TestingÈí¼þ²âÊÔÍøU$_wWebX"E51TestingÈí¼þ²âÊÔÍø?Q Lx9fWZ51TestingÈí¼þ²âÊÔÍøW.cAy2I
JHR51TestingÈí¼þ²âÊÔÍøD m H
_\ywwLink URL:
http://www.cnblogs.com/jackei/archive/2005/09/02/228328.html
ÊÕ²Ø
¾Ù±¨
TAG: