OC開發日記02-類和對象

今天主要來分析一下OC的類和對象

  • 面向過程的語言和麪向對象的語言

    我們知道,C語言和OC語言最大的區別在於,一個是面向過程的語言,一個是面向對象的語言。
    兩者的概念分別是:

面向過程的語言就是分析出解決問題所需要的步驟,然後用函數將這些步驟一步一步的實現,使用的時候一個一個一次調用就可以了。
面向對象的語言時把構成問題的事務分解成各個對象,然後協調各個對象之間的聯繫和通訊,建立對象的目的不是爲了完成一個步驟,而是爲了描述某個事物在整個解決問題的步驟中的行爲。

而OC作爲一個面向對象的語言,是以功能來劃分問題而不是步驟,比如同樣是繪製一個五子棋程序,如果要加入一個悔棋的功能
,OC只需要對規則系統以及棋盤對象進行調整,而不需要去大幅度改動程序。

  • OC類的使用以及對象的使用

    oc語言的特點(p4):

    oc語言是c語言的超集
    oc語言具備完善的面向對象的特徵
    oc有個運行時系統(runtime)
    這裏寫圖片描述
    這裏寫圖片描述
    新建類我們可以通過command鍵加n鍵選擇第一個來快速實現
    頭文件要用雙引號引入自定義的類文件。
    這裏寫圖片描述
    這是一個聲明文件的例子

```
#import "<#header#>"  //導入自定義類的頭文件
 #import<header>   //導入ios框架類庫裏類的頭文件

創建成功後,我們會發現,類分爲一個聲明文件和一個實現文件,聲明文件用於聲明類裏面的對象以及類裏面的相關方法

@interface student : NSObject  //在oc中繼承的語法“類名:父類名”
{
    //成員變量
    //用來定義類的屬性
    @public
    NSString *_name;
//    @protected
    NSInteger *_age;
    @private
    NSString *_hobby;
    @protected
    NSString *_address;
    /*
     屬性的作用域
     @public   公開的,任何類的方法都可以訪問
     @protected 受保護的,只有類本身和類的子類可以訪問
     @private  私有的,只有類的本身可以訪問
     */
}
//方法聲明
/*
 減號(-)表明了該方法是實例方法,類方法則用加號(+)。
void表示無返回值類型,其他的類型還有
        NSString、NSInteger,CGFloat、、、
 */
-(void)sayHello;
-(NSString *)eatlunch;
+(NSString *)playGame;
@end

這是一個實現文件的例子
這裏寫圖片描述

//@implementation 和 @end  實現文件的開始和結束,在其中實現接口文件中聲明的方法。
@implementation student
-(void)sayHello{
    NSLog(@"Hello everybody!!!");

}
-(NSString *)eatlunch{
    if(_age < 18){
    //    return @"今晚有空喫飯嗎";
        return [NSString stringWithFormat:@"%@小姐,今晚有空喫飯嗎",_name];
    }
    else{
        return [NSString stringWithFormat:@"%@小姐,今晚我沒空喫飯",_name];
    }
}
+(NSString *)playGame{
    return @"play lol";
//    if( _hobby ==game){
//        return [NSString stringWithFormat:@"%@小姐,看來你也是一個愛玩遊戲的人",_name];
//    }
//    else{
//        return[NSString stringWithFormat:@"%@小姐,看來你是一個認真學習的人",_name];
//    }
}
@end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章