面向对象:是一种编程思想,面向的对象是人类,这种思想试图完整的模拟我们的世界,为我们解决问题,创建对象的目的不是为了完成一个步骤,而是解决的是整个群体的行为。永远是先有群体再有个体。
面向过程:面向的是计算机。因为计算机没有人类那么灵活,所以面向过程只能分析出解决问题的步骤,然后用函数依次把这些步骤实现。
例如:大象装进冰箱。
面向过程首先是分析问题:
(1)大象
(2)装载
(3)冰箱
按照这样的步骤,用函数依次的实现,就把问题解决了。
面向对象就是:分别创建一个大象群体(大象群体能移动)和一个冰箱群体(冰箱群体能装入东西),然后用大象群体和冰箱群体实例化出一个个体(也就是对象),这些个体就具有了群体的行为。
群体 等价于 类型
等价于
类
等价于
class
由群体实例化出来的个体
等价于
实例
等价于
对象
等价于
object
一个群体
有什么
(名词:属性)
(专有名词:成员变量)
能做什么
(名词:功能)
(专有名词:方法)
面向对象具有封装的特性。
封装是将一类事物的成员变量和方法构建在一起的过程。
例题:
/*编写两个类Human和Dog,Human类包含【散步】和【打】两个功能、Dog包含【咬】和【跑】两个功能。
要求:分别创建两个具体的实例:张三和大黄、完成下面的程序
(1)张三在散步
(2)大黄咬了张三
(3)张三打了大黄
(4)大黄跑了*/
package com.hzyc.lesson03.homework;
class Human/*类*/{
String name;//成员变量
void hang(){//方法
System.out.println(name+"在散步");
}
void hit(Dog d){
System.out.println(name+"打了"+d.name);
}
}
class Dog/*类*/{
String name;//成员变量
void run(){//方法
System.out.println(name+"跑了");
}
void bite(Human h){//方法
System.out.println(name+"咬了"+h.name);
}
}
public class H2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Human H = new Human();
Dog D = new Dog();
H.name = "张三";
H.hang();
D.name = "大黄";
D.bite(H);
H.hit(D);
D.run();
}
}