类和对象概述以及面向对象编程

类和对象理解
Java是面向对象的编程语言,哪么什么是对象?一句话,万物皆对象。只要你想得到,无论是实体,还是一些虚拟的事物,都可以称之为对象。换言之,Java作为面向对象的编程语言,意味着可以把任何形式的内容转化为编程语言进行软件开发。
先说什么是类,什么是对象,这样在进行面向对象编程中,才能有比较完备的面向对象的编程思想。
既然万物皆对象,我们编程,用编程语言来描述对象,不能为浩繁纷杂每一个对象进行相应描述,这就涉及到一个具体到抽象的过程了。其实我们的语言已经做到这一点了。我们平时说道的每一个名词,其实都是对现实世界中的一个个具体的“物体”(或称为“实体
(Entity)”)相应的特征和行为抽象出来,并且将各种具有相同特征的“物体”分为一个个的“类(class)”,就是我们为每一类事物起的名字。比如:汽车、食物、狗、人这些词等等。

我们用一个具体的例子来进一步说明“类”和“对象”之间的联系与区别。以汽车为例,只要是汽车,都应该有以下一些“属性”:轮子、引擎、方向盘、刹车等等组件,可以通过一些“方法”来操作汽车,改变汽车的状态,加速、转向、减速等,这些都是汽车的共性。具体到某辆汽车,它可能有80cm的轮子、40cm的方向盘、A6引擎,它是一个确定的实例。“汽车”这个名词就是“类”,一辆辆真实的汽车就是“汽车”这个类的实例化。我们每天的生活、工作,无时无刻不在和“对象”打交道---衣服、食物、房子、汽车等。我们仔细想想,就会发现,当我们处理这些对象时,我们不会将这些对象的属性(对象所具有的特点)和操作分开。如我们进出“房间”时,我们不会将“房门”这个属性和“开门”这个操作分开,它们是联系在一起的。那么,面向对象编程思想力图使得程序和现实世界中的具体实体完全一致。这样,可以让程序员乃至非专业人员更好的理解程序。所以Java语言还是很好阅读的。

特征内容
类和对象是面向对象编程思想中的核心和基础。类是作为对象的抽象而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为“实例化”。前面说了,类可以看做是对象的抽象,它是用来描述一组具有相同特征对象的。那么,对象中,最重要的两种特征内容,就是:
1.数据:数据就是描述对象的信息的静态信息了。比如一辆汽车,它的型号,价格,出厂日期等等,都是这个汽车对象的静态信息数据。
2.行为:行为就是这个对象可以完成的动作、操作等,是对象的动态特征。接上个例子,汽车可以启动,行驶,刹车等等,都是这辆汽车的动态特征。
通过这两方面的特征内容,基本上这个对象就可以描述清楚了。
Java中类就是完全模拟了类的特征内容。在Java类的定义规范里面,有两方面内容来对应类中的数据和行为:

Java中类就是完全模拟了类的特征内容。在Java类的定义规范里面,有两方面内容来对应类中的数据和行为:
属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态)
方法:对对象的属性进行的操作称为对象的方法(也称为行为/操作)

面向对象编程


类是一个通用的概念,Java、C++、C#、PHP等很多编程语言中都有类,都可以通过类创建对象。可以将类看做是结构体的升级版,C语言的晚辈们看到了C语言的不足,尝试加以改善,继承了结构体的思想,并进行了升级,让程序员在开发或扩展大中型项目时更加容易。
因为Java、C++等语言都支持类和对象,所以使用这些语言编写程序也被称为面向对象编程,这些语言也被称为面向对象的编程语言。C语言因为不支持类和对象的概念,被称为面向过程的编程语言。
实际上,面向对象只是面向过程的升级。在C语言中,可以将完成某个功能的重复使用的代码块定义为函数,将具有一类功能的函数声明在一个头文件中,不同类型的函数声明在不同的头文件,以便对函数进行更好的管理,方便编写和调用。在Java中,可以将完成某个功能的代码块定义为方法,将具有相似功能的方法定义在一个类中,也就是定义在一个源文件中(因为一个源文件只能包含一个公共的类),多个源文件可以位于一个文件夹,这个文件夹有特定的称呼,叫做包。

图1 C语言中项目的组织结构

图2 Java中项目的组织结构

面向对象编程在软件执行效率上绝对没有任何优势,它的主要目的是方便程序员组织和管理代码,快速梳理编程思路,带来编程思想上的革新。

象和类的概念
本节我们重点研究对象和类的概念。
对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

类:类是一个模板,它描述一类对象的行为和状态。
下图中男孩女孩为类,而具体的每个人为该类的对象:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值