摘自《其实你应该这样学Java》
10.1 面向对象
面向对象的开发方法,是将客观世界看作由一个个对象组成,每个对象都有自身的特点规律(属性、行为)、同时可以通过外部接口同外部联系。所有相同类型的对象抽象出一个高层的概念——类,由类生成具体的一个个对象。
例子:“人”,就是一个抽象的概念。“人”不是具体指哪个人,而是所有人的抽象,具有四肢、面貌等属性,以及吃饭、睡觉、思考等动作行为。“人”有自己的身体、思想等内部规律,也有眼、口、手等跟外界打交道的接口。由“人”可以具体到“张三”、“李四”等,他们就有同样的属性和行为,只是属性和行为的值不同而已。通过眼、口、手的接口,他们可以互相联系,传递消息。
面向对象有四大特点:抽象、封装、继承、多态。
抽象是指同类事物共有的属性和方法。通过抽象,可以把不重要的细节忽略,只关注核心性质。
例如:“狗”没有身高、毛色等具体值,只是一个概念,由此概念可以派生出多种多样的狗的类型。这就是抽象的作用。
封装是一种很好的模块化方法。封装就是把事物本身的属性和方法包含在一起,形成一个独立的模块。这样,所建立的模块如有问题,就只用修改这一个模块,而不用修改整个运行环境。
例如:发电机可以独立存在,有其特有的属性和方法。我们只跟发电机有很少的交互接口:注入燃料,输出电能。如果发电机出故障,可以更换发电机,而不用更改所有使用发电机的设备。
继承是由已有的抽象事物创建新的抽象事物的过程。通过继承,我们不用再描述“狮子狗”的种种特性,而是只要说明它是继承自“狗”的概念,并在此概念上描述所增加的部分新的特性,就可以把“狮子狗”描述清楚。通过层层抽象,将各种事物都能尽量简单而精确地描述清楚。
多态是指同一名称动作,在不同情况下有不同行为的现象。好处是可以将动作也形成抽象的含义,使用户只关心用什么动作,而不用关心是如何实现的。不懂
10.2 类
10.2.1 类就是具有相同属性和方法的事物的集合的抽象。类不是实体,不能直接运行。但可由类生成实体(对象),这个实体就可以在系统中运行了。
10.2.2 类的定义 类修饰符 class 类名
{
//类体
}
类体一般由成员变量和成员方法组成。
10.2.3 成员变量是在类中定义的变量。注:成员变量不是在成员方法中定义的变量。
1 public class Example1001 2 { 3 public int a; //成员变量 4 public static void main(String[] args) 5 { 6 int b; //局部变量 7 } 8 }
只要定义了成员变量,它就可以在类内使用,无论在成员方法内部还是外部。而局部变量只能在所在的小模块内使用。
成员变量定义后就会有初始值:int——0,double——0.0,boolean——false
10.2.4 成员方法
成员修饰符 返回量类型 成员方法名(参数列表)
{
成员方法体
}
方法体内定义的变量就是局部变量
10.2.5 内部类——Java支持在类中再生成类,这种在类中创建的类称为内部类。相应地,在外面的类称为外部类。
内部类的定义形式如同一般的类,使用时需要注明所在的外部类的类名。