1. 程式人生 > 其它 >面向物件的思想概述

面向物件的思想概述

面向物件的思想概述

面向過程思想概述

那麼什麼是面向過程開發呢? 面向過程開發,其實就是面向著具體的每一個步驟和過程,

把每一個步驟和過程完成,然後由這些功能方法相互呼叫,完成需求。

面向過程的代表語言:C語言

什麼是面向物件的思想

面向物件的思想是基於面向過程思想發展而來的。

  • 面向過程:強調的是實現功能每一個步驟
  • 面向物件:強調的是物件,然後由這個物件去呼叫功能

面向物件的特點:

  • 是一種更符合我們思想習慣的思想
  • 可以將複雜的事情簡單化
  • 將我們從執行者變成了指揮者

舉例:

吃飯:

面向過程的思想:先去菜市場買菜--洗菜--切菜--做菜--裝盤--吃

面向物件的物件:你點外賣--(點菜)--廚師(做菜)--外賣小哥(送餐)


虛擬碼舉例

需求:將大象裝進冰箱裡

面向過程的思想:

分析過程:

1、開啟冰箱門

2、把大象裝進冰箱

3、關閉冰箱門

虛擬碼實現:

class Demo{

public static void main(String[] args){

System.out.println("開啟冰箱門");

//開啟冰箱門這個動作,肯定不是一行程式碼就搞得定的

//現在僅僅是為了演示面向過程的編碼思想

//假設我們將來這個程式要開啟很多次冰箱門

//可以將開啟冰箱門這個功能封裝成一個方法然後去呼叫

//把大象裝進冰箱以及關閉冰箱門這兩個功能也可以封裝成方法

open();

put();

close();

}

public static void open(){

//寫開啟冰箱門的功能實現程式碼

}


public static void put(){

//寫把大象裝進冰箱的功能實現程式碼

}

public static void close(){

//寫關閉冰箱門的功能實現程式碼

}

}


面向物件的思想:

使用面向物件的思想去實現該需求:

1、我們需要考慮該需求中有哪些類?

2、每一個類中都有些什麼呢?

3、類與類之間的關係又是什麼呢?

1、我們需要考慮該需求中有哪些類?

如何分析有哪些類,

方式1:需要用到UML這門課的知識

方式2:名詞提取法

有哪些類呢?

通過名詞提取法,我們知道有大象類,冰箱類外加一個測試類

2、每一個類中都有些什麼呢?

大象類:

屬性:體積,鼻子,腳掌,耳朵...

功能:被裝進冰箱,喝水,叫....

冰箱類:

屬性:立方體,材質,功率...

功能:開啟冰箱門,關閉冰箱門,冷藏,保鮮....

測試類:

main方法,實現需求

3、類與類之間的關係又是什麼呢?

測試類中使用大象類和冰箱類的功能

虛擬碼實現:

//大象類

class Elephant{

體積;

鼻子;

腳掌;

耳朵;

被裝進冰箱();

喝水();

叫();

}

//冰箱類

class IceBox{

立方體;

材質;

功率;

開啟冰箱門()

關閉冰箱門()

冷藏()

保鮮()

}

//測試類

class Demo2{

public static void main(String[] args){

呼叫冰箱類中的開啟冰箱門的方法;

呼叫大象類中的被裝進冰箱的方法;

呼叫冰箱類中的關閉冰箱門的方法;

}

}

3、面向物件開發,設計,特徵

面向物件的開發:

實際上就是不斷建立物件,使用物件,指揮物件做事情的過程

面向物件的設計:

其實就是管理和維護類與類之間的關係的過程

面向物件的特徵:

1、封裝

2、繼承

3、多型

類與物件關係

我們學習程式語言,就是為了模擬現實世界的事物,實現資訊化。比如:去超市買東西的計費系統,去銀行辦業務的系統。

我們如何表示一個現實世界事物呢: 屬性 就是該事物的描述資訊 行為 就是該事物能夠做什麼 舉例:學生事物

我們學習的Java語言最基本單位是類,所以,我們就應該把事物用一個類來體現。

