Objective C知識點總結

2021-10-22 10:39:01 字數 3737 閱讀 6214

/*1.類是一組具有相同特性和行為的某一類事和物的集合.

2.物件是類的例項化.

3.計算機語言的目的:模擬和解決生活中的問題.

4.#include和#import的區別?

答:(1)#import是oc中匯入標頭檔案的關鍵字,而且只需匯入一次就行.

2)#include是c\c++匯入標頭檔案的關鍵字,include匯入標頭檔案容易引起交叉編譯.

5.建立物件的語法:

1)類名 *物件名 = [[類名 alloc]init];

2)類名 *物件名 = [類名 new];

6.oc中的方法:(減號為例項方法,加號為類方法)

返回型別)方法名 : 引數列表

方法體 (1) 器就是方法的意思;(2)void意思是無返回值;student為類名,意思為有student型別的返回值

3)with後面的name是屬性的名稱,newname是屬性name的引數名稱

初始化器:-|+(student *)initwithname:(nsstring *)newname{

self = [super init];//繼承父類nsobject的init(初始化)方法

self->name=newname;

return self;

便利構造器:-|+(student *)studentwithname:(nsstring *)newname{

student *student = [[student alloc]init];//例項化變數student

= newname;

return student;

7.屬性

inte***ce

property(nonatomic,retain)nsstring *name;(宣告)

等價於:(setter方法:設定器)

void)setage:(int)newage{

age = newage;

implemention

synthesize name;(合成)

等價於:(getter方法:訪問器)

int)getage{

return age;

8.點語法

1)"liming";

等價於:

stu setname:@"liming"];

2)nslog(@"%@",[

等價於:

nslog(@"%@",[stu getname]);

9.property有關語法

1)readwrite 是可讀可寫特徵;需要生成getter方法和setter方法.

2)readonly 是唯讀特性只會生成getter方法不會生成setter方法.

3)assign 賦值特性,setter方法將傳入引數賦值給例項變數.

4)retain 表示持有特性,setter方法將傳入引數先保留,再賦值,並且變數retaincount+1;

5)copy 通過copy將物件複製乙份,之前的物件會釋放.

6)nonatomic 表示單執行緒安全.

7)atomic 表示多執行緒安全.

10.變數作用域

1)@protected 表示只有該類和其子類可以訪問該類的變數.

2)@public 表示無論是自身還是子類的物件,還是其它型別的物件均能訪問該類的變數.

3)@private 表示只有該類本身的物件可以訪問該類的變數.

11.物件導向三大特徵:

1)封裝:隱藏內部實現,穩定外部介面.

2)繼承:子類繼承父類的所有非私有的方法和屬性.

3)多型:不同型別的物件,對同一方法名的不同響應.

注意:要點一:oc中不允許多繼承(乙個類有多個父類),但允許多重繼承(乙個類的父類也擁有其自身的父類).

要點二:乙個類呼叫方法時,先從本類方法找,找不到再從父類找,一直往上直到找到nsobject類中.

12.self:是指向當前物件的指標.

super:呼叫父類的方法.

id:是乙個指向任何乙個繼承了nsobject類的物件.

13.開閉原則和黎克特制替換原則

1)開閉原則(ocp open closed principle):

核心是:對擴充套件開放,對修改關閉.改變乙個軟體時,應該通過擴充套件的方式來改變軟體,而不應該修改原有的**來實現變化.

2)黎克特制替換原則(lsp liskov substitution principle):

is a)原則:任何基類可以出現的地方,子類一定可以出現.

a.繼承必須確保超類所擁有的性質子類中仍然成立.

b.子類物件總是可以替換父類物件.

14.記憶體管理

1)**法則:凡是物件使用了alloc,new,copy和retain,那麼必須有相對應的release和autorelease.

引用計數機制:物件建立後,執行時系統通過物件維護的乙個計數器來描述有多少個其他物件在使用自己,當計數器為0時,釋放該物件占用的記憶體空間(該物件呼叫dealloc方法)。

2)淺複製:指標拷貝,只複製指向物件的指標,拷貝後原來物件的引用計數會+1.

深複製:物件拷貝,複製引用物件,重新開闢一塊記憶體,原來物件的引用計數不變.

3)oc採用的是引用計數機制管理物件所佔的記憶體.

4)arc(automotic reference counting)自動引用計數:

它會自動加入記憶體的控制**,控制物件的生命週期.隱式的管理記憶體,編譯器會在適當的地方自動插入retain,release和autorelease訊息.

arc新特徵:增加了豎向定義關鍵字,用strong代替retain,用weak代替assign.

5)釋放記憶體是dealloc.

記憶體洩露的快捷鍵:command+shift+b.

記憶體洩露檢測儀:command+i.

6)//字串記憶體管理

常量字串,引用計數為-1或無窮大的數

nsstring *str111 =@"kevin";//常量字串的宣告

str111 retain];//引用計數對常量字串沒有影響

nslog(@"%ld",[str111 retaincount]);

str111 release];

用initwithstring建立字串,引用計數為-1或無窮大的數

nsstring *str2 = [[nsstring alloc]initwithstring:@"alen"];

str2 retain];

nslog(@"%ld",[str2 retaincount]);

str2 release];

str2 release];

用initwithstring建立字串,引用計數為1(符合引用計數機制)

nsstring *str333 = [[nsstring alloc]initwithformat:@"steven"];

str333 retain];

nslog(@"%ld",[str3 retaincount]);

str333 release];

str333 release];

注意:oc中的引用計數永遠不可能為0.

7)程式在記憶體中執行,分幾個區?各自用途?

答:a.棧區由編譯器自動分配釋放存放函式的引數值,區域性變數值等.

b.堆區一般由程式設計師手動分配釋放,如果不釋放可由系統釋放.

c.資料區儲存全域性和靜態變數.

d.**區存放函式體的二進位制**.

8)引用和指標的區別?

答:引用是給變數起乙個別名,也就是乙個變數有兩個名字,他們是同一塊空間.

知識點總結

網路綜合 初中二年級 八年級數學 上 應知應會的知識點 因式分解 1.因式分解 把乙個多項式化為幾個整式的積的形式,叫做把這個多項式因式分解 注意 因式分解與乘法是相反的兩個轉化.2 因式分解的方法 常用 提取公因式法 公式法 分組分解法 十字相乘法 3 公因式的確定 係數的最大公約數?相同因式的最...

知識點總結

三性質和規律 一 商不變的規律 商不變的規律 在除法裡,被除數和除數同時擴大或者同時縮小相同的倍,商不變。二 小數的性質 小數的性質 在小數的末尾添上零或者去掉零小數的大小不變。三 小數點位置的移動引起小數大小的變化 1.小數點向右移動一位,原來的數就擴大10倍 小數點向右移動兩位,原來的數就擴大1...

元素知識點總結

第四單元物質構成的奧秘 課題1 原子 1 原子的構成 1 原子結構的認識 2 在原子中由於原子核帶正電,帶的正電荷數 即核電荷數 與核外電子帶的負電荷數 數值上等於核外電子數 相等,電性相反,所以原子不顯電性 因此 核電荷數 質子數 核外電子數 3 原子的質量主要集中在原子核上 注意 原子中質子數不...