您的位置:首页 > 职场人生

黑马程序员-Java基础:面向对象

2015-08-11 10:17 405 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

day06:面向对象(上)

一、面向对象概念引入

概念:面向对象是一种基于面向过程的编程思想

解释:从字面上看面向对象的概念是非常抽象的,但如果从现实生活中的例子去理解就会豁然开朗,因为面向对象思想是基于面向过程的,那么在理解面向对象的同时,也需要理解什么是面向过程,下面举个形象的例子来说明:

例1-1:问题:洗衣服

解决方案:

(1).面向过程:

A.准备一盆水和洗衣粉

B.将衣服放入盆中

C.反复搓洗干净

D.拿出晾

(2).面向对象:

A.找到洗衣机

B.衣服放进洗衣机

C.拿出晾干

面向过程思想关注解决问题的具体步骤,即解决这个问题程序员需要做什么;

面向对象思想关注哪些对象能用于解决这个问题,如果有就调用这个对象,没有就按需求创建这个对象。

二、面向对象的思想特点

由上面的示例引出下面3个特点:

- (1).是一种更符合人的思考习惯的思想,思考方式接近自然思维

- (2).把复杂的事情简单化,例如上面洗衣服的例子

- (3).让程序员从程序的执行者变成了指挥者,即指挥对象去完成功能

三、面向对象思想的代码体现

用一个示例来对比面向过程与面向对象代码实现上的区别,以加深对面向对象思想的理解。

需求:把大象装进冰箱

分析1:

面向过程:步骤有哪些?

A.开冰箱门

B.装进大象

C.关冰箱门

代码体现:每一个步骤对应一个方法,依次执行所有方法

class Demo {
public static void main(String[] args) {
open();
in();
close();
}

public static void open() {
System.out.println("打开冰箱门");
}

public static void in() {
System.out.println("装进大象");
}

public static void close() {
System.out.println("关闭冰箱门");
}
}


分析2:

面向对象:在用面向对象思想解决问题时,考虑一下三个问题

A.需要有哪些类?

B.每个类应该具备什么属性和行为?

C.类与类之间的关系是怎样的?

那么对于大象装进冰箱的问题,就可以做如下分析:

A:需要哪些类?

答:大象,冰箱,测试类(Demo)

B:每个类应该具备什么属性和行为?

答:大象:进入行为;冰箱:开门,关门;测试类:main方法

C:类与类之间的关系?

答:在测试类的main方法中使用大象和冰箱的功能

搞清楚以上三点后,代码实现如下:

class 大象 {
public static void in() {
System.out.println("装进大象");
}
}

class 冰箱 {
public static void open() {
System.out.println("打开冰箱门");
}

public static void close() {
System.out.println("关闭冰箱门");
}
}

class Demo {
public static void main(String[] args) {
冰箱调用开门
大象调用进去
冰箱调用关门
}
}


四、面向对象的开发,设计和特征

面向对象的开发:就是不断的创建对象,使用对象,指挥对象做事情。

面向对象的设计:就是管理和维护对象之间的关系

面向对象的特征:封装(encapsulation)、继承(inheritance)、多态(polymorphism)

五、类与对象

1.思考:现实世界中是如何描述一个事物的?

举例:

描述人:姓名,年龄,性别。。会吃饭,会睡觉,会说话。。。

描述动物:名称,体重。。会跑,会跳。。。

描述桌子:体积,材质。。能摆放物品。。。

由上面的例子可以找到描述事物的规律:属性 + 行为

属性:该事物的描述信息

行为:该事物能够做什么

2.类-class

类的概念:一组相关的属性和行为的集合

在Java中我们通过类(class)来对现实中的事物进行映射,即通过类模拟现实事物的属性和行为,这样就得到了现实事物和类的对应关系:

事物——类:

属性——成员变量

行为——成员方法

3.对象

对象的概念: 某个类的具体表现形式,具体存在的个体

例如:学生代表一个类,班长代表学生类的一个对象

类是抽象概念,对象是具体概念。

4.类与对象的关系

用一张图来说明:



类是创建对象的模版,对象是类的实例

5.类的定义及使用

此处用示例代码来演示Java中如何定义和使用类

示例:学生类

定义学生类

学生事物:
属性:姓名,年龄,地址...
行为:学习,吃饭,睡觉...

把事物转换为对应的类:

学生类:
成员变量:姓名,年龄,地址...
成员方法:学习,吃饭,睡觉...

成员变量:定义在类中方法外的变量,用于表示类的属性。
成员方法:定义在类中的方法,用于表示类的行为。

*/
//首先我们应该定义一个类,然后完成类的成员。
class Student {
//定义变量
//姓名
String name;
//年龄
int age;
//地址
String address;

//定义方法
//学习的方法
public void study() {
System.out.println("学生爱学习");
}

//吃饭的方法
public void eat() {
System.out.println("学习饿了,要吃饭");
}

//睡觉的方法
public void sleep() {
System.out.println("学习累了,要睡觉");
}
}


使用学生类:

步骤:

1.创建对象:类名 对象名 = new 类名();

2.调用成员:

成员变量:对象名.变量名

成员方法:对象名.方法名

//这是学生测试类
class StudentDemo {
public static void main(String[] args) {
//类名 对象名 = new 类名();
Student s = new Student();
//输出成员变量值
System.out.println(s.name+"---"+s.age+"---"+s.address);
//给成员变量赋值
s.name = "林青霞";
s.age = 27;
s.address = "北京";
//赋值后的输出
System.out.println(s.name+"---"+s.age+"---"+s.address);

//调用方法
s.study();
s.eat();
s.sleep();
}
}


六、对象创建过程的内存图解

1.创建1个对象:



2.创建两个对象:



3.创建三个对象:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: