物件導向基礎高階01

2022-01-15 02:12:18 字數 3787 閱讀 7521

前言:物件導向程式設計是現如今程式設計的大環境,所以再次回顧物件導向的知識是非常有必要的。

一:類與物件

1:軟體系統

輸入{使用者介面}  運算{業務邏輯}

儲存{資料庫}    輸出{介面或其他檔案}

2:物件的了解

物件是身邊的一些常見的事物,主要了解物件之間區別; 

物件區分的重要因素:

靜態特徵(屬性,表示物件「什麼樣子」) 

動態特徵(方法,表示物件「能幹什麼」)

3:面向過程和物件導向

面向過程:就是比較注重做每一件事情的過程,步奏,流程。關注點為小的細節

物件導向:是具有一些特性和動作的東西,

關注點為最後的結果。

4:理解物件導向程式設計

*它的核心是物件

*物件為現實世界的實體,而物件導向程式設計就是將這些實體模擬到電腦程式中,實現相關的功能。

*根據需要編寫各種物件,並將其物件建立一定的關係;

5:封裝的概念

*就是將一些小的物件放在一起,然後以乙個新的物件呈現出來,封裝使得乙個物件的內部變得隱藏,從而更加安全;

*將屬性和方法放在乙個類裡面,類就可以看做是乙個黑箱,只能在外面看到一些公共的方法和屬性。《模組化和資料隱藏》

*定義用操作方法把資料封閉到類中,形成以資料為核心,方法為外殼的類。

6:類的概念

*物件是類中的乙個例項,將物件的共同特徵抽取出來,這些共同的屬性和方法被組織在乙個單元中,就被就做類;

*類是具有相同屬性和共同方法(行為)的一組物件的集合

*類的屬性:物件或實體所擁有的靜態特徵,在類中表示稱為類的屬性;

*類的方法:物件或實體所擁有的動態特徵,在類中表示為類的方法;

7:類與物件的區別 <

自行車和設計自行車圖紙的關係》

*類是乙個概念模型,在這個模型中,規定物件的屬性和方法;

*物件是乙個實體;

8:類模版的定義

訪問修飾符  class   類名

{定義字段;

定義屬性部分;

定義方法部分;

}  *定義類名:名詞,首字母大寫passal命名法;

*編寫類的字段,屬性;*編寫類的方法,介面;【獨立完成某個功能的單元模版】(學會理解類的組成,並且在這其中要學會應用)

9:字段:叫做成員變數(全域性變數);

{欄位和屬性都是用來描述類的靜態特徵}方法中定義的變數叫做區域性變數;二者的作用域不同;

10:物件的建立過程

static void  main(string ardes)   

set}public string studentname

set}

//獲取資訊

public string getstudent()

,學號:」,studentname,studentid);

return info;

}}

11:關於物件的呼叫

//建立物件

student objstudent=new student();

//給物件屬性賦值

objstudent.studentid=1001;

objstudent.studentname=」阿輝」;

//顯示物件的屬性(呼叫方法)

string info=objstudent.getstudent(); //類名.方法名

console.writeline(info);

console.readline();

二:欄位與屬性

1:訪問修飾符

作用:限制物件的屬性或方法可訪問的範圍(作用於類的內部和外部)

型別:private(私有的:外部不可見,不可訪問,只在本類可以訪問,預設的)

public(公有的:外部可見,外界可以訪問)

protect(受保護的:只在本類和子類中被訪問)

intemal(只在本專案中被訪問)

2:在方法中如果去掉public,則系統自動變為private,

對於private修飾符外界不可訪問,如果訪問會報錯,而且通過(.運算)不可自動出現;

3:字段(類的成員變數)

字段一般用private來修飾(是我們的私有財產),通常只供類的內部的不同方法使用;

4:屬性(描述靜態特徵){是什麼,具有什麼特有的屬性}

字段私有化,屬性是公有化;其中有get();set();通過value將外部值賦私有字段;

屬性是外界訪問私有欄位的入口,屬性本身不儲存任何資料;屬性中的get,set;

get為讀取時返回欄位的值,set外部來賦值;

5:使用屬性避免非法資料

6:可以將屬性設定為唯讀;

