1、类的定义(类的定义=类的声明+类的实现)
类的声明
@interface 类名:父类名
{
//用来描述类的共同特征,通过声明**变量**来表示,通常称为属性
}
//用来描述类具有的行为,通过声明**方法**来表示
@end
类的实现
@implmentation 类名
//方法的具体实现
@end
2、类的对象的创建
类的对象的创建一般有两种方式
- 类名 *对象名 = [类名 new];
- 类名 *对象名 = [[类名 alloc] new];
3、访问对象的属性
对象名 ->属性名
tips:一般情况下,对象的属性是不允许直接被外界访问的(包括类创建的对象),如果允许对象的属性被外界访问,需要在生命属性的前面加一个@public关键字。
4、方法的声明,方法的实现,以及方法的调用
方法的声明
方法类型(返回值类型)方法名:(参数类型)参数1:(参数类型)参数2:……;
tips:上述的方法类型分为两种,类方法和对象方法,类方法的方法类型用"+“表示,对象方法的方法类型用”-"表示
方法的实现
方法类型(返回值类型)方法名:(参数类型)参数1:(参数类型)参数2:……
{
//具体实现的代码
}
方法的调用
[对象名 方法名:参数1:参数2:参数3……];
5、对象作为方法的参数
Dog.h
#import <foundation/foundation.h>
@interface Dog:NSObject
{
@public
NSString *_name;
}
-(void)shout;
@end
Dog.m
#import "Dog.h"
@implementation Dog
-(void)shout{
NSLog(@"汪汪汪");
}
@end
Person.h
#import <foundation/foundation.h>
#import "Dog.h"
@interface Person:NSObject
{
@public
NSString *_name;
int _age;
}
-(void)test:(Dog *)dog;//Dog类型的对象作为test()方法的参数
@end
Person.m
#import "Person.h"
@implementation Person
-(void)test:(Dog *)dog{
[dog shout];
}
@end
main.m
#import <foundation/foundation.h>
#import "Person.h>
int main(int argc,const char * argv[]) {
Person *p1=[Person new];
DOg *d1=[Dog new];
[p1 test:d1];//person类对象p1调用test方法,d1是test方法的参数
return 0;
}
6、对象作为方法的返回值
Person.m
#import "Person.h"
@implementation Person
-(Dog *) test{//表示返回值是Dog类型的对象
DOg *dog=[Dog new];
dog->name=@"大黄";
dog->age=5;
return dog;
@end
main.m
#import <foundation/foundation.h>
#import "Person.h"
int main(int argc,const char * argv[]) {
Person *p1=[Person new];
Dog *d1=[p1 test];
NSLog(@"一条名叫%@的狗,今年%d岁了",d1->name,d1->age);
return 0;
}