4 什么是类、对象、实例变量、方法

面向对象编程中,一般OC程序由三个文件组成:.h文件     .m文件     main.m文件。编译时,Xcode是编译所有.m上文件的。
.h文件:这是一个头文件,也可以说是接口部分。实例变量(类的属性)、对象方法、类方法的声明都在这个文件中。
  • 如果定义一个“人”类, Person.h
@interface Person : NSObject
//人的属性(实例变量)
{
     NSString *_name; //姓名
     int _age; //年龄
}
 
//对象方法的声明(行为)
- (void)eat; //吃饭
- (void)setName:(NSString *)name; //姓名setter
- (NSString *)name; //姓名getter
- (void)setAge:(int)age; //年龄setter
- (int)age;
 
//类方法的声明
+ (void)run:(Person *)p1; //跑步
@end
 
.m文件:这是类的实现部分。是对接口部分进行代码实现的,要拷贝接口部分的头文件#import “Person.h”。
代码:
#import “Person.h”
#import <Foundation/Foundation.h>
 
@implementation Person
//对象方法的实现
//吃饭
- (void)eat
{
     NSLog(@“吃饱了”);
     // [Person run]; 可以调用类方法
}
//name的set方法和get方法
- (void)setName:(NSString *)name
{
     _name = name;
}
- (NSString *)name
{
     return _name;
}
//age的set方法和get方法
- (void)setAge:(int)age
{
     _age = age;
}
- (int)age
{
     return _age;
}
 
//类方法的实现
//跑步
+ (void)run:(Person *)p1
{
     [p1 eat]; //可以使用对象方法,但要传对象参数
     NSLog(@“我在跑步”);
}
@end
 
main.m 文件
int main ( )
{
     //创建对象
     Person *p = [Person new];
 
     //给实例变量设值
     [p setName:@“Mrzeng”];
     [p setAge:26];
 
     //读取实例变量
     NSLog(@“我的名字叫:%@, 年龄是:%i“ , [p name], [p age]);
 
     //类方法
     [Person run:p];
 
     //对象方法
     [p eat];
 
     return 0;
}
posted @ 2015-01-19 12:27  _Mrzeng  阅读(185)  评论(0编辑  收藏  举报