OC物件和屬性

2021-07-04 03:04:25 字數 1903 閱讀 6631

類和物件

世間一切東西都可以當作物件.

c中的資料型別有:int,float,double,char等等.

類是物件的型別.

封裝:物件中包括屬性和方法,用屬性和方法共同體現物件的特性,稱為封裝.

oc的基本資料型別有:nsinteger(整型),nsuinteger(無符號整型),cgfloat(浮點型),char(字元型),nsstring(字串),nsarray(陣列).

書寫格式:類名首字母大寫,方法名首字母小寫,其他單詞的首字母大寫,如student(類),getcompanyaddress(方法).

oc檔案中分為兩部分:@inte***ce,@implementation

建立類和方法:

@inte***ce student :nsobject

-(void)sayhello; //-表示例項方法

#import 「student.h」//引用student類標頭檔案

@implementation student }

//在@implementation中可以定義沒有在@inte***ce中定義的方法,但只能在@implementation中使用.

建立物件和使用,方法的使用:

#import < foundation/foundation.h>

#import 「student.h」

int main(int argc,const char *argv) }

類方法的定義和使用:

+(void)類方法名

[類名 類方法];//類方法外使用類方法

物件初始化:

1.直接初始化:如上面的例子

2.重寫init方法

-(id)init

3.設定器和訪問器

很多情況下,屬性的型別都不是public,而是protected(可在類和子類中使用屬性)或private(只能在類中使用屬性),這樣就不能用上面的方法對屬性進行初始化了.注釋@public(預設為protected),新增設定器和訪問器.

在@inte***ce中新增

-(void)setname:(nsstring*)newname;

-(nsstring*)getname;

在@implementation中新增

-(void)setname:(nsstring*)newname

-(nsstring*)getname

在main.m中使用

student *stu=[student new];

[stu setname:@」劉三姐』];//setter

nsstring *str=[stu getname];//getter

nslog(@」%@」,str);//間接對name賦值並使用

設定器和訪問器的改進:

在@inte***ce中新增@property (nonatomic,copy) nsstring *name;//屬性的定義可省略了,setter和getter自動生成,不用手動寫.如果在@implementation中使用屬性,則需要加下劃線:_name

4.便利初始化函式

形式:

宣告:

@inte***ce

-(id)initwith…….(自己命名):(nsstring *)aname andage:(nsinteger)aage//包含兩個屬性

使用:

@implementation

-(id)initwith…….:(nsstring *)aname andage:(nsinteger)aage

//if(…)…

return self;

} main.h

student *stu=[[student alloc]initwith……];

OC 的 Runtime 動態獲取物件屬性

執行時是 oc 的核心,其特點就是程式在執行的時候,以傳送訊息的形式呼叫方法.在實際開發中,關於執行時方面的運用點,其實並不多,最常用的也無非是動態獲取物件的屬性.示例 1.新建乙個繼承自nsobject 的物件,在.h 檔案宣告2個屬性 import inte ceperson nsobject ...

OC 物件導向,類和物件

面向過程,c語言是一門面向過程語言,關注的是如何解決問題,需要哪些步驟 物件導向,oc是一門物件導向語言,關注的是解決問題需要哪些物件。可以對類進性操作也可以對物件進行操作,即方法,同乙個方法可以應用於不同多個物件。classorinstance method 對類和例項應用方法 inte ce 部...

在oc語言中物件物件屬性的封裝

import 列舉 typedef enum inte ce student nsobject set方法 1.作用 提供乙個方法給外界設定成員變數值,可以在方法裡面對引數進行相應過濾 2.命名規範 1 方法名必須以set開頭 2 set後面跟上成員變數的名稱,成員變數的首字母必須大寫 3 返回值一...