Objective-C教程:Objective-C类的定义

Objective-C是面向对象的编程语言,所以具备面向对象编程语言的共性即:支持可重用的数据和函数的封装体,也就是大家常说的类。那么类到底是什么呢? 其实,类就是在结构体的基础上发展的产物,结构体只能处理数据,在结构体之上增加对该数据处理的函数,就构成类的概念。类使程序总能提供对数据专门处理函数的安全调用,使得一系列的机能作为一个子系统供安全且重复的使用。

像结构体一样,类在使用之前必须先声明,但是Objective-C并没有像其他面向对象语言那样提供声明类的专用关键字或者语法,而是用编译处理指令来实现,特征是类声明语句都须以@符号开始。

类声明的编译处理指令以@interface开始,以@end结尾,在这之间代码便是类变量的定义和方法的声明。类的声明和定义比其他语言复杂,这会让刚开始学习Objective-C的人非常困惑(准确的说,其他语言如Java只需定义类而不用声明,而Objective-C需要先声明再定义)。

类的定义两部分:接口部分和实现部分,通常分别写在两个文件中。

接口部分(.h):

声明了类名、父类名、实例变量(特征)和方法声明(行为)。以@interface开始,以@end结束

@interface TestCoop : NSObject {

int iMonth;

int iYear;

int iDay;

}

  • (void) setYear: (int) iYear;

  • (void) primalSetData: (int)iYear :(int)iMonth :(int)iDay;

  • (void) setData: (int)Year iMonth:(int)iMonth iDay:(int)iDay;

  • (void) displayDateInfo;

@end

备注: 1、TestCoop:类名 2、NSObject:父类名 3、iMonth iYear iDay :成员变量 4、“- (void) setYear: (int) iYear;”前面的短线/- 表示这是Objective-C方法的声明,用来区分函数原型(C语言中)与(Objective—C中)方法声明的方式。短线后面是方法的返回类型/比如setYear为参数的描述,后面加冒号和参数类型(int)与参数名字iYear,比如:

  • (void) setYear: (int) iYear;//单个参数
  • (void) primalSetData: (int)iYear :(int)iMonth :(int)iDay;//多个参数

实现部分(.m):

方法的具体实现。以@implementation开始,以@end结束 示例代码:

@implementation TestCoop

  • (void) displayDateInfo{

    NSLog(@"Today is: %d.%d.%d\n", iYear, iMonth, iDay);

}

  • (void) setYear: (int) year{

    iYear = year;

}

  • (void) primalSetData: (int)year :(int)month :(int)day{

    iYear = year;

    iMonth = month;

    iDay = day;

}

  • (void) setData: (int)year iMonth:(int)month iDay:(int)day{

    iYear = year;

    iMonth = month;

    iDay = day;

}

备注:

  1. 实现部分的主要作用就定义接口部分的方法实现;
    
  2. 使用方法定义后加{},在{}内写具体实现代码;
    
  3. 接口部分声明的方法均要实现,否则编译警告;
    
  4. 接口部分未声明的新方法也可在实现部分定义;
    

转载于:https://my.oschina.net/lanou3g/blog/110160

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值