和我一起學習OC吧

2021-06-19 09:20:20 字數 1791 閱讀 5380

oc基礎

xcold中.m檔案包含了oc**,由oc編譯器處理,c編譯器處理.c檔案,c++編譯器處理.cpp檔案

import和include的區別是確保檔案製備包含一次

#import告訴編譯器檢視fundation框架中的fundation標頭檔案,框架是乙個技術的集合體,包括標頭檔案庫,影象和聲音,包含十個甚至上百個頭檔案,但是每個框架都有乙個主標頭檔案,包含了這個框架中所有的標頭檔案

nslog(@「hello o.c」);相當於c中的printf輸出語句,@告訴編譯器雙引號中的字串要當做nsstring處理,

相關術語 

1 類:類是一種結構體,表示物件的型別

2 物件:物件是一種結構,包括資料和指向其父類的指標(也稱訊息)

3 訊息:告知物件要執行什麼操作

4 方法:是物件要執行操作的**

inte***ce部分 

在建立類的時候,編譯器需要有關類的一些資訊,inte***ce可以完成該任務

@inte***ce circle : nsobject   定義乙個類,類的名稱是circle,父類是nsobject     

類的例項變數

-(void) setfillcolor:(shapecolor )fillcolor; 定義了撒個例項方法,

-(void) setbounds:(shaperect) bounds;  在這裡叫做方法宣告

-(void) draw;

@end

@implementation   指令,告訴編譯器將為某個類提供**

(void) setfillcolor :(shapcolor) c  重新定義方法

fillcolor = c;                   c為新的引數名

-(void)setrect:(shaperect) b

bounds = b;

- (void) draw 

nslog(@「drawing a circle in (%d %d %d %d) in %@

」,bounds.x,bounds.y,bounds.width,bounds.height,colorname(fillcolor));

@end

例項化物件

當我們建立可愛你的圖形,如紅色的圓形和綠色的矩形,專業術語是例項化,例項化物件時需要分配記憶體空間,然後被初始化為一些預設值不同於剛分配空間時的一些隨機值,分配空間結束和初始化後,就建立了乙個新的物件例項。我們可以通過向類傳送乙個new訊息來建立乙個新的物件

在處理物件和類之間的關係時,要注意兩個關係繼承和復合

繼承繼承可以減少大量的重複**多次出現,避免在修改的時候忘記某一處的修改而導致奇怪的bug,

通過繼承可以實現如下的轉變

circle和

rectangle

是shape

的子類,繼承了

shape

父類的

fillcorlor和

bounds方法

相關術語

超類(父類):是所繼承的類

子類(孩子類):實施繼承的類

改變方法的實現需要重寫父類的方法,

方法排程的機制

當**傳送訊息的時候,將在當前類中進行查詢相應的方法,如果排程程式無法在當前類中找到該方法,就會到該物件的超類中查詢,

例項變數

建立乙個新的物件時,物件要先繼承來自父類的例項變數,然後才可以新增自己的例項變數

每個方法呼叫都會有乙個self

指標,指向訊息接受物件

super關鍵字

為了呼叫父類的方法要用super

作為方法呼叫的目標

一起學習程式設計吧

第一次寫部落格 我的程式設計之路 學習程式設計是個堅持而又長遠的路,合適的方法和習慣將讓你走的更平坦,下面就談談我的感想吧!1.目標 不管做什麼都會事先定乙個目標,程式設計也是得有自己的目標,比如以後想幹什麼,具體做什麼,想學哪門語言,程式語言有多種,不在乎多在於精,計算機語言都是相通的,精通一門語...

和我一起創業 規則

我是一名優秀的計算機軟體專家,擁有系統分析師證書。在我得創業聯盟中如果有 一名有資格的市場經理人,一位出色的ui設計師,這個聯盟將可以緊密地結合在一起,並產生創收。如果您是這樣2種人,那麼和我聯絡吧。1 我們每人初期以專業技術入股,分別佔1 3的股權。按照900股計算。每人300股。2 第乙個專案之...

和我一起學Flask ORM

from sqlalchemy.ext.declarative import declarative base engine create engine db url base declarative base engine 1,用base 類作為基類來寫自己的orm類 要定義tablename類屬...