1. 程式人生 > 實用技巧 >object-c 學習總結

object-c 學習總結

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    @public
    NSString *_name;
    BOOL _gender;
    @private
    NSInteger _age;
    CGFloat _height;
    CGFloat _weight;
}
-(id)init;
-(instancetype)initWithName:(NSString*)name andGender:(BOOL)gender;
-(NSInteger)adder:(NSInteger)x :(NSInteger)y;
-(void)setName:(NSString *)name; -(void)setAge:(NSInteger)age; -(void)setName:(NSString *)name andAge:(NSInteger)age; -(void)setName:(NSString *)name :(NSInteger)age; +(void)eat; -(void)sing; -(void)printInfo; @end @implementation Person -(id)init{ _name=@"王五"; _gender=NO; _age = 18; _height
= 1.80; _weight = 78; return self; } -(instancetype)initWithName:(NSString *)name andGender:(BOOL)gender{ _name = name; _gender = gender; return self; } -(NSInteger)adder:(NSInteger)x :(NSInteger)y{ NSLog(@"%ld",x+y); return x+y; } +(void)eat{ NSLog(@"吃吃吃..."); } -(void
)sing{ NSLog(@"唱唱唱..."); } -(void)setName:(NSString *)name{ _name = name; } -(void)setAge:(NSInteger)age{ _age = age; } -(void)setName:(NSString *)name andAge:(NSInteger)age{ _name = name; _age = age; } -(void)setName:(NSString *)name :(NSInteger)age{ _name = name; _age = age; } -(void)printInfo{ NSLog(@"name:%@, gender:%@, age:%ld, height:%.2f, weight:%.2f",_name, _gender?@"female":@"male", _age, _height, _weight); } @end int main(int argc, const char * argv[]) { Person *person1 = [[Person alloc]initWithName:@"張三" andGender:0]; [person1 printInfo]; [person1 sing]; Person *person2 = [[Person alloc]init]; [person2 printInfo]; [Person eat]; return 0; }

注意:

1. 類的定義一般寫在.h標頭檔案中,類中函式的實現可以在.m檔案中個性化實現。

2. 靜態函式是所有類物件共有的一個函式,只佔用一個函式空間,可通過類名呼叫。

3. 類的init方法是初始化方法,類的例項化和c++很像,都是呼叫構造方法來實現對例項的初始化。

4. +表示靜態函式,-表示動態函式

輸出為: