物件導向程式設計 1 物件導向程式設計初步認知

2022-07-02 19:18:10 字數 1670 閱讀 4287

其實,不需要搞明白面向過程程式設計和物件導向程式設計的區別,只需要明白物件導向的特點:變數必須有家長,萬事家長做主.慢慢就能理解物件導向的優劣.

1.變數有所屬.

常規方式

var a = 1

let b = ['1', '2']

const c = function (name)

console.log(a, b, c)

常規的變數申明,這些變數作用於自己的作用域內.這種方式有一些缺陷.

其一,在同乙個作用域內,同名變數會導致前乙個變數被覆蓋.假如現在引入了兩個不同的js檔案,裡面各自都有乙個叫check的函式,那麼後引入的函式會覆蓋前乙個函式.那麼這時候我就得去修改函式名,可能就會導致開發量變大.

其二,不方便管理.首先,如果沒有函式名沒有語義化,或者語義比較模糊,那我們看到它的第一眼,並不知道它的作用在哪兒.那麼維護**的時候我們,必須圍繞整個流程看一遍以確認需要維護的變數.其次,假如多處用到相同的幾個變數,那我們只能全部複製貼上一遍,在需要修改的地方再進行修改.復用性不高.

其他暫且不提.為了解決上述問題,我們引入了物件導向程式設計的方案.

物件導向

const obj = 

}console.log(obj.a, obj.b, obj.c)

最明顯的特點就是,同樣的變數,我把它們放進了obj這個物件中,它們被約束在obj中.

好處1:同乙個檔案,我可以重複命名變數(作為盒子的物件不可同名)

const obj = 

}console.log(obj.a, obj.b, obj.c)

const obj1 =

}console.log(obj1.a, obj1.b, obj1.c)

可以看見,你不需要想破腦袋去想6個變數名,只要3個變數名就行,只要同乙個物件中不要有重複的屬性名就行.

好處2.我可以對不同的變數進行分類,已明確其在**的作用,從而方便查詢維護

面向過程:申明的時候,我們並不知道這6個變數有啥區別,實際console的時候再回頭乙個個去找,需要修改的時候再修改

var a = 1

let b = ['1', '2']

const c = function (name)

var d = 1

let e = ['1', '2']

const f = function (name)

console.log(a, b, c)

settimeout(() => , 1000)

物件導向:6個變數已經提前分類好了,後續一看,就很清楚這6個變數分別再**發揮作用.

const obj = 

}console.log(obj.a, obj.b, obj.c)

const obj1 =

}settimeout(() => , 1000)

2.家長需做主

由於變數變成了物件的屬性,所以沒法直接使用.需要經過物件(家長)才能獲取.比如上面的obj.a,而直接拿a是拿不到的.這也就是變數名可以重複的原因.畢竟obj.a和obj1.a不是同乙個東西.這就是

C 物件導向程式設計初步

1,使用const 指標 const int pone 指向整型常量的指標,指向的值不能修改 int const ptwo 指向整型的常量指標,指向的值可以修改,但該指標不能再指向其他變數 const int const pthree 指向整型常量的常量指標 summarize summary 訪問...

3 物件導向程式設計初步

如何開汽車 事務比較簡單,可以用線性的思維去解決 面向過程 物件導向 1.踩離合 駕駛員 2.掛擋 汽車 3.踩油門,放離合 駕駛員開汽車!4.開了 car.start 如何製造汽車 事物比較複雜使用簡單的線性思維無法解決 面向過程 物件導向 1.造車輪?車輪 2.造發動機?買橡膠到馬來西亞找到橡膠...

物件導向程式設計1

包 用於組織和管理類的目錄結構,同乙個包中不同出現同名類 包名 識別符號.識別符號.識別符號.package 打包命令,指明該類所在的包,該命令必須為 的第一行,同時必須與目錄結構相同 若在乙個包中需要使用其他包中的類,需要匯入包 import 包名.類名 使用包的原則 1.同乙個包中往往包含功能相...