7:沒有對應私有欄位的屬性,屬性內部可以新增如何需要的業務**,如方法的呼叫;

8:欄位與屬性比較

字段(成員變數)為類的內部做資料互動,字段一般是private(私有的)的;可以為其賦值,也可以獲取欄位的值,

當需要為外部提供資料時,請將字段封裝為屬性,不要去使用共有的字段;

屬性一般向外界提供資料,主要描述資料物件的靜態特徵,一般用public,可設定為唯讀,只寫屬性,提高資料的安全性。也可以在內部新增業務邏輯,避免非法資料;

三:類的方法和構造方法

1:方法表示乙個類或物件能夠實現的操作,即物件的動態特徵。乙個類中主要是通過方法把字段和屬性的值傳遞出去;

分類:例項方法,靜態方法,構造方法,抽象方法,虛方法;

2:方法的作用

*規定了類主要實現的功能;

*方法封裝在類裡面,外界呼叫時不需要了解內部細節,體現了其「高內聚」「低耦合」特性;

3:書寫類中方法的錯誤集合

*忘記返回值,提示並非所有路徑**都有返回值;

*返回值定義的型別與返回值資料的型別不同;

*變數在使用中超出作用域

4:構造方法的呼叫優先與其他的方法,其中引數的傳遞和一般的方法傳遞一樣;

這裡的呼叫是因為我們每一次使用物件的時候都會new一下,這裡就呼叫了類中預設的構造方法,這裡可以進行過載的實現,當你想為其進行初始化時。

5:構造方法可以進行初始化,使用有引數的構造方法可以避免使用者單個初始化物件屬性的麻煩;在構造方法中統一初始化就可以使程式變得更加美觀;

6:構造多個構造方法

構造方法自身呼叫時用完成自身方法的呼叫;

7:構造方法與例項方法的區別

構造方法:

*用於物件的初始化,乙個類中至少有乙個構造方法;

*不能顯示呼叫,只能在建立物件時使用new來呼叫;

*無返回值;無括號包裹;

*構造方法名稱必須與類名一樣;

例項方法:

*用於表示物件能夠幹什麼,乙個類中可以沒有任何例項方法;物件的動態特徵;

*只能顯示呼叫:物件名.方法名。

*可以有返回值,沒有時必須以void表示;

*方法的命名要有意義,不能與類名相同; 

8:物件初始化器

中間的語句塊,必須以「,」分隔;

*只能初始化屬性值;

*只能在呼叫者中使用,而構造方法初始化必須寫在類中;

9:方法的重新定義(三種)

10:this關鍵字

*this表示當前類的物件,用於訪問該類成員變數或方法;

*當成員變數和區域性變數重名時使用this區分;

這裡還有個base關鍵字,當我們的類繼承字別的類時,我們通過base來直接使用父類。

Python 物件導向基礎01

當有乙個問題擺在我面前,傳統思路是我親自上陣,把問題解決。下一次當類似的問題再次出現時,我再上,再解決。如此重複,不知道什麼時候是個頭。寫程式也是這樣,面對類似的問題時,如果每次都是從零開始,工作學習的效率將會十分低下,因為總是在重複相同的工作。物件導向則把我從執行者的角色公升級為了指揮者。我不用再...

物件導向01 基礎篇

物件導向基礎 一 物件導向的概念 1.物件導向的概念 面向過程的思想是拿到一件事,首先考慮的是該怎麼去做 而物件導向的思想是拿到一件事考慮的是該讓誰去做 物件導向是將面向過程中的執行者變成指揮者,使用物件導向的開發降低 的耦合度 一般將具有 封裝,繼承,多型 等特徵的程式語言稱為具有物件導向思想的程...

python基礎四 01 物件導向

物件導向程式設計與面向過程程式設計是兩種常見的程式設計思想。先通過引子來看下 話說三國時期,曹操帶領百萬大軍攻打東吳,大軍在長江赤壁駐紮,軍船連成一片。眼看就要滅了東吳,統一天下,曹操大悅,於是大宴眾文武。在酒席間,曹操詩性大發,不覺吟道 喝酒唱歌,人生真爽.眾文武齊呼 丞相好詩!於是命印刷工匠刻版...