Java知识点——面向对象程序设计概述

面向对象程序设计(简称 OOP) 是当今主流的程序设计范型。Java 是完全面向对象的,必须熟悉 OOP 才能够编写 Java 程序

类( class) 是构造对象的模板或蓝图。由类构造(construct) 对象的过程称为创建类的实例 (instance )。对象中的数据称为实例域( instance field ), 操纵数据的过程称为方法( method )
封装是与对象有关的一个重要概念。封装实现将数据和行为组合在一个包中, 并对对象的使用者隐藏了数据的实现方式。实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法与对象数据进行交互。
OOP 可以通过扩展一个类来建立另外一个新的类。事实上, 在 Java 中, 所有的类都源自于 Object类。在扩展一个已有的类时, 这个扩展后的新类具有所扩展的类的全部属性和方法。在新类中,只需提供适用于这个新类的新方法和数据域。通过扩展一个类来建立另外一个类的过程称为继承(inheritance)

对象

要想使用 OOP,—定要清楚对象的三个主要特性:

  • 对象的行为(behavior)—可以对对象施加哪些操作,或可以对对象施加哪些方法?
  • 对象的状态(state )—当施加那些方法时,对象如何响应?
  • 对象标识(identity )—如何辨别具有相同行为与状态的不同对象?

同一个类的所有对象实例由于支持相同的行为而具有家族式的相似性,其行为是用可调用的方法定义的。此外,每个对象都保存着描述当前特征的信息。这就是对象的状态。对象的状态可能会随着时间而发生改变,但这种改变不会是自发的,对象状态的改变必须通过调用方法实现。但是,对象的状态并不能完全描述一个对象。每个对象都有一个唯一的身份( identity )。需要注意,作为一个类的实例, 每个对象的标识永远是不同的,状态常常也存在着差异。

类之间的关系

在类之间, 最常见的关系有

  • 依赖(“ uses-a”)
  • 聚合(“ has-a”)
  • 继承(“ is-a”)

依赖( dependence ), 即“ uses-a” 关系, 是一种最明显的、 最常见的关系。因此, 如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。应该尽可能地将相互依赖的类减至最少。如果类 A 不知道 B 的存在, 它就不会关心 B的任何改变(这意味着 B 的改变不会导致 A 产生任何 bug )。用软件工程的术语来说,就是让类之间的耦合度最小
聚合(aggregation ), 即“ has-a ” 关系, 是一种具体且易于理解的关系。聚合关系意味着类 A 的对象包含类 B 的对象。
继承( inheritance ), 即“ is-a” 关系, 用于表示特殊与一般关系。例如,B类由A类继承而来。在具有特殊性的B类中包含了一些用于优先处理的特殊方法。
很多程序员采用 UML ( Unified Modeling Language , 统一建模语言)绘制类图,用来描述类之间的关系。UML的具体使用可以参考https://blog.youkuaiyun.com/qq_35495763/article/details/80764914

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值