本章我将为大家解答JAVA中经常提及的两个词,类与对象,可以将类看作对象的载体,它定义了对象所具有的功能。在程序开发初期人们使用结构化开发语言,但随着软件的规模越来越大,结构化语言的弊端也逐渐暴露出来,开发周期被延长,产品的质量也不尽如人意,结构化语言已经不再适合当前的软件开发。这时人们将另一种开发思想引入程序中,即面向对象的开发思想。面向对象思想是人类最自然的一种思考方式,它将所有预处理的问题抽象为对象,同时了解这些对象具有哪些相应的属性以及展示这些对象的行为,以解决这些对象面临的实际问题,这样就在程序中引入了面向对象设计的概念,面向对象设计实质上就是对现实世界的对象进行建模操作。
对象
1、 现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分为两个部分,即静态部分与动态部分。静态部分,就是不能动的部分,静态部分被称为“属性”,任何对象都会具备其自身属性,如一栋房子的属性有地基、窗户、门、墙等。这栋房子可以被人居住这便是面向对象。 在计算机的世界中,面向对象程序设计的思想要以对象来思考问题,首先要将现实世界的实体抽象为对象,然后考虑这个对象具备的属性和行为。
类
1、 类就是同一类事物的统称,如果将现实世界中的一个事物抽象成对象,类就是这类对象的统称 类是封装对象的属性和行为的载体,反过来说是具有相同属性和行为的一类实体被称为类。 在JAVA语言中,类中对象的行为是以方法的形式定义的,对象的属性是以成员变量的形式定义的,而类包括对象的属性和方法。
封装
1、面向对象程序设计具有以下特点: 1.封装性; 2.继承性; 3.多态性; 封装是面向对象编程的核心思想。将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。 采用封装的思想保证了类内部数据结构的完整性,应该用类的用户不能轻易地直接操作此数据结构,只能执行类允许公开的数据。这样就避免了外部操作对内部数据的影响,提高了程序的可维护性。
继承
1、 类与类之间同样具有关系,如一个百货公司类与销售员类相联系,类之间的这种关系被称为关联。关联主要描述两个类之间的一般二元关系,例如,一个百货公司类与销售员类就是一个关联,学生类与教师类也是一个关联。两个类之间的关系有很多种,继承是关联中的一种。 当处理一个问题时,可以将一些有用的类保留下来,在遇到同样问题时拿来复用。假如这时需要解决信鸽送信的问题,由于鸽子属于鸟类,具有与鸟类相同的属性和行为,便可以在创建信鸽类时将鸟类拿来复用,并且保留鸟类具有的属性和行为。不过,并不是所有的鸟都有送信的习惯,因此还需要添加一些信鸽具有的独特属性和行为。鸽子类保留了鸟类的属性和行为,这样就节省了定义鸟和鸽子共同具有的属性和行为的时间,这就是继承的基本思想。可见设计软件的代码时使用继承思想可以缩短软件开发的时间,复用那些已经定义好的类可以提高系统性能,减少系统在使用过程中出现错误的几率。 继承性主要利用特定对象之间的共有属性。例如,平行四边形是四边形,正方形、矩形也都是四边形,平行四边形与四边形具有共同特性,就是拥有4个边,可以将平行四边形类看作四边形的延伸,平行四边形复用了四边形的属性和行为,同时添加了平行四边形独有的属性和行为,如平行四边形的对边平行且相等。这里可以将平行四边形类看作是从四边形类中继承的。在JAVA语言中将类似于平行四边形的类称为子类,将类似于四边形的类称为父类或超类。值得注意的是,可以说平行四边型是特殊的四边形,但不能说是四边形是平行四边形,也就是说子类的实例都是父类的实例,但不能说父类的实例是子类的实例。
多态
1、 每个图形都拥有绘制自己的能力,这个能力可以看作是该类具有的行为,如果将子类的对象统一看作是父类的实例对象,这样当绘制图形时,简单地调用父类也就是图形类绘制图形的方法即可绘制任何图形,这就是多态最基本的思想。 多态性允许以同意的风格编写程序,以处理种类繁多的已存在的类及相关类。该统一风格可以由父类来实现,根据父类统一风格的处理,可以实例化子类的对象。由于整个事件的处理都只依赖于父类的方法,所以日后只要维护和调整父类的方法即可,这样就降低了维度的难度,节省了时间。