返回列表 发新帖

【Android入坑系列教程】34.面向对象的概念---面向对象

[复制链接]

62

主题

722

回帖

2756

积分

大学生

Rank: 5Rank: 5

金币
2029
好评
12
信誉
100

考神

发表于 2019-3-24 13:01:15 | 显示全部楼层 | 阅读模式  来自 四川
本帖最后由 pansong291 于 2019-3-25 16:17 编辑

上篇:33.数组(二)---Java基础
下篇:35.类与对象(一)---面向对象

注意:如果你的回复只是“感谢分享”、“辛苦了”之类的与教程内容无关的字眼,还请不要回复本帖,谢谢合作!!!
注意:如果你的回复只是“感谢分享”、“辛苦了”之类的与教程内容无关的字眼,还请不要回复本帖,谢谢合作!!!
注意:如果你的回复只是“感谢分享”、“辛苦了”之类的与教程内容无关的字眼,还请不要回复本帖,谢谢合作!!!


面向对象是令大多数人都只可意会,难以言宣的大概念。我下面的讲解主要是冲着帮你
迅速理解面向对象的内涵而来的,不见得非常严谨和完全正确,但我个人认为是合理的,是
我的体会和认识,我也曾经用过同样的方式,让许多人仿佛一下子就明白了什么是面向对象。
什么是面向对象,这是一个相对概念,是相对面向过程而言的。就象要理解什么是幸福,要
先理解什么是痛苦一样的道理,在讲解面向对象之前,我要先简单介绍一下什么是面向过程。

面向过程
在早期出现的编程语言中,如大家都非常熟悉的 C 语言,当我们要用这种语言来定义一
个复杂的数据类型,譬如 Windows 窗口时,可以用结构体(struct)来实现,只要在结构体
中使用那些基本的数据类型来定义窗口的大小,位置,颜色,背景等属性就可以了。如果我
们要对一个 Windows 窗口进行各种操作,如隐藏窗口,移动窗口,最小化窗口等等,我们要
为每个操作都定义一个函数,这些函数与窗口本身的定义没有任何关系,如 HideWindow,
MoveWindow,MinimizeWindow,这些函数都需要接受一个参数,即要操作的窗口。这是一种
谓语与宾语的关系,“隐藏”、“移动”等是谓语,“窗口”是宾语。程序的重心集中在函数(即
谓语)上。

面向对象
在 C++,java 语言中,我们可以将一个窗口当作一个主体(对象)来看,定义窗口时,
除了要指定在面向过程中规定的那些属性,如大小,位置,颜色,背景等外,还要指定该窗
口可能具有的动作,如隐藏,移动,最小化等。我们在定义窗口时,就要定义好对应这些动
作的函数(也叫方法),如 Hide,Move,Minimize,注意体会这些函数名称与上面的名称的
区别,这是作者刻意这么安排的,让读者更好地去对比,从函数名称上就能看出,这些函数
都不再接受代表窗口的参数。这些函数被调用时,都是以某个窗口要隐藏,某个窗口要移动,
某个窗口要最小化的语法格式来使用的。这是一种主语与谓语的关系,程序的重点集中在主
体/对象(主语)上。虽然读者在下面的讲解中能够发现面向对象的知识远不止这一点(刚
才讲的只是面向对象的一个方面,即封装性,用类封装了数据与函数),真正能体现面向对
象的强大优势的地方,是在面向对象的继承与多态性方面,但作者认为,封装性是面向对象
的根源和最根本的属性。
Java 类同其他面向对象的编程语言一样,也支持面向对象(OOP)的三个特征:
    封装 (Encapsulation)
    继承 (Inheritance)
    多态 (Polymorphism)
要想领悟面向对象的思想,不能把学习重点放在术语的死记硬背上,形而上学,而应该
把精力主要放在实践和思考上,通过大量实践去理解和掌握。如果读者到现在还不能完全明
白面向对象是什么,也没关系,学完下面的内容后,再回过头来看吧!

上篇:33.数组(二)---Java基础
下篇:35.类与对象(一)---面向对象
回复

使用道具 举报

118

主题

1159

回帖

3454

积分

禁止发言

金币
7
好评
24
信誉
100
发表于 2019-3-24 15:17:30 来自手机  | 显示全部楼层  来自 浙江
不用谢。。。。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表