黑马程序员_java自学学习笔记(三)----面向对象和类
android培训、 java培训、期待与您交流!java作为一种面向对象的程序设计语言,主要还是需要用面向对象的思维来解决问题。所谓面向对象,个人理解,思想更重要,语言其实分别不大。如果有了思想,就算是用面向过程的语言(例如C)写出来的程序也是面向对象的。语言,只是承载思想的工具,具体如何使用,还是要看人。
(一) 面向对象
面向对象,通俗的讲,就是将原先人做的事情,变成人去指挥对象,让对象去做。
例如,人去开门这件事。利用面向过程的思想去做,就是第一步,插入钥匙;第二步,扭动钥匙;第三步,把门拉开;该过程关注门怎么去开,每一步人都要清楚怎么去做,最终目的是要开门,要开门,钥匙孔必须转动才能使锁打开,那么首先就需要插入钥匙。该过程需要人完全了解怎么去开门。这就像我是一个企业的领导,我要清楚的知道如何去做每一件事,一步一步给出指令,让员工去执行。历史上最牛的这种人,是三国时期被累死的蜀相诸葛亮。
于是人们更关心结果而不是如何得到结果。于是人开始换门,换了自动门,人需要的只是给出指令,具体如何操作,由门自己来完成,因为门具有被开的功能。换成是一堵墙,它本身就不具备这种功能,所以累死它也无法打开。该类工作方式,人不需要知道门如何开的,只需要下指令,调用相关的功能,让功能自己去实现去,至于如何实现,不管人的事。作为企业领导,这样就省心多了,因为员工具有办好事的功能,并不需要每件事都有人去一步一步安排好,作指导,领导只需要关注结果即可。这无疑是一个巨大的进步。
(二) 面向对象的特征
1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便充分的注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类被称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改和增加新的方法使之更适合特殊的需要。
3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
注:该总结摘自http://zhidao.baidu.com/question/354867229.html
(三) 类
对象的第一个特征就是抽象。所谓抽象,就是把某种对象中我们所需要的功能总结出来,让它成为该类所能产生的对象的共有的功能,这个总结出来的东西,包括属性和方法,这个就是类。
(1) 类的定义
格式如下:
class (类名) {
修饰符 数据类型 属性名1;
修饰符 数据类型 属性名2;
.
.
.
修饰符 返回值类型 函数名1(参数列表,……){
函数体1;
}
修饰符 返回值类型 函数名1(参数列表,……){
函数体2;
}
.
.
.
}
修饰符最常用的有以下三种:
访问修饰符 | ||
名称 | 说明 | 备注 |
public | 可以被任何类访问 |
|
protected | 可以被同一包中的所有类访问 可以被所有子类访问 | 子类没有在同一包中也可以访问 |
private | 只能够被当前类的方法访问 |
|
缺省 无访问修饰符 | 可以被同一包中的所有类访问 | 如果子类没有在同一个包中,也不能访问 |
(2) 构造函数
有了以上的东西,一个类就可以使用了。在程序中,类就可以类似数据类型的使用,使用“.”操作符,对public的类型的属性和方法使用。下面会分述其他内容:封装、继承、多态。每个内容都足够写成一本书,但是这只是一片博客,为了记录我的学习历程,和以后忘了之后回忆用的,所以,只把相应的内容,总结性的写到下一篇博客中。