1、面向对象和面向过程:
面向对象:(编程思想)
较晚出现
面向:看、关注、瞅
对象:个体、个例、实体、实例、结果
侧重点:关注结果
理解:将我们从劳动者变成了指挥者 ==> 解放程序员
面向过程:(编程思想)
较早出现
面向:看、关注、瞅
过程:前因后果、从头到尾
侧重点:关注从头到尾
理解:就是一个实实在在的劳动者
使用上述两种思想去解决生活中的一些现象
现象一:吃饭
使用面向过程的思想去解决吃饭的问题
具体步骤:
1)、思考今天吃什么
2)、去菜场买菜
3)、挑菜(货比三家、针对性砍价)
4)、付钱提菜走人
5)、摘菜
6)、洗菜
7)、切菜
8)、炒菜
9)、焖饭
10)、吃饭
11)、洗刷
使用面向对象的思想去解决吃饭的问题
具体步骤:
1)、思考今天吃什么
2)、去饭店
①、使唤服务员,调用其点菜功能
②、服务员将所点菜品告知后方的大厨,大厨做菜ing...
③、大厨使唤服务员,调用其上菜功能
3)、开始吃饭
4)、结账(多种支付方式)
2、使用面向对象的思想进行场景演练
名词动词提炼法
场景一:大象装进冰箱
名词:大象、冰箱
动词:装
伪代码
具体步骤:
步骤一:设计类,花费大量时间
class 大象 {
}
class 猴子 {
}
class 冰箱 {
开开( ) {
}
装(大象 dx) {
}
装(猴子 hz) {
}
关关( ) {
}
}
步骤二:实例化/创建类的对象,代码很短,内存很复杂
大象 dx = new 大象( );
冰箱 bx = new 冰箱( );
步骤三:对象调用方法完成需求
bx.开开( );
bx.装(dx);
bx.关关( );
场景二:猫抓老鼠
名词:猫、老鼠
动词:抓
伪代码
具体步骤:
步骤一:设计类
class 猫 {
看(老鼠 ls) {
ls.看(this);
}
抓(老鼠 ls) {
ls.逃();
}
吃(老鼠 ls) {
ls.叫()
}
}
class 老鼠 {
看(猫 m) {
}
逃( ) {
}
叫( ) {
}
}
步骤二:创建类的对象
猫 tom = new 猫( );
老鼠 jerry = new 老鼠( );
步骤三:对象调用方法完成需求
tom.看(jerry);
tom.抓(jerry);
tom.吃(jerry);
场景三:红色的车正在飞速的行驶,然后停了
名词:车
动词:行驶、停止
伪代码:
具体步骤:
步骤一:设计类
class 车 {
//属性(成员变量)
//描述事物的特征、特点
字符串 颜色;
字符串 品牌;
字符串 车牌;
浮点型 价格;
//方法(成员方法)
//描述事物的功能、行为
行驶( ) {}
停止( ) {}
}
步骤二:创建/实例化类的对象
//...
步骤三:对象访问类的成员(属性、方法)完成需求
//...
3、属性
又被称为:成员变量,属于类的成员之一
作用:用于描述某类事物的特征、特点 ==> 偏静的部分
注意:
1)、方法也是属于类的成员之一 ==> 定义在类的成员位置
2)、方法用于描述某类事物的功能、行为 ==> 偏动的部分
【问题1】:什么是成员变量?
答:定义在成员位置的变量就是成员变量
【问题2】:什么是成员位置?
答:直接定义在class的内部就是成员位置
【位置关系图】:
class Xxx {
//成员位置
public ...( ) {
}
//成员位置
}
定义格式:
两种情况:
情况一:声明同时初始化【使用较少】
模板:
数据类型 属性名 = 属性值;
举例:
double pi = 3.14;
情况二:先声明后初始化【使用较多】
模板:
//环节一:在设计类的过程中仅仅声明定义属性,并不显示赋值
数据类型 属性名;
//环节二:在实例化对象完毕后,通过对象名.属性名的方式为对象属性进行显示赋值操作
对象名.属性名 = 属性值;
举例:
//人类
class Person {
//属性
String name;
int age;
}
//外部环境
//创建Person对象
Person p = new Person();
//对象名.属性名 ==> 属性赋值
p.name = "张三";
p.age = 30;
4、第一个面向对象程序收获总结
1)、某个类设计的目的就是为了给别的类使用,自己不存在单独执行的情况,则其内部可以不定义main方法
一旦某个类需要被执行,则其内部必须定义main方法
2)、如果有需要,类的内部可以创建多个对象,每个对象都有一份自己的属性,彼此独立、互不干扰
本电子书目录:《Java基础的重点知识点全集》