天天看點

OC第一天——面向對象

1.oc: object- c ,面向對象的語言

2、oc 和 c的差別:

<1> oc是 c的超集 ,oc是在c語言的基礎上做了擴充,c語言中的所有文法,在oc中都可以使用,甚至你可以在工程裡加入c++ 語言

<2>oc在c基礎上擴充了面向對象的特點

<3>oc 是一門運作時語言

<4>oc為我們提供了豐富的類庫

3、 如何學習好oc ?

    //1.百度 (ios)

    //2.看蘋果的官方文檔(api接口網站)

    //3.看部落格

    //4.自己的錯誤總結

4、 面向對象程式設計的核心:類和對象

    面向對象程式設計的三大特征:封裝,繼承,多态

    類:具有相同特征和行為(功能)事物的抽象

 對象:就是類的執行個體化

5、 建立一個類:

    //1、通過cocoa touch class 模闆,建立類,自動生成.h 和 .m檔案

    //2、在.h 檔案中寫類的特征(執行個體變量) 和方法的聲明

    //3、在.m中寫實作部分

 ——*使用類建立對象*——

    //1、開辟記憶體空間

    //2、初始化

6、[ ]中括号調用方法

    //[person alloc] 給person 這個類發送一個消息alloc(開辟記憶體空間)

    //建立對象person1

    //每一個對象 isa指針 用來指向它的父類,之所有能夠調用父類的方法,完全是因為這個 isa  指針;

7、 初始化 如果初始化沒有指派這時預設所有的執行個體變量都為空;

                   person1 = [person1 init];

   這條語句同時完成了兩件事:開辟記憶體并初始化;

8、例子:

.h檔案:

//@interface 是接口 person 是類名    :繼承自誰 nsobject 是所有oc類中的基類

//---------------------------person類的建立對象的特征---------------------

@interface person : nsobject

//特征一定要寫在下面那對大括号裡面

{      @public    //執行個體變量對@public 修飾後的就能在類的外部通路到這些執行個體變量了;

    //類的外部指:.h 和.m 之外的其他檔案就叫類的外部

    //類的内部指:.h 和.m 檔案之内

    //nsstring 是oc中字元串類

               nsstring *_name;//姓名nsstring 不是基本資料類型,是以定義它需要加*

              nsinteger    _age;//年齡nsinteger 是基本資料類型,是以定義變量時不需要加*号

               nsstring *_sex;//性别

// ----------------------------persson類型建立出對象所擁有的行為----------

//行為的聲明部分

//用 (減号)(- )号 修飾的方法屬于對象方法,這個方法隻能有我們定義這個類的建立出來對象來調用

//用加好(+)修飾的方法屬于類方法,這這方法隻能有類來調用

- (id)init;//重寫inint寫法

- (void)sayhello;//小駝峰命名法

- (void)eat;

//添加一個帶參數的方法

//一個冒号:代表一個參數

//寫一個帶有參數的方法時格式<    :(資料類型)參數名   >

- (void)talk:(nsstring *)content;     //隐匿有參數資料類型

- (void)talk:(nsstring *)content withsonmeone : (nsstring *)name;

@end

————————————————————————

.m檔案:

/@implementation 是類的實作部分

@implementation person

//id 範類型,傳回值可以指向任何類型的對象   類似于void *  ;

- (id)init{—————————賦給初始值————————

   _name = @"翔哥";

   _sex = @"妖";

    _age = 18;

    //列印self位址

    nslog(@"self位址:%p",self);

    //誰調用這個方法self 指的就是誰

    return self;

————————————————————————————————————

main.m  檔案:

 person *p = [[person alloc]init];

    //調用sayhello的方法

    [p sayhello];

    p->_name = @"zhangsan";

    p->_age = 18;

    p->_sex = @"妖";

    //調用吃得方法

    [p eat];

轉自:http://blog.csdn.net/qq_31810357

繼續閱讀