本帖最后由 张研老师 于 2015-11-30 08:51 编辑
一、理解面向对象 我们知道c语言是一门面向过程的语言,那么面向对象就是相对面向过程而言的。如把大象装进冰箱,c语言强调的是功能行为:打开冰箱——>把大象装进冰箱——>关闭冰箱。而Java面向对象的思想就是强调具有功能的对象:冰箱打开,冰箱存储,冰箱关闭。感觉上就是过程是你自己亲自在做,而面向对象却是你指挥着对象去做。面向对象和面向过程都是一种思想,就看自己怎么想了,面向对象是基于面向过程的。 面向对象的特点: 1. 是一种符合人们思考习惯的思想 2. 可以将复杂的事情简单化 3.将程序员从执行者转换成了指挥者 4. 完成需求时: a)先要去找具有所需的功能的对象来用。 b) 如果该对象不存在,那么创建一个具有所需功能的对象。 c) 这样简化开发并提高复用。 在Java的开发过程,其实就是不断的创建对象,使用对象,指挥对象做事情。设计的过程,其实就是在管理和维护对象之间的关系。 面向对象的三个特征: 封装(encapsulation) 继承(inheritance) 多态(polymorphism) 面向对象的最高境界:万物皆对象(面试时慎用)。 二、类与对象 1、类与对象的关系 先看一个示例图:
如图我们可以理解为:类就是图纸。汽车就是对象。 类的定义: 使用计算机语言就是不断的描述现实生活中的事物,而java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。 生活当中描述事物无非就是描述事物的属性和行为。如:人的身高,体重等属性;讲话跑步等行为。Java则是用类class来描述对象的属性和行为。定义类其实就是在定义类中的成员(成员变量和成员函数)。 属性:对应类中的成员变量。 行为:对应类中的成员函数。 而对象即是该类事物实实在在存在的个体。 如: [java] view plaincopy 1. class Person 2. { 3. int age; 4. private void speak() 5. { 6. System.out.println("age="+age); 7. } 8. } 以上程序就定义了一个以人为对象的类,其中人这个对象具有年龄的属性,还具有说话的功能。而创建一个对象的格式: Person p = new Person(); 这样就创建了一个人物对象,修改属性和使用功能的格式: p.age=20;//对对象属性的修改 p.speak();//使用对象的功能 2、成员变量和局部变量 之前我们用到的基本都是局部变量,现在我们将会使用成员变量。其实它两都是变量,规范写法上也没啥区别,都是标识符,但是在作用范围和内存中分配不同。 区别: 成员变量: a)成员变量定义在类中,在整个类中都可以被访问。 b) 成员变量随着对象的建立而建立,存在于对象所在的堆内存中。 c) 成员变量有默认初始化值。 局部变量: a) 局部变量只定义在局部范围内,如:函数内,语句内等。 b) 局部变量存在于栈内存中。 c) 作用的范围结束,变量空间会自动释放。 d) 局部变量没有默认初始化值。
|