天天看點

OC開發日記02-類和對象今天主要來分析一下OC的類和對象

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

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

    我們知道,C語言和OC語言最大的差別在于,一個是面向過程的語言,一個是面向對象的語言。

    兩者的概念分别是:

面向過程的語言就是分析出解決問題所需要的步驟,然後用函數将這些步驟一步一步的實作,使用的時候一個一個一次調用就可以了。

面向對象的語言時把構成問題的事務分解成各個對象,然後協調各個對象之間的聯系和通訊,建立對象的目的不是為了完成一個步驟,而是為了描述某個事物在整個解決問題的步驟中的行為。

而OC作為一個面向對象的語言,是以功能來劃分問題而不是步驟,比如同樣是繪制一個五子棋程式,如果要加入一個悔棋的功能

,OC隻需要對規則系統以及棋盤對象進行調整,而不需要去大幅度改動程式。

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

    oc語言的特點(p4):

    oc語言是c語言的超集

    oc語言具備完善的面向對象的特征

    oc有個運作時系統(runtime)

    OC開發日記02-類和對象今天主要來分析一下OC的類和對象
    OC開發日記02-類和對象今天主要來分析一下OC的類和對象

    建立類我們可以通過command鍵加n鍵選擇第一個來快速實作

    頭檔案要用雙引号引入自定義的類檔案。

    OC開發日記02-類和對象今天主要來分析一下OC的類和對象
    這是一個聲明檔案的例子
```
#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
           

這是一個實作檔案的例子

OC開發日記02-類和對象今天主要來分析一下OC的類和對象
//@implementation 和 @end  實作檔案的開始和結束,在其中實作接口檔案中聲明的方法。
@implementation student
-(void)sayHello{
    NSLog(@"Hello everybody!!!");

}
-(NSString *)eatlunch{
    if(_age < ){
    //    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
           

繼續閱讀