類:是一組相關的屬性和行為的集合

物件:是該類事物的具體體現

類的定義

現實世界的事物

屬性 人的身高,體重等

行為 人可以學習,吃飯等

Java中用class描述事物也是如此

成員變數 就是事物的屬性

成員方法 就是事物的行為

定義類其實就是定義類的成員(成員變數和成員方法)

如何使用java語言描述現實生活中的事物呢?
舉例:人
五官,姓名,性別,年齡...
吃飯,學習,說話,敲程式碼...

水杯
顏色,形狀,材質,容積...
裝水,泡茶...

屬性:用來描述事物的資訊
行為:用來描述事物能夠做什麼

我們學習程式語言的目的,其實就是用來模擬現實世界的事物的
而我們現在所學習的語言叫做: java
java中最基本的單位:類
所以,我們通過java把現實世界的事物給描述出來
所以我們要學習如何用java去描述一個現實世界的事物
得出一個對應關係:
事物: 類:
屬性:用來描述事物的資訊 成員變數:用來描述事物的資訊
行為:用來描述事物能夠做什麼 成員方法:用來描述事物能夠做什麼

類:是一組成員變數和成員方法的集合,其實是一個抽線的概念
物件:是該類事物的具體表現,具體到某一個個體

舉例:
事物:人
屬性:五官,姓名,性別,年齡...
行為:吃飯,學習,說話,敲程式碼...

類:Person
成員變數:facialFeatures,name,gender,age
成員方法:eat(),study(),talk(),coding()

物件:是該類事物的具體表現,具體到某一個個體
學生,老師,醫生,程式設計師...

虛擬碼程式示例

類是用來描述現實世界中的事物

現實世界中

學生:

屬性:學號,姓名,年齡

行為:吃飯,學習,睡覺

類中:

Student:

成員變數:id,name,age

成員方法:eat(),study(),sleep()

public class Student {

//定義該類中的成員變數

//格式:

// 修飾符 資料型別 變數名;

//目前還沒有系統地學習過修飾符,目前不加修飾符

//學號

int id;

//姓名

String name;

//年齡

int age;

//定義成員方法

//目前定義的格式:

// 修飾符 返回值型別 方法名(引數列表){..}

//目前修飾符使用 public static

//吃飯

public static void eat(){

System.out.println("吃飯");

}

//學習

public static void study(){

System.out.println("學習");

}

//睡覺

public static void sleep(){

System.out.println("睡覺");

}

}

測試學生類

建立物件,呼叫成員變數和方法

public class StudentDemo {

public static void main(String[] args) {

//如何建立物件呢?

//格式: 類 物件名(自定義) = new 類名(...);

//建立一個學生物件

Student xiaozhu = new Student();


//如何獲取成員變數呢?

//格式:

// 物件名.成員變數名

//獲取xiaozhu的學號

System.out.println(xiaozhu.id);

//獲取xiaozhu的姓名

System.out.println(xiaozhu.name);

//獲取xiaozhu的年齡

System.out.println(xiaozhu.age);


System.out.println("=================賦值後:=================");

//由於我們打印發現結果都是系統給的預設值

//現在我們想給這個物件的成員變數進行賦值

//給成員變數賦值的格式:

// 物件名.成員變數名 = 成員變數對應的資料型別的值;

//給xiaozhu這個物件的學號進行賦值

xiaozhu.id = 10001;

//給xiaozhu這個物件的姓名進行賦值

xiaozhu.name = "朱佳樂";

//給xiaozhu這個物件的年齡進行賦值

xiaozhu.age = 18;

//獲取xiaozhu的學號

System.out.println(xiaozhu.id);

//獲取xiaozhu的姓名

System.out.println(xiaozhu.name);

//獲取xiaozhu的年齡

System.out.println(xiaozhu.age);

//如何呼叫該物件中的方法

//格式:

// 物件名.成員方法

//呼叫xiaozhu中的吃飯方法

xiaozhu.eat();

xiaozhu.study();

xiaozhu.sleep();

}

}