一 例項變數可見度
所謂的內部,指的是相應類@implementation…@end之間
@inte***ce person : nsobject
這裡不使用@public,為什麼呢?
1) 使用@public關鍵字,暴露了類內部的細節
2)不符合物件導向語言的三大特性之一 ------封裝
如何在其他檔案中訪問物件@protected修飾的例項變數?
賦值:通過方法傳入引數,在類的內部實現例項變數賦值
取值:通過方法獲取例項變數的值
由此引入方法
二 方法
1)簡介
oc中的方法有兩種:類方法和例項方法
類方法:只能類使用,例如: +(id)alloc
注意:類方法中不能使用例項變數
例項方法:只能物件使用,例如: -(void)sayhi;
2)方法的宣告
方法名(replaceobjectatindex)需注意的地方
1)類中不能出現同名方法
2)' : '標識引數,不能省略. 有冒號必須有引數.
3)方法中的賦值 , 取值方法
//宣告給name 賦值的方法
- (void)setname:(nsstring *)newname;
//宣告獲取name值的方法
- (nsstring *)getname;
4)多引數方法
//多引數的方法
- (void)setname:(nsstring *)name
age:(int)age
gender:(nsstring *)gender;
5)方法的使用
1)在oc中使用訊息傳送機制: [receiver message]
2)正確表述: 給student物件傳送sayhi訊息
1) student接收到訊息
2) student找到sayhi方法,並執行
三 setter getter
1)簡介
在oc裡,為例項變數賦值的方法稱作setter (設定器)
讀取例項變數值的方法稱作getter (訪問器)
我們之前寫的那些賦值取值的方法都可以稱作setter 和 getter
setter的書寫格式:set+首字母大寫的例項變數名
getter的書寫格式:方法名與例項變數名相同
2)setter getter
無論setter 還是getter內部操作的是例項變數
每乙個例項變數都需要一對setter getter方法
3)自定義初始化
1)簡介
- (id)init這個初始化只能給例項變數設定預設值,不靈活
- (id)initwithname:自定義初始化方法,根據需求定義初始化方法
2)示例
//宣告自定義初始化方法
//instancetype 代表任意型別
- (instancetype)initwith:(nsstring *)name
score:(cgfloat)score;
//實現自定義初始化方法
- (instancetype)initwithname:(nsstring *)name
score:(cgfloat)score
classname:(nsstring *)classname
height:(cgfloat)height
//3.返回
return self;
}四 #import 和 @class
1)#import
匯入標頭檔案,即:匯入標頭檔案中的內容到當前類;
#import " "匯入自定義類, #important< >匯入類庫中的標頭檔案;
功能類似c語言中的#include,但是可以避免標頭檔案被重複匯入;
容易出現迴圈匯入檔案問題;
2)@class
告訴編譯器@class後的字串作為類名使用,並未匯入類的介面內容
有效避免巢狀迴圈匯入
OC之例項變數可見度和方法
一 例項變數的可見度 例項物件 安全性 可見度 特點 public 公有的 例項變數可以在類的外部和內部操作 protected 受保護的,預設的 例項變數只能在該類和其子類內操作 private 私有的 例項物件只能在該類內訪問 在oc裡面,所有的例項物件預設的可見度是受保護的,protected...
成員變數可見度與方法
定義分數 fraction 類 1 成員變數 分子 分母 2 方法 1 自定義初始化方法 初始分子和分母 2 分子的賦值 取值方法 3 分母的賦值取值方法 4 列印分數資訊 5 約分 6 加 減 乘 除運算方法,返回分數物件。3 mian.m檔案中建立分數物件,測試加 減 乘 除。import in...
iOS入門(十六)例項變數可見度和方法
例項變數可見度和方法 public private protected 可見度預設為 protected 在 main 檔案中通過賦值和取值對不在可見度範圍內的特徵進行設定和讀取 方法分為 類方法 類方法中不能使用例項變數 例項方法 方法宣告 方法型別識別符號 返回型別 引數形容詞 引數型別 引數名...