.h文件中初始化设置:
-(id)initWithstuName:(NSString *)stuName
stuAge:(NSInteger)stuAge
stuScore:(CGFloat)stuScore;
注:With中的W一定要大写,最后加分号
.m文件里:
去掉分号复制过来
{
self =[super init]; 注:先调用一下父类的初始化方法并进行初始化,对父类继承过来的成员变量进行设置
if(self){
注:当这个对象在初始化的过程中出现问题,会返回一个空指针,接下来的复制会没有意义,系统会跳过去,如果返回的是一个正常的堆空间地址,才能赋值,self为零即为空,程序不会报错,可以运行到时没有效果,在C语言中使用空指针程序会报错.
_stuName=stuName;
_stuAge=stuAge;
_stuScore=stuScore;
}
}
main.m文件中:
Student *stu=[[stu alloc]
initWithstuName:@”孙悟空” stuAge:19 stuScore:90.87];
[stu stuName];
便利构造器: (是一个类方法)
.h文件中:
+(id)stuWithstuName:(Nsstring *)stuName
注:id可以换成类名加*
stuAge:(NSInteger)stuAge
stuScore:(CGFloat)stuScore;
.m文件中:
+(id)stuWithstuName:(Nsstring *)stuName
stuAge:(NSInteger)stuAge
stuScore:(CGFloat)stuScore{
Student *stu =[[Student alloc]
initWithstuName:stuName stuAge:stuAge stuScore:stuScore];
return stu;
}
main.m文件中:
用便利器的方法来创建对象,不需要考虑内存管理的问题.
Student *stu=[Student stuWithstuName:@”孙悟空” stuAge:20 stuScore];
[stu sayHi];
继承:
新建一个class(类)后,要引用前一个类,可以在新建的时候在Subclass of选框中选择上一个类名直接继承,也可以在建好的.h文件只能中引入头文件
@interface 新建的类名:上一个类的名(修改这个)