1. 对象
  面向对象程序设计是将人们认识世界过程中普遍采用的思维方法应用到程序设计中。
  对象是现实世界中存在的事物,它们是有形的,如某个人、某种物品;也可以是无形的,如某项计划、某次商业交易。
  对象是构成现实世界的一个独立单位,人们对世界的认识,是从分析对象的特征入手的。
  对象的特征分为静态特征和动态特征两种。静态的特征指对象的外观、性质、属性等; 动态的特征指对象具有的功能、行为等。
  客观事物是错综复杂的,但人们总是从某一目的出发,运用抽象分析的能力,从众多的特征中抽取具代表性、能反映对象本质的若干特征加以详细研究。
  人们将对象的静态特征抽象为属性,用数据来描述,在 Java 语言中称之为变量;
  人们将对象的动态特征抽象为行为,用一组代码来表示,完成对数据的操作,在 Java语言中称之为方法。
  一个对象由一组属性和一组对属性进行操作的方法构成。
  2. 类
  将具有相同属性及相同行为的一组对象称为类。广义地讲,具有共同性质的事物的集合称为类。
  在面向对象程序设计中,类是一个独立的单位,它有一个类名,其内部包括成员变量, 用于描述对象的属性; 还包括类的成员方法,用于描述对象的行为。
  在 Java 程序设计中,类被认为是一种抽象数据类型,这种数据类型,不但包括数据,还包括方法。
  类是一个抽象的概念,要利用类的方式来解决问题,必须用类创建一个实例化的类对象, 然后通过类对象去访问类的成员变量, 去调用类的成员方法来实现程序的功能。
  一个类可创建多个类对象, 它们具有相同的属性模式, 但可以具有不同的属性值。
  Java 程序为每一个类对象都开辟了内存空间,以便保存各自的属性值。
  面向对象的程序设计有三个主要特征:  封装,  继承,  多态
  封装
  两个含义:
  一是指把对象的属性和行为看成一个密不可分的整体, 将这两者“封装”在一个不可分割的独立单位(即对象)中。
  另一层含义指“信息隐蔽”, 把不需要让外界知道的信息隐藏起来。
  有些对象的属性及行为允许外界用户知道或使用,但不允许更改, 而另一些属性或行为,则不允许外界知晓;
  或只允许使用对象的功能,而尽可能隐蔽对象的功能实现细节。
  封装机制在程序设计中表现为,把描述对象属性的变量及实现对象功能的方法合在一起,定义为一个程序单位,并保证外界不能任意
  更改其内部的属性值, 也不能任意调动其内部的功能方法。
  封装机制的另一个特点是,为封装在一个整体内的变量及方法规定了不同级别的“可见性”或访问权限。
  继承
  首先拥有反映事物一般特性的类,然后在其基础上派生出反映特殊事物的类。
  在 Java 程序设计中,已有的类可以是Java 开发环境所提供的一批基本的程序——类库。
  用户开发的程序类是继承这些已有的类。这样,现在类所描述过的属性及行为, 即已定义的变量和方法,在继承产生的类中完全可以使用。
  被继承的类称为父类或超类,而经继承产生的类称为子类或派生类。
  根据继承机制,派生类继承了超类的所有成员,并相应地增加了自己的一些新的成员。
  若一个子类只允许继承一个父类,称为单继承;若允许继承多个父类,称为多继承。
  目前许多面向对象程序设计语言不支持多继承。而 Java 语言通过接口(interface)的方式来弥补由于Java 不支持多继承而带来的子类
  不能享用多个父类的成员的缺憾。
  多态
  多态是允许程序中出现重名现象。
  Java 语言中含有方法重载与成员覆盖两种形式的多态。
  方法重载: 在一个类中, 允许多个方法使用同一个名字,但方法的参数不同,完成的功能也不同。
  成员覆盖: 子类与父类允许具有相同的变量名称,但数据类型不同。允许具有相同的方法名称,但完成的功能不同。