国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

OC--面向對象

2019-11-06 06:03:49
字體:
來源:轉載
供稿:網友

在前面幾篇文章,大致介紹了一下C語言,因為這次的整理的目的主要還是iOS開發,所以關于C語言的知識并不多,但是也都是我在工作中使用到的,而且是需要注意的東西。以后的文章就是OC和iOS開發的文章了。

好了,廢話不多說,下面開始新的篇章--OC(Objective-C)。

OC被翻譯成類C,是擴充C的面向對象編程語言。在這里有一個面向對象的概念,在剛開始接觸java的時候,被提到過面向對象,當時不能很好的理解面向對象到底是什么意思,它和C語言的面向過程到底不同在何處。但是,就在很久以前的一個java for Android的視屏中,終于理解了什么是面向對象。

在面向對象的語言中,有兩個關鍵詞:類和對象。

類是一類相同事物的總稱,對象是一類事物中的一個個體。在現實生活中也是這樣,比如,dog是一類,你家的dog小花就是個體。而面向對象的編程語言,其實就是對這些對象(個體)進行操作的語言。

我記得當時在視屏中,給講到了一句話,“這個世界就是一個面向對象的世界,當你遇到任何一個事物的時候,去想和他的關系,去想這個事物的特征,這樣有助于更好的理解面向對象”,我也一直是在思考這個問題,比如,我現在進入一間房子,那么我會想房子和我有什么關系,這個房子有什么特征。下面,我們就來分析一下。

一般來說,房子都有門,有燈,當然也有開關,我們就拿這個簡單舉例。這三點算是房子的特征。那么,有這樣3點特征的,我們就可以給它歸于一類,也就是House類。我們進入的某一個房子也就是這個House類的一個個體,當我們開門的時候,就是使用了這個個體的開門這個動作。當我們打開燈的時候,這個房子的燈也就出于了亮著的狀態。這就是面向對象。我們操作的不是類,而是類中的一個對象,我們使用對象的方法去完成操作,從而改變對象中一些屬性的狀態。

下面我們用一個示例來體現一個面向對象。

示例:有Dog類,dog的屬性有性別(sex)、年齡(age)、名字(name),dog的行為有吃飯(eat),溜達(walk)。

創建項目:我是使用Xcode演示的代碼

打開Xcode,創建一個項目在選擇template的時候選擇macOS下的Command Line Tool,點擊next輸入項目名稱,再將language選成objective-C就創建了一個OC項目了。

然后,我們創建一個Dog類(新建一個cocoa Class文件),并給Dog類添加sex、age、name這3個屬性,在添加eat、walk這2中行為。

在Dog.h文件中添加屬性和方法:

@interface Dog : NSObject

//Dog的3個屬性

@PRoperty (nonatomic,copy)NSString *sex;//性別

@property (nonatomic,copy)NSString *age;//年齡

@property (nonatomic,copy)NSString *name;//名字

//Dog的2種行為

- (void)eat;

- (void)walk;

@end

在添加完屬性和行為后,我們還要去實現行為,也就是讓dog‘真正’的吃起來,溜達出去。

在Dog.m文件中實現行為:

#import "Dog.h"

@implementation Dog

- (void)eat{

    NSLog(@"吃起來~~~");

}

- (void)walk{

    NSLog(@"溜達出去~~~");

}

@end

Dog這個類做好了以后,那么怎么去體現面向對象呢?很簡單,我們去引用Dog類,也就相當于先將Dog這類東西帶到我們的代碼世界里去。

在創建項目的main.m文件中引入Dog.h:

#import "Dog.h"

下面要注意了,下面就是面向對象了:

現在這個世界有Dog了,那么我想領養一只dog回家,怎么辦?那就去領養唄,該辦手續辦手續,該填單子填單子。

Dog *dog = [[Dogalloc]init];

這是OC種創建一個對象的方法。這樣辦了手續,填了單子以后,我就有了一只dog了,那么,要看看是什么性別,多大了,還要給它起個名字。

        dog.name =@"小花";

        dog.sex =@"公的";

        dog.age =@"0";

這樣領養的dog就有了名字了。我們來看看結果:

        NSLog(@"dog的名字:%@/n", dog.name);

        NSLog(@"dog的性別:%@/n", dog.sex);

        NSLog(@"dog的年齡:%@/n", dog.age);

結果:

2017-03-07 17:31:50.659 OCdemo[1216:160061] dog的名字:小花

2017-03-07 17:31:50.660 OCdemo[1216:160061] dog的性別:公的

2017-03-07 17:31:50.660 OCdemo[1216:160061] dog的年齡:0

Program ended with exit code: 0

結果出來顯示沒問題。

那么,現在我想讓小花吃點東西,然后讓它出去溜達溜達。這個時候我們就要調用dog的行為了。

        [dog eat];

        [dog walk];

結果:

2017-03-07 17:34:07.825 OCdemo[1227:160930] 吃起來~~~

2017-03-07 17:34:07.825 OCdemo[1227:160930] 溜達出去~~~

Program ended with exit code: 0

從結果來看,也是沒有問題的。

在面向對象的編程語言里,對于方法和屬性的調用,大多是通過對象調用的。還存在一些其他的方法,在以后會詳細的講解。

總之,在面向對象里,我們是使用對象去調用屬性和方法即可。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉山县| 广西| 卢氏县| 绿春县| 清流县| 昆山市| 兴安县| 海盐县| 即墨市| 宿州市| 潼关县| 深水埗区| 土默特右旗| 丰城市| 友谊县| 鹤庆县| 兴义市| 扎兰屯市| 奉节县| 安乡县| 扬州市| 怀远县| 尉氏县| 黄龙县| 自治县| 正蓝旗| 外汇| 尼勒克县| 济宁市| 永德县| 郯城县| 饶平县| 屏东市| 怀仁县| 五莲县| 体育| 遂溪县| 汉寿县| 宕昌县| 娄底市| 陆河县|