1
面向过程:强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能
2<span style="color: #000000;">:面向对象的思想特点
A:是一种更符合我们思想习惯的思想
B:可以将复杂的事情简单化
C:将我们从执行者变成了指挥者
举例:
买电脑:
面向过程:我的了解电脑</span>--了解我自己的需求--找对应的参数信息--去中关村买电脑--讨价还价--<span style="color: #000000;">买回电脑
面向对象:我知道我要买电脑 </span>-- 班长去给我买 --<span style="color: #000000;"> 班长就买回来了
洗衣服:
面向过程:把衣服脱下</span>--找一个盆--放点洗衣粉--加点水--把衣服扔进去--搓一搓--清洗衣服--拧干--<span style="color: #000000;">晾起来
面向对象:把衣服脱下</span>--打开全自动洗衣机--扔进去--一键即可--<span style="color: #000000;">晾起来
吃饭:
面向过程:去超市买菜</span>--摘菜--洗菜--切菜--炒菜--盛起来--<span style="color: #000000;">吃
面向对象:上饭店吃饭,你</span>--服务员(点菜)--厨师(做菜)--服务员(端菜)--<span style="color: #000000;">吃
家常事物,买洗衣机和去饭店太不划算了,所以,找个对象。
但是,你不跟我好好学习,你将来4000,你对象8000。
3<span style="color: #000000;">:把大象装进冰箱
面向过程:
动作有哪些呢?<span style="color: #000000;">
A:打开冰箱门
B:装进大象
C:关闭冰箱门
代码体现;
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Demo {
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {
</span><span style="color: #008000;">/*</span><span style="color: #008000;">
System.out.println("打开冰箱门");
//打开冰箱门的东西,我现在仅仅是为了演示,就写了一个输出语句
//其实,它可能需要做很多操作。
//这个时候代码就比较多一些了
//假设我要多次打开冰箱门,
//代码一多,每次都写一遍,麻烦不
//我们就应该用方法改进
System.out.println("装进大象");
System.out.println("关闭冰箱门");
</span><span style="color: #008000;">*/</span>
<span style="color: #008000;">//</span><span style="color: #008000;">写了方法以后,调用就改变了</span>
<span style="color: #000000;"> open();
in();
close();
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> open() {
System.out.println(</span>"打开冰箱门"<span style="color: #000000;">);
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> in() {
System.out.println(</span>"装进大象"<span style="color: #000000;">);
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> close() {
System.out.println(</span>"关闭冰箱门"<span style="color: #000000;">);
}
}
<span style="color: #ff0000;">面向对象:</span>
<span style="color: #ff0000;">我们怎么才能更符合面向对象思想呢</span></span><span style="color: #ff0000;">?
A:有哪些类呢?
B:每个类有哪些东西呢?
C:类与类直接的关系是什么呢?</span><span style="color: #000000;">
把大象装进冰箱的分析</span>? (如何分析有哪些类呢?<span style="color: #000000;">UML。名词提取法。)
A:有哪些类呢</span>?<span style="color: #000000;">
大象
冰箱
Demo
B:每个类有哪些东西呢</span>?<span style="color: #000000;">
大象:
进去
冰箱:
开门
关门
Demo:
main方法
C:类与类直接的关系是什么呢</span>?<span style="color: #000000;">
Demo中使用大象和冰箱类的功能。
<span style="color: #ff0000;">代码体现:
</span></span><span style="color: #ff0000;">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) {
冰箱调用开门
大象调用进去
冰箱调用关门
}
}
4<span style="color: #000000;">:开发,设计,特征
面向对象开发
就是不断的创建对象,使用对象,指挥对象做事情。
面向对象设计
其实就是在管理和维护对象之间的关系。
面向对象特征
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
现实世界中是如何描述一个事物的呢?
属性:该事物的描述信息
行为:该事物能够做什么
我们学习编程语言,是为了模拟现实世界的事物的。
而我们学习的编程语言Java中最基本的单位是:类。
所以,我们就应该把事物通过类来体现出来:
由此,我们就得到了现实世界事物和类的对应关系:
<span style="color: #ff0000;">事物: 类:
属性 成员变量
行为 成员方法
<span style="color: #ff0000;">类:是一组相关的属性和行为的集合。是一个抽象的概念。
对象:是该类事物的具体表现形式。具体存在的个体。
举例:
学生:类
班长:对象
类:
成员变量 事物的属性
成员方法 事物的行为
定义一个类,其实就是定义该类的成员变量和成员方法。
案例:我们来完成一个学生类的定义。
学生事物:
属性:姓名,年龄,地址...
行为:学习,吃饭,睡觉...
把事物要转换为对应的类:
学生类:
成员变量:姓名,年龄,地址...
成员方法:学习,吃饭,睡觉...
<span style="color: #ff0000;">成员变量:和以前变量的定义是一样的格式,<strong>但是位置不同,在类中方法外。</strong>
成员方法:和以前的方法定义是一样的格式,<strong>但是今天把static先去掉。</strong></span>
首先我们应该定义一个类,然后完成类的成员。
<span style="color: #008000;">*/
<span style="color: #008000;">//<span style="color: #008000;">这是我的学生类
<span style="color: #0000ff;">class<span style="color: #000000;"> Student {
<span style="color: #008000;">//<span style="color: #008000;">定义变量
<span style="color: #008000;">//<span style="color: #008000;">姓名//<span style="color: #ff0000;">这里定义在类中方法外
<span style="color: #000000;"> String name;
<span style="color: #008000;">//<span style="color: #008000;">年龄
<span style="color: #0000ff;">int<span style="color: #000000;"> age;
<span style="color: #008000;">//<span style="color: #008000;">地址
<span style="color: #000000;"> String address;
</span><span style="color: #008000;">//</span><span style="color: #008000;">定义方法
</span><span style="color: #008000;">//</span><span style="color: #008000;">学习的方法<span style="color: #ff0000;">//这里没有static</span></span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> study() {
System.out.println(</span>"学生爱学习"<span style="color: #000000;">);
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">吃饭的方法</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> eat() {
System.out.println(</span>"学习饿了,要吃饭"<span style="color: #000000;">);
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">睡觉的方法</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> sleep() {
System.out.println(</span>"学习累了,要睡觉"<span style="color: #000000;">);
}
}
如何使用呢?
创建对象使用。
如何创建对象呢?
格式:类名 对象名 = new 类名();
如何使用成员变量呢?
对象名.变量名
如何使用成员方法呢?
对象名.方法名(...)
<span style="color: #008000;">*/
<span style="color: #008000;">//<span style="color: #008000;">这是学生类
<span style="color: #0000ff;">class<span style="color: #000000;"> Student {
<span style="color: #008000;">//<span style="color: #008000;">姓名
String name; <span style="color: #008000;">//<span style="color: #008000;">null
<span style="color: #008000;">//<span style="color: #008000;">年龄
<span style="color: #0000ff;">int age; <span style="color: #008000;">//<span style="color: #008000;">0
<span style="color: #008000;">//<span style="color: #008000;">地址
String address; <span style="color: #008000;">//<span style="color: #008000;">null
</span><span style="color: #008000;">//</span><span style="color: #008000;">学习</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> study() {
System.out.println(</span>"学生爱学习"<span style="color: #000000;">);
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">吃饭</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> eat() {
System.out.println(</span>"学习饿了,要吃饭"<span style="color: #000000;">);
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">睡觉</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> sleep() {
System.out.println(</span>"学习累了,要睡觉"<span style="color: #000000;">);
}
}
<span style="color: #008000;">//<span style="color: #008000;">这是学生测试类
<span style="color: #0000ff;">class<span style="color: #000000;"> StudentDemo {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #ff0000;">//如何创建对象呢?
//类名 对象名 = new 类名();
Student s = <span style="color: #0000ff;">new<span style="color: #000000;"> Student();
</span><span style="color: #008000;">//</span><span style="color: #008000;">输出成员变量值
</span><span style="color: #008000;">//</span><span style="color: #008000;">System.out.println(s.name);
</span><span style="color: #008000;">//</span><span style="color: #008000;">System.out.println(s.age);
</span><span style="color: #008000;">//</span><span style="color: #008000;">System.out.println(s.address);
</span><span style="color: #ff0000;">//如何使用成员变量呢?对象.变量名</span>
System.out.println(s.name+"---"+s.age+"---"+<span style="color: #000000;">s.address);
</span><span style="color: #ff0000;">//给成员变量赋值</span>
s.name = "林青霞"<span style="color: #000000;">;
s.age </span>= 27<span style="color: #000000;">;
s.address </span>= "北京"<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">赋值后的输出</span>
System.out.println(s.name+"---"+s.age+"---"+<span style="color: #000000;">s.address);
</span><span style="color: #ff0000;">//调用方法。如何使用成员方法呢?对象名.方法名(...)</span>
<span style="color: #000000;"> s.study();
s.eat();
s.sleep();
}
}