1.类的定义
在类的定义中,关键字为 interface ,关键字后面为类名,类名一般情况下首字母大写 冒号后面 NSObject 是父类
命名时要见名知意
大驼峰命名:命名时每个单词的首字母大写 一般用于类的命名
小驼峰命名:第一个单词首字母小写,以后每个单词的首字母大写,一般用于实例变量和参数的命名
(-)对象方法(实例方法):对象方法只能给对象调用,不能给类调用
(+)类方法:只能给类调用,不能给对象调用
@interface Student : NSObject//类名的首字母大写,以后每个单词的首字母大写
{
//类似于结构体
// 实例变量的定义 ,命名通常以_开头,第一个单词的首字母小写,以后每个单词的首字母写
// 实例变量必须包含在大括号内
NSString *_name ; //NSString 是 OC 系统提供的字符串类
NSInteger _age ; // NSInteger 是 long 类型
}
//构造方法(初始化方法)
//id 类似于 C语言中的 void *
// - 说明该方法是一个对象方法(实例方法):实例方法就是给类的实例调用的方法
// 该方法无传入参数
// 返回值是一个id(范型)类型的对象 方法名是 init
-(id)init ;
//setter 方法:修改实例变量值的方法
//有一个传入参数 name
//无返回值
//方法名 setName :
-(void)setName : (NSString *) name ;
-(void)setAge : (NSUInteger) age ;
//有两个传入参数 name age
//无返回值
//方法名是 setName:andAge:
-(void)setName : (NSString *)name andAge :(NSInteger )age ;
//匿名方法 省略掉第二个
-(void)setName:(NSString *)name : (NSInteger)age ;
//getter方法
//读取实例变量的值
-(NSString *)name ;
-(NSInteger) age;
//+开头的方法 类方法 给类调用的方法 通常用类名调用
+(void) textStudent ;
@end
2.类的实现
类实现的关键字:implementation
//方法的命名 : 第一个单词的首字母小写,以后每一个单词的首字母大写 “驼峰规则”
@implementation Student
-(id)init//初始化对象的方法
{
self = [super init] ; //self 表示调用者 ,指向调用者的对象指针变量
//super 调用父类方法的关键字
if ( self ) {
_name = @"小华" ;
_age = 12 ;
}
return self ;
}
//setter方法访问修改实例变量的值
-(void)setName:(NSString *)name
{
_name = name ;
}
-(void)setAge:(NSUInteger)age
{
_age = age ;
}
-(void)setName:(NSString *)name andAge:(NSInteger)age
{
_name = name ;
_age = age ;
}
//getter方法访问读取实例变量的值
-(NSString *)name
{
return _name ;
}
-(NSInteger)age
{
return _age ;
}
//测试当前类是否可用
+(void)textStudent
{
Student *stu = [[Student alloc]init];
[stu setName:@"小飞" andAge:25];
NSLog(@"name = %@ age = %li",[stu name],[stu age]);
}
@end
创建一个对象,为对象分配内存空间并初始化,调用对象方法和类方法
int main(int argc, const char * argv[]) {
@autoreleasepool {
Student *stu = [[Student alloc] init];
NSLog(@"name = %@ ,age = %li",[stu name],[stu age]) ;
/*
name = 小华 ,age = 12
*/
//调用类方法
[Student textStudent];
/*
name = 小飞 age = 25
*/
}
return 0;
}