第5章-第1节-初识Java中的面向对象

发布时间:2023年12月22日

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

文章来源:https://blog.csdn.net/jnbbwyth/article/details/135082205
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。