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基础的重点知识点全集》