oc 构造方法
时间:2015-8-7 15:18 热度:2232° 评论:0 条

main,m
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
// char *s = "itcast"; C语言中字符串
NSString *str = @"itcast"; // OC中的字符串
Student *stu = [[Student alloc] initWithAge:15 andNo:2];
// NSLog(@"age is %i and no is %i", stu.age, stu.no);
// %@代表打印一个OC对象
NSLog(@"%@", stu);
[stu release];
}
return 0;
}
student.h
#import <Foundation/Foundation.h>
@interface Student : NSObject {
int _age;
int _no;
}
- (void)setAge:(int)age;
- (int)age;
- (void)setNo:(int)no;
- (int)no;
// 自己写一个构造方法
- (id)initWithAge:(int)age andNo:(int)no;
@end
</pre>
<p>stdudent,m</p>
<pre>
#import &quot;Student.h&quot;
@implementation Student
- (void)setAge:(int)age {
_age = age;
}
- (void)setNo:(int)no {
_no = no;
}
- (int)age {
return _age;
}
- (int)no {
return _no;
}
// 实现构造方法
- (id)initWithAge:(int)age andNo:(int)no {
// 首先要调用super的构造方法
// self = [super init];
// 如果self不为nil
if (self = [super init]) {
// _age = age;
// _no = no;
self.age = age;
self.no = no;
}
return self;
}
// 重写父类的description方法
// 当使用%@带打印一个对象的时候,会调用这个方法
- (NSString *)description {
NSString *str = [NSString stringWithFormat:@&quot;age is %i and no is %i&quot;, self.age, self.no];
return str;
}
// 如果直接把方法写在.m文件中,没有在.h文件中进行声明,那么这就是私有方法
// 谁调用方法,self就指向谁
- (void)test {
int age = self.age;
}
+ (void)test2 {
[Student alloc];
[self alloc];
// 上面两句代码是等效的
}
@end
#import &quot;Student.h&quot;
@interface GoodStudent : Student
@end
#import &quot;GoodStudent.h&quot;
@implementation GoodStudent
// 子类访问了父类的成员变量
- (void)test {
_age = 10;
}
@end 

捐赠支持:如果觉得这篇文章对您有帮助,请“扫一扫”鼓励作者!
相关文章本文作者:沁雨寒 文章标题: oc 构造方法
本文地址:https://blog.sxx1314.com/sdk-ios/oc-3.html
版权声明:若无注明,本文皆为“unix 软硬件 技术宅 ”原创,转载请保留文章出处。百度已收录
本文地址:https://blog.sxx1314.com/sdk-ios/oc-3.html
版权声明:若无注明,本文皆为“unix 软硬件 技术宅 ”原创,转载请保留文章出处。百度已收录















