1. 程式人生 > >Objective-C學習筆記-自定義類

Objective-C學習筆記-自定義類

1.OC中一個類由.h檔案和.m檔案組成,.h檔案負責宣告介面,.m檔案負責具體實現

2.在.h檔案中@interface後面的格式為類名:基類名

3.成員變數需要寫在大括號內,最好使用下劃線開頭,使用成員變數需要寫存取方法,為了開發效率,目前推薦使用屬性代替成員變數,屬性會自動生成帶下劃線的成員變數以及存取方法,還可以通過readonly,readwrite等來控制屬性特性

4.成員方法以減號開頭,靜態成員方法以加號開頭,引數型別以及返回值型別需要用括號括起來

5.可以通過重寫description方法,讓%@能描述自身

6.OC中self代表自己,super代表呼叫父類方法

7.在.m檔案中可以使用@interface宣告一些對外不可見的成員變數和成員方法

8.OC中可以通過@public @private @protecte等修飾成員變數,但是不能修飾成員方法

#import <Foundation/Foundation.h>

@interface MyDesktop : NSObject
{
    @public
    int _weight;
    int _height;
}
-(int)height;
-(void)setHeight:(int)h;
-(int)weight;
-(void)setWeight:(int)w;
-(void)setCustomSize:(int)newSize;

+(void)sayHello;

@property(nonatomic,readonly) int size;
@end
#import "MyDesktop.h"
//類擴充套件
@interface MyDesktop()
@property(nonatomic)int childCount;
@property(nonatomic,readwrite) int size;
@end

@implementation MyDesktop

- (int)height{
    return _height;
}

- (void)setHeight:(int)h{
    _height=h;
}

- (int)weight{
    return _weight;
}

- (void)setWeight:(int)w{
    _weight=w;
}

-(void)setCustomSize:(int) newSize{
    self.size=newSize;
}

- (NSString *)description
{
    return [NSString stringWithFormat:@"height=%d,weight=%d,size=%d,childcount=%d", _height,_weight,_size,_childCount];
}

+(void)sayHello{
    NSLog(@"hello world");
}
@end