-----Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------
一、类的声明
注意点:类名的的命名规范:有意义、驼峰命名、首字母大写
#import <Foundation/Foundation.h>
// 类的声明
@interface : NSObject
{
@public
int speed; // 时速
}
- (void)run; // 跑的行为
@end
1>成员变量:
interface中的大括号{}中是声明成员变量(变量默认初始化为0)的。
@public是变量的访问权限。
interface中大括号之外是用来声明类方法的。
2>成员变量的作用域:
@public:任何类。
@private:类内。
@protected:类本身与子类。
3> NSObject
所有类或父类必须继承代表具有创建类对象的能力。
二、类的实现
@implementation Car
- (void) run
{
NSLog(@"时速为%d的车子", speed);
}
@end
三、创建对象
//在非ARC内存管理模式下
int main()
{
//创建车子对象
Car *c = [[Car alloc]init];//此处会retain一次
c->speed = 300;
[c run];
[c release];//这里需要释放对象资源
return 0;
}
四、常见错误
1> 只有类的声明,没有类的实现。
2>漏了@end。
3>@interface和@implementation嵌套。
4>两个类的声明嵌套。
5>成员变量没有写在括号里面。
6>方法的声明写在了大括号里面。
五、Objective-C与函数的区别
1>oc方法只能声明在@interface和@end之间,只能实现在@implement和@end之间,归对象和类所有(依赖于对象)。
2>函数可写在除@interface外文件任何地方,归文件所有(不依赖于对象)。
3>oc方法以减号或加号开头,函数则不需要。
六、方法的定义
1>不带参数的方法定义:
// 方法声明
- (double)pi;
// 方法实现
- (double)pi
{
return 3.14;
}
无参数方法实例图:方法类型可以是加号或减号
无参方法调用实例图:
2>带单个参数方法的定义:
// 方法声明
- (double)square:(double)number;
// 方法实现
- (double)square:(double)number
{
return number * number;
}
带单个参数方法的实例图:
带单个参数方法的调用:
3>多个参数方法的定义:
// 方法声明
- (double)sumOfNum1:(double)num1 andNum2:(double)num2;
// 方法实现
- (double)sumOfNum1:(double)num1 andNum2:(double)num2
{
return num1 + num2;
}
多个参数方法定义实例图:
多个参数方法的调用:
七、方法名注意点:
1>冒号也是方法名的一部分。
2>同一个类不允许两个对象方法同名。
八、匿名对象:
[[car new] run]; //在非ARC内存管理模式下不建议这样使用,导致占用内存不能及时释放。