张运涛

c++

   :: 首页 :: 联系 :: 聚合  :: 管理

常用链接

留言簿(4)

搜索

  •  

最新评论

#import <Foundation/Foundation.h>

@interface ClassA : NSObject
{
    
int x;
}


@property 
int x;    //用编译器的方法实现存取器

/* 自定义实现存取器方法声明
-(void)setX:(int)num;
-(int)x;
*/

/*重载dealloc函数.
 要释放成员变量所占用的内存,应该重载dealloc函数,
 而不是release函数,release函数通过掉用dealloc函数完成清理工作.
*/
-(void)dealloc;


/*重载init函数.
 
*/
-(id)init;


@end
@implementation ClassA

@synthesize x;        
//用编译器的方法实现存取器

/* 自定义实现存取器方法定义
-(void)setX:(int)num
{
    x=num;
}

-(int)x
{
    return x;
}
*/

-(id)init
{
    self
=[super init];
    
    x
=100;
    
return self;
}

-(void)dealloc
{
    NSLog(
@"Dealloc called");
    [super dealloc];
}
@end


int main (int argc, const char * argv[]) {
    NSAutoreleasePool 
* pool = [[NSAutoreleasePool alloc] init];

    ClassA 
*pa=[[ClassA alloc] init];
    
/*存取器使用方法一
    pa.x=5;
    NSLog(@"pa.x=%i",pa.x);
    
*/
    
    
/*
    存取器使用方法二
    [pa x:5];
    NSLog(@"pa.x=%i",pa.x);
    [pa release];
    
*/
    
    
/*
    使用id来操作对象指针pa
    id value=pa;
    NSLog(@"pa.x=%i",[value x]);
    
*/
    
    
/*
    RTTI练习
    if ([pa isMemberOfClass:[ClassA class] ]==TRUE) {
        NSLog(@"pa is a instance of classA");
    }
    
    if([pa respondsToSelector:@selector(draw)]==TRUE)
        [pa draw];
    else
        NSLog(@"pa hasn't the fun of draw!");
    
*/
    
    
/*
    异常处理练习
    @try {
        [pa draw];
    }
    @catch (NSException * e) {
        NSLog(@"Caught %@%@",[e name],[e reason]);
    }
    @finally {
        NSLog(@"Here");
    }
    
*/  

    [pool drain];
    
return 0;
}
posted on 2010-07-23 16:10 张运涛 阅读(154) 评论(0)  编辑 收藏 引用 所属分类: iphone

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理