10.简单说说类和对象

前面说了很多遍Java是面向对象的编程语言,在我们的第一个Java编程范例中,也提到了class这个关键字,涉及到了类的概念。那么在开始正式进行Java编程语法之前,先简单说说什么是类,什么是对象,这样在进行面向对象编程中,才能有比较完备的面向对象的编程思想。

 

根据以前培训的印象来说,如果以前有编程的学习过程,但是学习的是其他的非面向对象编程语言,或者即使学习的是面向对象编程语言,但是没有形成面向对象编程思想,这里转换成面向对象编程的思想是很困难的,有时候甚至还不如直接没有任何具体编程语言基础来得快。

 

首先说什么是对象。没有什么神秘的,一句话,万物皆对象。只要你想得到,无论是实体,还是一些虚拟的事物,都可以称之为对象。换言之,Java作为面向对象的编程语言,意味着可以把任何形式的内容转化为编程语言进行软件开发。

 

我们每天的生活、工作,无时无刻不在和“对象”打交道----衣服、食物、房子、汽车等。我们仔细想想,就会发现,当我们处理这些对象时,我们不会将这些对象的属性(对象所具有的特点)和操作分开。如我们进出“房间”时,我们不会将“房门”这个属性和“开门”这个操作分开,它们是联系在一起的。那么,面向对象编程思想力图使得程序和现实世界中的具体实体完全一致。这样,可以让程序员乃至非专业人员更好的理解程序。所以Java语言还是很好阅读的。

 

但是既然万物皆对象,我们编程,用编程语言来描述对象,不能为浩繁纷杂每一个对象进行相应描述,这就涉及到一个具体到抽象的过程了。其实我们的语言已经做到这一点了。我们平时说道的每一个名词,其实都是对现实世界中的一个个具体的“物体”(或称为“实体(Entity)”)相应的特征和行为抽象出来,并且将各种具有相同特征的“物体”分为一个个的“类(class)”,就是我们为每一类事物起的名字。比如:汽车、食物、狗、人这些词等等。

 

然后就是一个从抽象到具体的过程了。那我们分析抽象出的名词概念(就是类了)来描述一个个具体的对象,或者说类就是一个规范、蓝本,来对一类对象进行分析,归类和识别。

 

前面说的从具体到抽象的过程,很像给这些纷杂的对象进行归类分组,划出一个个种类。没错,其实,类这个概念就是分类的意思。

 

总结一下,“类”(Class)相对于现实世界中的“实体种类”(Entity Category),如汽车、人类、房子等,它是现实生活中某类实体的抽象。而对象(Object),或者实体(Instance),指的是这些种类中的一个个具体存在,如Benz-600,Santana-2000等具体的汽车,或者张三、李四等具体的个人。

 

类和对象是面向对象编程思想中的核心和基础。类是作为对象的蓝图而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为“实例化”。


我们用一个具体的例子来进一步说明“类”和“对象”之间的联系与区别。以汽车为例,只要是汽车,都应该有以下一些特性:轮子、引擎、方向盘、刹车等等组件,可以通过这些组件来操作汽车,改变汽车的状态,如加速、转向、减速等,这些都是汽车的共性。具体到某辆汽车,它可能有80cm的轮子、40cm的方向盘、A6引擎,它是一个确定的实例。使用“汽车类”这个蓝图,就可以生产出一辆辆的汽车“实例”。这和盖房子一样,根据一张图纸,可以盖出任意数量的房子,而这些房子都有一样的特征。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值