/*
1;声明类: @interface 和 @end 之间
*类名
*继承NSOBject
* 属性
*方法(只需声明,不需实现)
2:实现:@implementation 和 @end 之间
* 实现@interface声明的方法
*/
#import <Foundation/Foundation.h>
@interface Dog:NSObject
{
@public
int speed;
}
-(void)run;//方法的实现
@end
@implementation Dog
-(void)run
{
NSLog(@"速度为%i的狗跑起来了!",speed);
}
@end
int main(int argc,char *argv[])
{
Dog *d = [Dog new];
d->speed = 100;
[d run];
return 0;
}
注意:
1:如果有类的声明没有类的实现:编译会成功,但是链接失败
#import <Foundation/Foundation.h>
@interface Dog:NSObject
{
@public
int speed;
}
-(void)run;//
@end
@implementation Dog
//-(void)run
//{
// NSLog(@"速度为%i的狗跑起来了!",speed);
//
//}
@end
int main(int argc,char *argv[])
{
Dog *d = [Dog new];
d->speed = 100;
[d run];
return 0;
}
2:如果声明中没有方法的声明,程序不会报错,没有影响,因为main函数在执行[d run]的方法时,会首先在声明中查找run方法,如果没有直接在实现中找方法;
3:成员变量不能在{}中进行初始化,不能被直接拿出去访问
4:方法不能当作函数一样调用,方法必须建立在对象的基础上,没有对象,不能访问方法
5:函数属于整个文件,在文件的任意地方都能调用,对象方法只属于对象,只有对像才能调用对象方法
6:对象方法只能声明在@interface 和 @end之间 ,实现只能在@implementation 和@end 之间,函数的声明和定义可以写在任意地方,函数不能归某个类所有,只属于文件,
7:C函数不能访问OC对象的成员变量