面向程序设计概述

OOP:面向对象程序设计。
面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。
程序中很多对象来自标准库,还有一些自定义的。是使用自定义,还是外部引入取决于具体项目。
OOP中,不必关系对象的具体实现,只要能满足用户的需求即可。
算法+数据结构=程序
OOP反过来,把数据结构定义放在了第一位,然后再去考虑操作数据。

由状态和行为组成

类-class 是构造对象的模板或者蓝图,说白了就是图纸。图纸可以用于制作真是的产品,由类构造–construst 对象的过程成为创造类的实例–instance。

封装-encapsulation 有时也成为数据隐藏,是与对象有关的一个重要概念。从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象种的数据称为实例域–instance fields,操纵数据的过程成为方法–method。对于每个特定的类的实例–对象 都有一组特定的实例域。这些值的集合就是对象的当前状态–state。无论何时,只要想对象发送一个消息,它的状态就有可能会发生改变。

实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法与对象数据记性交互。封装给予了对象黑盒特征,这是提高重用性和可靠性的关键。

OOP的另一个原则会让用户自定义java类变得轻而易举,这就是类可以通过扩展另一个类来建立。实事上,java中,所有的类都来自神通广大的超类–Object。通过扩展一个类来建立另外一个类的过程被称为继承–inheritance。

对象

类是一个汽车设计图,而对象就是一个一个的汽车,可能会有各种差异。
对象有三个主要特性:
1、对象的行为–behavior:可以对对象施加那些操作。
2、对象的状态–state:当施加状态时,对象如何响应。
3、对象标志–identity:如何辨别具有相同行为与状态的不同对象。

识别类

传统的过程化程序设计,必须从顶部的main函数开始编写程序。在设计面向对象的系统时,没有所有的“顶部”。对于学习OOP的初学者来说常常会感觉无从下手。答案是:首先从设计类开始,然后再往每个类中添加方法。
类如何设计,把那些数据域和方法封装成一个对象,这个根据实际业务需求来划分。

类之间的关系

在类之间,最常见的关系有
1、依赖–uses-a
2、聚合–has-a
3、继承–is-a

依赖–dependence 如果一个类的方法操纵另外一个类的对象,我们就说一个类依赖于另一个类。
应该尽可能地将相互依赖的类减致最少,就是让类之间的耦合度最小。
依赖是现实开发最头痛的事情,尤其面对java杂乱的生态,一个简单调度可能用了几十个jar包,各种版本关系,依赖关系不清楚,要不就是一股脑的全安装上,要不就是寻找各种依赖jar,痛不欲生。

聚合–aggregation,聚合关系意味着类A的对象包含类B的对象。

继承–inheritance,如果类A扩展了类B,类A不但包含从类B继承的方法,还会拥有一些额外的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值