Objective-C面向对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Objective-C面向对象相关的知识,希望对你有一定的参考价值。
转载、引用请注明来源!
Objective-C的类
#import
@interface People : NSObject
@end
#import "People.h"
@implementation People
@end
1)、因为 People 这个类声明在 People.h 文件中 ,所以要 #import "People.h" 。
2)、OC中使用关键字 @implementation 来实现一个类,@implementation 后的 People 表示要实现的类。
3)、 @end表示类的实现结束 。
#import
@interface People : NSObject
{
int _age; //年龄
float _weight; //体重
}
@end
1)、添加了一个 int 类型的成员变量 _age 和 float 类型的成员变量 _weight,默认情况下成员变量的作用域是@protected [受保护的],即可以在 People 类内部和子类访问。
2)、实例变量必须写在花括号 { } 中。
五、添加方法
前面定义了两个实例变量 _age 和 _weight ,它们的作用域是 @protected ,外界不能直接访问它们。为保证数据的封装性,我们可以提供 _age 和 _weight 的 get 和 set 方法,让外界间接访问 _age 和 _weight 。下面以 _age 的 get 和 set 方法为例。
1、在 People.h 中声明方法
#import
@interface People : NSObject
{
int _age; //年龄
float _weight; //体重
}
- (void)setAge:(int) age; //age 的 set 方法声明
- (int)age; //age 的 set 方法声明
@end
1)、- (void)setAge:(int) age; 是 set 方法的声明,- 表示类方法,(void)表示返回类型,setAge:是方法名,【注意冒号也是方法名的一部分,一个冒号对应一个参数】,(int) 是参数类型,age 是参数名。
2)、- (int)age; 是 get 方法的声明,该方法没有参数。
2、在 People.m 中实现方法
#import "People.h"
@implementation People
//set方法的实现
- (void)setAge:(int) age{
_age = age;
}
//get方法的实现
- (int)age{
return _age;
}
@end
#import
#import "People.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
People *p1 = [[People alloc] init];
}
return 0;
}
1)、因为要使用People 类,所以要包含 #import "People.h" 。
2)、OC中的方法调用使用 [ ] ,括号左侧是调用者(类 或 对象),右侧是方法。
3)、分配内存。+(id)alloc; 方法是类方法,其返回值是 id 类型。
4)、初始化。init方法是对象方法。
*销毁对象:在还没有ARC(自动释放)机制的年代,每创建一个对象,就要手动释放一次
即:[p1 release];
以上是关于Objective-C面向对象的主要内容,如果未能解决你的问题,请参考以下文章