Objective C筆記(第一天)

來源:互聯網
上載者:User

標籤:style   io   ar   color   os   使用   sp   on   檔案   

• OC語言概述

1.早在20世紀80年代早期,Bard Cox發明了Objective C, 是擴充的C,物件導向的程式設計語言。

2.NEXTSTEP簡稱NS

a.1985年,Steve Jobs成?立了NeXT公司。

b.1988年,NeXT SoftWare公司獲得了OC的語言授權, NEXTSTEP環境成為了蘋果作業系統,建立的開發包。MACOS

c.1996年,12月20?日,蘋果公司宣布收購了NeXT software公司,NEXTSTEP環境為apple公司下主要開發、發?行作業系統OSX的基礎,這個開發環境的版本被蘋果公司命名為 Cocoa(可可)架構

NSString NS=NEXTSTEP

3. Cocoa架構

a.Cocoa是蘋果公司為MAC OS X所建立的原生物件導向編程環境。

b.Cocoa應用程式一般在蘋果公司的工具xcode上用 Objective C編寫的。

c.使用Cocoa編程環境開發的應用程式叫Cocoa應?用。 app->application->應用程式

Cocoa Touch架構 ->Ctapp

d.Cocoa架構主要由兩部分組成,Fundation架構和 Application Kit架構。

e.Fundation架構,基礎架構,包括:字串、數字、數組、字典、集合等

#import <Foundation/Foundation.h>

f.Application Kit架構,應用程式工具箱,它包括了實現程式圖形、事件驅動和使用者介面的全部對象,視窗、對話方塊、按鈕、 菜單、捲軸、文字框等,而且這個列表還在不斷的添加。  

4.IOS

蘋果公司硬體上的一個作業系統,蘋果公司可攜式裝置上的作業系統。在2007年1月9日,MacWorld大會上公布的這個系統, 最初設計給iphone使用的,後來陸續用到ipodtouch、ipad、 apple TV等蘋果產品。  

 

• 文法格式區別

 

1.以前在C語言中使用的include現在換為import,作用和C語言include相似的,必須換為import,且支援避免重複匯入的問題。

2.以前在C語?中使用的printf函數來進行資料的輸出、列印, 現在換為NSLog函數,日誌輸出,注意輸出字串資訊的時候, 要在上面加上@,不需要使用\n作為分行符號。  

3.在編譯的時候,gcc雖然可以編譯,但是不支援OC的新文法,源檔案由原來的.c檔案,變為.m檔案了。

4.在編譯時間,使用新的編譯命令clang,編譯連結時,需要指定使用的架構(庫)。

clang -framework Foundation main.m

5.編譯後依然產生了a.out?檔案,可以使用./a.out來運行程式。

• include與import 

#import <>或""和#include<>或""的區別,objc中所有得檔案包含指令都使用#import<>或#import ""來實現,可以避免標頭檔被重複包含,自動剔除重複的標頭檔,如果要使用 #include<>或""需要通過#ifndef條件編譯來實現。

• 邏輯資料類型BOOL

a.bool b1 = false;//true 1,flase 0

b.BOOL b2 = YES;//YES 1,NO 0

 

物件導向概念     

•  什麼是物件導向程式開發

1.面向過程  資料結構 + 演算法

2.物件導向  屬性 + 行為

•  為什麼使用物件導向的編程思想

使用物件導向的編程思想,可以大大的降低企業專案的開發週期和成本,提高了開發的效率,以及代碼的複用性,大大的降低 了開發的難度。提高了代碼的可讀性以及可維護性。 

•  對象

Anything is Object.萬物皆對象。 現實中的對象是?種客觀存在, 程式中的對象是?片記憶體中的資料。

•  現實中的對象  

現實中的學生對象  

有什麼?姓名、年齡  能幹什麼?學習  

屬性(成員): age,name

方法(函數)study() 

用解決現實中的問題的?法,來解決電腦問題。

