IOS學習之OC物件導向 封裝

2021-07-04 16:33:57 字數 2262 閱讀 3936

一、物件導向和封裝

物件導向的三大特性:封裝(成員變數)、繼承和多型

在oc語言中,使用

@inte***ce

和@implementation

來處理類。

@inte***ce就好像暴露在外面的時鐘表面,像外界提供展示以及介面。@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:在實際的開發中,不一定set

和get

方法都會提供,如果內部的成員變數比如學生的學號這樣的資料只允許外界讀取,但是不允許修改的情況,則通常只提供

get方法而不提供

set方法。

注意2:成員變數名的命名以下劃線開頭,get

方法名不需要帶下劃線,使用下劃線開頭有兩個好處:(1)與

get方法的方法名區分開來;(

2)可以喝一些其他的區域性變數區分開來,下劃線開頭的變數,通常都是類的成員變數。

四、self關鍵字

self是乙個指標,誰呼叫了當前方法,

self

就指向誰

【出現在物件方法中,就代表著當前物件,出現在類方法中,就代表著當前類】

self的用途

:(1)可以利用self->

成員變數名訪問當前物件內部的成員變數(僅在物件方法中)

(2)[self 方法名

];可以呼叫其他的物件方法或者是類方法

五、練習

要求:設計乙個成績類

實現:

測試程式:

OC物件導向之封裝

一 物件導向和封裝 物件導向三大特徵 封裝 繼承 多型。封裝是物件和類概念的主要特性。它是隱藏內部實現,穩定外部介面,可以看作是 包裝 封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。好處 使用更加簡單 變數更加安全 可以隱藏內部實...

OC物件導向 封裝

oc物件導向 封裝 一 物件導向和封裝 物件導向的三大特性 封裝 成員變數 繼承和多型 在oc語言中,使用 inte ce 和 implementation 來處理類。inte ce就好像暴露在外面的時鐘表面,像外界提供展示以及介面。implementation就好像隱藏在時鐘內部的構造實現,把具體...

OC物件導向 封裝

oc物件導向 封裝 一 物件導向和封裝 物件導向的三大特性 封裝 成員變數 繼承和多型 在 oc語言中,使用 inte ce和 implementation來處理類。inte ce就好像暴露在外面的時鐘表面,像外界提供展示以及介面。implementation就好像隱藏在時鐘內部的構造實現,把具體的...