封裝、繼承和複合、多態

一.經過對封裝的學習,瞭解了其安全性。
成員變量前面有做用域限定符(protected,public,private)。在訪問成員變量時,通常不聲明的狀況下都是private私有的,是受protected保護的,只有執行@public公開的狀況狀況下才能夠改變成員變量的值。類的成員變量是在括號{ }之間的內容,而括號外的@interface@end 之間是方法的定義。在接口部分中,定義的方法只有方法的定義,沒有方法的實現。
@public做用域限定的實例變量,能夠在任何狀況下訪問;@private做用域限定的實例變量,只能在這個類裏面才能夠訪問;@protected做用域限定的實例變量,能夠在這個類裏面和這個類的派生子類裏面訪問,在類外的訪問時不推薦的,但也能夠訪問。
訪問成員變量,能夠經過讀取方法(getter)和設定方法(setter)進行的。若是不考慮封裝的問題,單從技術上講,能夠直接經過對象訪問成員變量,訪問操做符是"->",如p->tile,也能夠取得tile成員變量的內容(*p爲指針,在main函數中建立的新對象)。固然訪問時要改變值的話,須要@public公開。
函數前面的減號(-)表示對象方法,-(void)setNumber:(int)num;能夠使用類屬性,可是須要實例化;main中需新建對象,才能夠調用。
函數前面的加號(+)表示類方法,+(void) setStudent;不能夠使用類屬性,也不須要實例化;main中能夠直接調用,無需新建對象。
二.經過對繼承的學習,瞭解其能夠減小累贅性。
對於兩個類似的類,能夠定義他們的父類。只需對父類一次定義,子類無需再定義就能夠經過調用父類實現其所需。在重寫時,輸出的是子類的內容,若子類與父類的名不一樣不能重寫,一個有參數一個無參數,還需子類在其接口進行聲明。子類不能繼承父類中做用域限定符爲@private 的成員變量。子類能夠重寫父類的方法以及命名與父類同名的成員變量。安全

三.複合、多態函數

對象間的組合叫作複合。複合是經過包含實例變量的對象指針實現的。NSLog()能夠使用%@格式符來輸出對象。 關鍵字self和super。self:[self 方法名]調用本類的方法。super:[super 方法名]在子類調用父類被覆蓋的實例方法,這樣既能夠重寫,又能調用父類的方法。學習

多態,父類的指針類型指向子類實例化對象:父類名*對象名=[子類名 new] (實例化子類)spa

 [對象名 子類方法名] (調用)。.net

相關文章
相關標籤/搜索