Java基础之类&对象&类之间的关系

1 类

由类构造(construct)对象的过程称为创建类的实例(instance)。

封装(encapsulation,有时称为数据隐藏)与对象有关。从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域(instance field),操纵数据的过程称为方法(method)。对于每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前状态(state)。无论何时,只要向对象发送一个消息,它的状态就有可能发生改变。
实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法与对象数据进行交互。封装给对象赋予了“黑盒”特征,这是提高重用性和可靠性的关键。这意味着一个类可以全面地改变存储数据的方式,只要仍旧使用同样的方法操作数据,其他对象就不会知道或介意所发生的变化。
在扩展一个已有的类时,这个扩展后的新类具有所扩展的类的全部属性和方法。在新类中,只需提供适用于这个新类的新方法和数据域就可以了。通过扩展一个类来建立另外一个类的过程称为继承

2 对象
OOP的三个主要特性:行为,状态,标识。

  • 同一个类的所有对象实例,由于支持相同的行为而具有家族式的相似性。对象的行为是用可调用的方法定义的。

  • 此外,每个对象都保存着描述当前特征的信息。这就是对象的状态。对象的状态可能会随着时间而发生改变,但这种改变不会是自发的。对象状态的改变必须通过调用方法实现(如果不经过方法调用就可以改变对象状态,只能说明封装性遭到了破坏)。但是,对象的状态并不能完全描述一个对象。

  • 每个对象都有一个唯一的身份(identity)。例如,在一个订单处理系统中,任何两个订单都存在着不同之处,即使所订购的货物完全相同也是如此。需要注意,作为一个类的实例,每个对象的标识永远是不同的,状态常常也存在着差异。对象的这些关键特性在彼此之间相互影响着。作为一个类的实例,每个对象的标识永远是不同的,状态常常也存在着差异。

3 识别方法

**首先从设计类开始,然后再往每个类中添加方法。**识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词。“找名词与动词”原则只是一种经验,在创建类的时候,哪些名词和动词是重要的完全取决于个人的开发经验。

4 类之间的关系

  • 依赖(dependence),即“uses-a”关系,是一种最明显的、最常见的关系。一个类的方法依赖于另一个类对象,就说一个类依赖于另一个类。我们应该尽量减少这种依赖关系,从软件工程的角度来说就是让类之间的耦合度变小。

  • 聚合(aggregation),即“has-a”关系,是一种具体且易于理解的关系。聚合意味着一个类的对象包含着另外一个类的对象。

  • 表达类关系的UML标识符

  • 继承(inheritance),即“is-a”关系,是一种用于表示特殊与一般关系的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值