说明:本人用的win8 系统装Code::Blocks练习OC。
1.类的声明和实现的关系图:
@interface就好像暴露在外面的时钟表面
@implementation就好像隐藏在时钟内部的构造实现
2.语法中要注意的地方
(1).成员变量不能在{}中进行初始化、不能被直接拿出去访问
(2).方法不能当做函数一样调用
(3).成员变量\方法不能用static等关键字修饰,不能和C语言混在一起
(4).类的实现可用写在main函数的后面,主要在声明后面就行了
3.一些错误的写法:
(1).只有类的声明,没有类的实现
(2).漏了@end
(3).@interface和@implementation嵌套
(4).两个类的声明嵌套
(5).成员变量没有写在括号里面
(6).方法的声明写在了大括号里面
4.OC方法和函数的区别(1).OC方法只能声明在@interface和@end之间,只能实现在@implementation和@end之间。也就是说OC方法不能独立于类存在
(2)C函数不属于类,跟类没有联系,C函数只归定义函数的文件所有
(3)C函数不能访问OC对象的成员
(4)低级错误:方法有声明,但是实现的时候写成了函数
6.特别要注意:
(1).冒号也是方法名的一部分
(2).同一个类中不允许两个对象方法同名
7.代码实践:
#import <Foundation/Foundation.h> /* 计算器类 */ @interface Calculator : NSObject{ @public double num; } //计算数的平方 - (double) square; - (int) sumWithnum1:(int)num1 addNum2:(int) num2; @end //计算器的实现 @implementation Calculator //计算一个数的平方 - (double) square{ return num * num; } //针对两个数求和 - (int) sumWithnum1:(int)num1 addNum2:(int) num2{ return num1 + num2; } @end int main() { Calculator *c = [Calculator new]; //给计算器类成员变量赋值 c->num = 25; //调用平方这个方法 double result = [c square]; NSLog(@"%.1f的平方是%.1f",c->num,result); //调用求和这种方法: int sum = [c sumWithnum1:23 addNum2:34]; NSLog(@"sum=%d",sum); return 0; }
原文地址:http://blog.csdn.net/u011662320/article/details/39754499