• 什麼是類 

具有相同屬性和方法的同一類元素的總稱。 

類是一個抽象的概念,比如:人類 動物 蔬菜 水果 汽車, 區分類還是一個對象時,看它能否繼續被細分。對象就是不能繼續被細分的。類是就是現實事物的一個抽象。 

設計(圖紙)(夢想中)---工廠生產--->手機(現實)

代碼(檔案)---執行載入--->記憶體(資料)  

類 ---執行個體化 --->對象  

•  定義類的文法格式 

設計類Student 代碼存在檔案中,OC class。 一個類是由兩個部分組成的 *.h?檔案和*.m?檔案

1).h檔案定義類的interface部分(聲明)

@interface Student : NSObject

@property int age;//聲明屬性! 

-(void)study;//聲明?方法!

@en

2).m?檔案定義類的implemention部分(實現)

@implementation Student//方法的定義、實現!

 -(void)study{

"NSLog(@"學生執行了study方法");

}

@end

 

.什麼是對象

對象就是類在記憶體中的一個執行個體。對象就是類的一個具體對象。 不可細分,代表著某一個具體的東西。

•  將類執行個體化變為對象

1)main.m?件中的->main函數(程式?口)執行程式

2)能過類發送alloc,通過一個類建立對象,通過stu變數(*stu),找到記憶體的對象。

3)可以向對象發送訊息(函數),此時對象就會響應訊息,執行方法。

4)對象如果有屬性,對象.屬性 = 值,給對象的屬性賦值 

.方法

•  什麼是方法  對象可以幹什麼,有什麼功能。

•  方法與函數區別 

函數只是一個程式的程式碼片段,與類無關係。

方法是類的一部分,代表對象可以幹什麼。

正常來講,類必須執行個體化,方法才可以使用,執行個體方法調用方法時,也叫做向對象發送訊息。

•  方法命名 文法格式與函數非常相似,但截然不同。使用方法時,在.h?檔案中聲明,在.m檔案中實現。

-(傳回值類型) 方法名; //無參的方法 

eg:-(void)method;

•  方法的參數  

-(傳回值類型) 方法名:(參數類型)參數名;//有參的方法

eg:-(void)method3:(int)num;

-(傳回值類型) 方法名:(參數1類型)參數名1 :(參數2類型)參數名2 :(參 數n類型)參數名n;//多參的方法

eg:-(void)method4:(int)arg1 :(int)arg2;  注:“:”符號也是方法名的?部分  

•  方法的參數

-(傳回值類型) 部分方法名:(參數1類型)參數名1 部分方法名2:(參數2類型)參數名2 部分方法名n:(參數n類型)參數名n; 部分方法名起到提示作用,並不影響程式的執行

eg:-(void)printInfoWithAge:(int)age!

                    andGender:(char)gender!

                     andSalary:(double)salary;  

 

方法的傳回值

與C語言中的函數傳回值使用方式一致。

• 公有方法與私人方法  

在.h檔案中聲明的方法,並且在.m檔案中實現就是公有方法。 

在.h檔案中未聲明的方法,並且在.m檔案中實現就是私人方法。

 

執行個體變數    

• 什麼是成員變數與執行個體變數

 在類中聲明的變數就是成員變數。類執行個體化變為對象,此時成員變數也就變為執行個體變數。 一個對象會有自己獨特的資料和別的對象不同,這些資料會保 存在一些特殊的變數中,這種變數叫執行個體變數。類的每個執行個體(對象)都有一份。   類對象(執行個體)(引用) 

記憶體中沒有                     記憶體中有 

成員變數                       執行個體變數 

成員方法                       執行個體方法 

• 定義變數 在.h檔案中,使用{}括起來的地區聲明,類型C語言的變數聲明。

• 公有變數與私人變數 在.h檔案中聲明的變數為公有變數,在.m檔案中聲明的變數為私人變數

 

Objective C筆記(第一天)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.