Object-C编程:类定义与实现

1.类的定义:

//文件MyClass.h

<span style="font-size:14px;">#import <Foundation/Foundation.h>

@interface MyClass : NSObject {//@interface申明一个新类 类名:基类
    
@public//公开成员变量
    
    NSString *name;//字符串成员变量声明
    
@private//私有成员变量
    
    int age;//整形成员变量
    
}

-(NSString*)getName;//定义类成员方法 - (返回类型)方法名

-(int)age;//获取age的方法,通常Object-C里面取值不用getXXX的形式,直接用XXX

-(id)initWithName:(NSString*)newName AndAge:(int)newAge;//定义构造方法 - (返回类型)方法名:(类型)参数名:(类型)参数名

+(void)className;//定义静态方法,与类方法不一样,使用+

@end//类定义结束</span>

2.类的实现

//文件MyClass.m

<span style="font-size:14px;">#import "MyClass.h"

@implementation MyClass//@implementation 实现类

-(id)initWithName:(NSString*) newName AndAge:(int) newAge{//实现构造方法
    
    self=[super init];//调用基类的构造方法,self相当于java中的this,super相当于java中的super
    
    if(self){
        
        name=newName;
        
        age=newAge;
        
    }
    return self;    
}

- (id)init{//默认的构造方法,要么返回完整的对象,要么抛出异常
    
    return [self initWithName:@"fred" AndAge:24];//调用其他构造方法
    
}

-(NSString*) getName{//成员方法,返回name
    
    return name;
    
}

-(int) age{//成员方法,返回age   
    return age;
}

- (void)dealloc//销毁,java中有垃圾回收机制,不需要管理对象销毁,类似于C++中的析构方法
{   
    [name release];//先销毁成员变量
    
    [super dealloc];//最后掉用基类的销毁
}

+(void)className{//实现类静态方法
    
    NSLog(@"MyClass");
    
}

@end//结束实现</span>

3.调用样例

//文件main.m

<span style="font-size:14px;">#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "MyClass.h"//引入头文件

int main(int argc, char *argv[])
{
//    一般情况下不动main函数
    
//    MyClass* me=[[MyClass new ] autorelease];//new 调用默认构造方法
//      MyClass* me=[[MyClass alloc]initWithName:@"qiuqiu-球球" AndAge:24];//alloc调用自定义构造方法
//    
//    NSLog(@"%@",me->name);//直接访问公开的成员变量,%@是对象的占位符
//    
//    NSLog(@"myname is %@, age is %d",[me getName], [me age]);//%d是数字的占位符
//    
//    [MyClass className];//调用类静态方法
    
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值