OC面向對象—封裝


OC面向對象—封裝

一、面向對象和封裝

面向對象的三大特性:封裝(成員變量)、繼承和多態

OC語言中,使用@interface@implementation來處理類。

 

@interface就好像暴露在外面的時鍾表面,像外界提供展示以及接口。@implementation就好像隱藏在時鍾內部的構造實現,把具體的實現封裝了起來。

 

二、Set方法

在開發過程中,考慮到安全性要求,我們一般不在成員變量名前面使用@public@protected等關鍵字修飾,而是使用Set方法來為對象提供成員變量的值。在set方法的內部也可以對一些不合理的賦值進行篩選過濾。

Set方法的作用:為外界提供一個設置成員變量值的方法

命名規范:

(1)方法名必須以set開頭

(2)Set后面跟上成員變量的名稱,首字母大寫

(3)返回值一定是void

(4)一定要接收一個參數,而且參數類型需要和成員變量的類型一致

(5)形參名不能喝成員變量名一樣(蘋果官方推薦成員變量名前加_以示區分)

Set方法的好處:

(1)不讓數據暴露在外,保證了數據的安全性

(2)對設置的數據進行過濾

Set方法使用示例:

Set方法的聲明:

 

Set方法的實現:

 

測試程序:

 

三、Get方法

Get方法的作用:為調用者返回對象內部的成員變量

命名規范:

(1)一定有返回值,返回值的類型和成員變量的類型一致

(2)方法名和成員變量名一樣

(3)不需要接收任何參數

Get方法使用示例:

Get方法的聲明:

 

Get方法的實現:

 

測試程序:

 

 

注意1在實際的開發中,不一定setget方法都會提供,如果內部的成員變量比如學生的學號這樣的數據只允許外界讀取,但是不允許修改的情況,則通常只提供get方法而不提供set方法。

注意2成員變量名的命名以下划線開頭,get方法名不需要帶下划線,使用下划線開頭有兩個好處:(1)與get方法的方法名區分開來;(2)可以喝一些其他的局部變量區分開來,下划線開頭的變量,通常都是類的成員變量。

四、Self關鍵字

Self是一個指針,誰調用了當前方法,self就指向誰

【出現在對象方法中,就代表着當前對象,出現在類方法中,就代表着當前類】

Self的用途:

(1)可以利用self->成員變量名訪問當前對象內部的成員變量(僅在對象方法中)

(2)[self 方法名];可以調用其他的對象方法或者是類方法

五、練習

要求:設計一個成績類

 

實現:

 

測試程序:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM