#import <Foundation/Foundation.h>
//定义一个Student类,类名Student
//@interface定义一个类的关键字
//@end 表示类定义结束
//NSObject: 根类(基类)
//系统类的命名以NS开头(Next Step是一家公司的名字)
@interface Student :NSObject
{
//实例变量的定义,命名以_开头,
NSString *_name;//NSString是OC系统提供的字符串类
NSInteger _age; //NSInteger是long类型
}
//构造方法
//id返回值是id类型的一个对象,
//-号说明该方法是一个对象方法(实例方法)
//方法名:init
-(id)init;
//seter方法:修改实例变量的值
//有一个传入参数 name,无返回值
//方法名 setName:
-(void)setName:(NSString *)name;
-(void)setAge:(NSInteger)age;
//有两个传入参数,name和age
-(void)setName:(NSString*)name setAge:(NSInteger)age;
//getter方法:读取实例变量的值
-(NSString *)name;
-(NSInteger)age;
//定义一个类方法
//定义类方法用+
+(void)testStudent;
@end
二、实现一个类
//实现一个类关键字@implementation
//@end 结束
@implementation Student
-(id)init {
self = [superinit];//self表示调用者,指向调用者的对象指针变量
//super是调用父类方法的关键字
if (self) {
_name =@"小华";
_age =20;
}
returnself;
}
//实现setter方法访问修改实例变量的值
-(void)setName:(NSString *)name {
_name = name;
}
-(void)setAge:(NSInteger)age {
_age = age;
}
-(void)setName:(NSString *)name setAge:(NSInteger)age {
_name = name;
_age = age;
}
//实现getter方法读取实例变量的值
-(NSString *)name {
return_name;
}
-(NSInteger)age {
return_age;
}
//实现这个类方法,用类名来调用测试当前类是否可用
+(void)testStudent {
NSLog(@"这是一个类方法!");
}
@end
int main(int argc,constchar * argv[]) {
@autoreleasepool {
//Student类通过alloc类方法创建一个对象,然后调用构造方法init对对象进行初始化
Student *stu = [[Student alloc ] init];
NSLog(@"name = %@, age = %li",[stu name] , [stu age]);
/*
输出结果:name =小华, age = 20
*/
//调用setter方法修改参数
[stu setName:@"小明"];//@"小明"表示字符串对象
[stu setAge:25];
NSLog(@"name = %@, age = %li",[stu name], [stu age]);
/*
输出结果: name =小明, age = 25
*/
//或者直接调用两个参数的setter方法
[stu setName:@"小芳"setAge:21];
// %@是打印对象占位符,%li是打印long类型占位符
NSLog(@"name = %@, age = %li",[stu name], [stu age]);
/*
输出结果: name =小芳, age = 21
*/
//或者直接调用两个参数的setter方法
//调用类方法
[Student testStudent];
/*
输出结果:这是一个类方法!
*/
//或者直接调用两个参数的setter方法
}
return0;
}