Object-C详细编程教程(一):类定义与实现

1.类的定义:
//文件MyClass.h
#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//类定义结束


2.类的实现

//文件MyClass.m

#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:@"myname" 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//结束实现


3.调用样例

//文件main.m

#import <Foundation/Foundation.h>

#import "MyClass.h"//引入头文件

int main(int argc, const char* arg[]){

    MyClass* me=[[MyClass alloc]initWithName:@"qiuqiu-球球" AndAge:24];//调用构造方法

    NSLog(@"%@",me->name);//直接访问公开的成员变量,%@是对象的占位符

    NSLog(@"myname is %@, age is %d",[me getName], [me age]);//%d是数字的占位符

    [MyClass className];//调用类静态方法

    return 0;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值