類和物件
世間一切東西都可以當作物件.
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 返回值一...