在Objective-C中,咱們能夠用new簡單的代替alloc init,咱們今天介紹的是相似於new這種簡易用法的另外一種OC特性,用@property,@synthesize來代替get,set方法,用起來很簡單,能夠省掉不少的代碼量,當須要用SET,GET方法的地方,咱們能夠用@property,@synthesize來簡單的代替,這時系統會自動給咱們生成該變量的set,get方法,@property對應方法的聲明部分,@synthesize對應方法的實現部分。java
這時系統會自動生成age,height的set,get方法,能夠直接使用,那還有一種狀況,若是我只想讓age有get方法,沒有set方法怎麼辦,也就是說在初始化裏給一個默認值,而這個值只能被調用,不能被修改,用@property這種方式能夠嗎?答案是確定的,由於@property給咱們提供了相似參數的一種可選項,關鍵詞是readonly,readwrite,分別對應着只能讀不能修改和讀寫都可,通常咱們不設置readwrite,由於默認就是讀寫狀態。看代碼:objective-c
Object-C中方法的概念和Java同樣,Object-c中有兩種方法—實例方法(須要實例化才能調用的方法)和類方法(類方法也能夠說是靜態方法,參照Java中的靜態方法)。blog
聲明實例方法須要在減號字符(-)做爲前綴。聲明類方法須要使用加號字符(+)做爲前綴。 在Object-c中方法須要在頭文件中聲明,方法聲明示例: get
#import <Foundation/Foundation.h>
@class AnotherClass;
@interface TestClass : NSObject { it
int age;
NSString *name; io
}class
-(void) doMethod1;
-(void) doMethod3: (NsString *)str withAnotherPara:(float) value;
+(void) doMethod4; import
-(void) doMethod2: (NSString *)str; 變量
@end
方法實現示例:
#import 「TestClass.h」
@implementation TestClass
-(void) doMethod1{
--(方法主體)--
}
-(void) doMethod2:(NSString *) str{
--(方法主體)--
}
-(void) doMethod3:(NSString *) str withAnotherPara:(float) value {
--(方法主體)--
}
+(void) doMethod4 {
--(方法主體)--
}
調用方法示例:
TestClass *justTest =[TestClass alloc];
[justTest doMethod1];
[justTest doMethod2 : @」Holle Xiaming」];
[justTest doMethod3 : @」Holle xiaming」withAnotherPara:1.0f];
//類方法可直接使用類名調用//
[TestClass doMethod4];