JAVA中类和对象的理解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA中类和对象的理解
Java是面向对象的编程语言,哪么什么是对象?一句话,万物皆对象。只要你想得到,无论是实体,还是一些虚拟的事物,都可以称之为对象。换言之,Java作为面向对象的编程语言,意味着可以把任何形式的内容转化为编程语言进行软件开发。
先说什么是类,什么是对象,这样在进行面向对象编程中,才能有比较完备的面向对象的编程思想。
既然万物皆对象,我们编程,用编程语言来描述对象,不能为浩繁纷杂每一个对象进行相应描述,这就涉及到一个具体到抽象的过程了。其实我们的语言已经做到这一点了。我们平时说道的每一个名词,其实都是对现实世界中的一个个具体的“物体”(或称为“实体(Entity)”)相应的特征和行为抽象出来,并且将各种具有相同特征的“物体”分为一个个的“类(class)”,就是我们为每一类事物起的名字。比如:汽车、食物、狗、人这些词等等。
我们用一个具体的例子来进一步说明“类”和“对象”之间的联系与区别。以汽车为例,只要是汽车,都应该有以下一些“属性”:轮子、引擎、方向盘、刹车等等组件,可以通过一些“方法”来操作汽车,改变汽车的状态,如加速、转向、减速等,这些都是汽车的共性。具体到某辆汽车,它可能有80cm的轮子、40cm的方向盘、A6引擎,它是一个确定的实例。“汽车”这个名词就是“类”,一辆辆真实的汽车就是“汽车”这个类的实例化。
我们每天的生活、工作,无时无刻不在和“对象”打交道----衣服、食物、房子、汽车等。我们仔细想想,就会发现,当我们处理这些对象时,我们不会将这些对象的属性(对象所具有的特点)和操作分开。如我们进出“房间”时,我们不会将“房门”这个属性和“开门”这个操作分开,它们是联系在一起的。那么,面向对象编程思想力图使得程序和现实世界中的具体实体完全一致。这样,可以让程序员乃至非专业人员更好的理解程序。所以Java 语言还是很好阅读的。
类和对象是面向对象编程思想中的核心和基础。类是作为对象的抽象而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为“实例化”。
前面说了,类可以看做是对象的抽象,它是用来描述一组具有相同特征对象的。那么,对象中,最重要的两种特征内容,就是:
1.数据:数据就是描述对象的信息的静态信息了。比如一辆汽车,它的型号,价格,出厂日期等等,都是这个汽车对象的静态信息数据。
2.行为:行为就是这个对象可以完成的动作、操作等,是对象的动态特征。接上个例子,汽车可以启动,行驶,刹车等等,都是这辆汽车的动态特征。
通过这两方面的特征内容,基本上这个对象就可以描述清楚了。
Java中类就是完全模拟了类的特征内容。在Java类的定义规范里面,有两方面内容来对应类中的数据和行为:
1.属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态)
2.方法:对对象的属性进行的操作称为对象的方法(也称为行为/操作)
Java中类的声明语法规范(即如何定义一个标准的Java类)
语法规则:
[< modifiers>] class < class_name>
{
[
[
[
}
中括号[<……>]中的内容,说明是可以省略的。<……>尖括号中的内容,是必须做出定义的。其他的内容即关键字和最基本的符号。比如class,说明定义了一个类,而不是其他的Java语言组件内容。
下面是简单的说明:
class也是Java语言关键字,表明这是一个类的定义。
类中属性和方法的声明定义
类的定义中所包含的数据称为属性,也称为全局变量,这是相对于局部变量来讲的,如示例中的Student类中定义了4个属性----name,sex,grade,age。属性声明的语法规则如下:
[< modifiers>]
其中:
< modifiers>为修饰符,可用的有public,private,protected,final,static等,用于说明该属性的一些性质;
类的定义中还可以包含方法的声明,其语法规则如下:
< modifiers>
{
[< statements>]
}
其中:
< modifiers>为修饰符,可用的有public,private,protected,abstract,static 和final,用于说明方法的属性;