A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Synaric 中级黑马   /  2015-9-27 15:30  /  583 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一边选节翻译Core Java一边加入自己的理解。

类与对象
    类与对象的关系就像是模子和饼干的关系。所有对象是特定类的实例,一类对象具有相同的行为,这种行为称之为方法。在使用对象的时候,要清楚:
       对象的行为:对象可以有怎样行为?怎样的行为可以影响到对象?
        对象的状态:调用方法的时候,对象作何反应?
        对象的身份:某个对象与其他对象有相同的行为和状态,为什么这个对象是独一无二的?
    以上所列举的对象的要素可以相互影响。比如,对象的状态可以影响对象的行为,就像同一个人在清醒和醉酒状态下做的事是不一样的。
    那么,如何从复杂的系统中抽离出类呢?最简单的是,用自然语言描述系统,试试看能不能找到一些名词和动词。例如在一个公交系统中,马路、车、红绿灯就是名词,而行使、亮灯等就是动词,将名词和动词替换成相应的类和方法,就是抽象过程。当然这种方法不是万能而且颇有缺陷,但有助于思考。

类与类的关系
    最常见的类与类的关系分为:
        dependence, use-a
        aggregation, has-a
        inheritance, is-a
    常翻译成依赖、聚合、继承。
    如果一个类的方法中必须另一个类作为参考,那么成为依赖。
    聚合是较难理解的,容易和合成(Composition)混淆。合成才是严格的has-a关系,就像人有头、身躯、四肢。如果人的生命结束,人身上任何一个部位都会随着结束生命周期。电脑不一样。电脑有CPU,但是很难说,电脑坏了一定是CPU坏了;另外,电脑组装的时候,CPU自身早就在Intel的工厂组装好送到电脑装配厂了。所以,区别合成和聚合,主要是:类之间的生命周期是否紧密关联;一个类是否由另一个类初始化。

3 个回复

倒序浏览
还是不好理解怎么办
回复 使用道具 举报
学习了。
回复 使用道具 举报
好东西,学到了~!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马