Objective C筆記(第一天)

• OC語言概述算法

1.早在20世紀80年代早期,Bard Cox發明了Objective C, 是擴充的C,面向對象的編程語言。編程

2.NEXTSTEP簡稱NS數組

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

b.1988年,NeXT SoftWare公司得到了OC的語言受權, NEXTSTEP環境成爲了蘋果操做系統,建立的開發包。MACOS數據結構

c.1996年,12月20⽇日,蘋果公司宣佈收購了NeXT software公司,NEXTSTEP環境爲apple公司下主要開發、發⾏行操做系統OSX的基礎,這個開發環境的版本被蘋果公司命名爲 Cocoa(可可)框架app

NSString NS=NEXTSTEP框架

3. Cocoa框架iphone

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文件中聲明的變量爲私有變量

相關文章
相關標籤/搜索