理解面向对象

java语言是纯粹的面向对象的语言。


java语言完全以对象为中心,java程序的最小程序单位是类,整个java程序由一个一个的类组成。


面向对象的方式实际上由OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三个部分有机组成。
其中OOA和OOD的结构需要使用一种方式来记录,目前业界统一采用UML(统一建模语言)来描述并记录OOA和OOD的结果。


面向对象的三种基本特征:
封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。
其中,继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法;
封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能;
多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象在运行的时候可能
表现出不同的行为特征。
除此以外,抽象也是面向对象的重要组成部分。抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前
目标有关的方面,抽象并不打算了解全部问题,而只是考虑部分问题。
Tips:虽然抽象是面向对象的重要组成部分,但不是面向对象的特征之一,因为所有的编程语言都需要抽象。


面向对象还支持以下几个功能:
1.对象是面向对象方法中最基本的概念,它的基本特点有:标识唯一性、分类性、多态性、封装性、模块独立性好。
2.类是具有共同属性、共同方法的对象的集合。类是对象的抽象;对象则是类的实例。而类是整个软件系统最小的程序
单元,类的封装性将各种信息细节隐藏起来,并通过公用方法来暴露该类对外所提供的功能,从而提高了类的内聚性,
降低了对象之间的耦合性。
3.对象间的这种相互合作需要一个机制协助进行,这样的机制成为“消息”,消息是一个实例与另外一个实例之间的传递信息。
4.在面向对象方法中,类之间共享属性和操作的机制成为继承。已有的类可当作基类来引用,则新类相应的可当作派生类
来引用。继承具有传递性,可分为单继承(一个继承只允许有一个直接父类,即类等级为树形结构)与多继承(一个类
允许有多个直接父类)。
注意:由于多继承可能引起继承结构的混乱,而且会大大降低程序的可理解性,所以Java不再支持多继承。

在Java语言中,除了8个基本数据类型之外,一切都是对象。
Java通过为对象定义属性来描述对象的状态;对象的操作可以改变对象的状态,对象的操作也被成为对象的行为,
Java通过为对象定义方法,来描述对象的行为。
对象实现了数据和操作的结合, 使数据和操作封装于对象的统一体中。


对象是Java程序里的核心,所以Java里的对象具有唯一性,每个对象都有一个标识来引用它,如果某个对象失去了标识,这个对象
将变成垃圾,只能等着系统垃圾回收来回收它。Java语言不允许直接访问对象,而是通过对对象的引用来操作对象。

类和对象:
具有相同或相似性质的一组对象的抽象就是类,类是对一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类
事物的每个个体,因而也被成为实例(instance)。
对象的抽象是类,类的具体化就是抽象,也可以说类的实例是对象。类是用来描述一系列对象,类概述每个对象应包括的
数据,类概述每个对象的行为特征。因此我们可以把类理解成某种概念、定义,它规定了某类对象所共同具有的数据和行
为特征。
Java使用class关键字定义类,Java允许开发者自由定义类,定义类时可使用Field来描述类对象的数据,可使用方法来描述该类
对象的行为特征。
类具有属性,它是对象状态的抽象,用数据结构来描述该类对象的共同数据特征;类具有操作,它是对象行为的抽象,用操作名
和实现该操作的方法来描述该类对象的共同行为。


类之间通常有两种主要的结构关系:
一般——特殊结构:也被成为分类结构,这种分类结构关系就是典型的继承关系,Java语言使用extends关键字来表示这种分类
结构,Java的子类是一种特殊的父类。因此这种一般——特殊的结构关系其实是一个“is a”关系。
整体——部分结构:也被成为组装结构,这种分类关系就是典型的组合关系,Java语言通过在一个类里保存另一个对象的引用
来实现这种组合关系,因此这种整体——部分结构关系其实是一种“has a”关系。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值