1、变量作用域:
@public
@protected
@private
例如可以写:
@interface Student: NSObject{
@public
int _age;
int _no;
@private
int _name;
float height;
}
@end
当时通常不这样写,因为如果给成员变量加上@public,别人就可以访问,我们通常只通过set、get方法访问
当我不写的时候,默认是protected的。
2、自动释放内存
Student * stu = [ [[Student alloc] init ] autorelease];
加上autorelease这个方法,我们不用再手动释放[stu release]; 而是自动释放
一般说,系统创建的静态方法,都是自动释放的。
3、self
@implementation Student
//谁调用方法,self就指向谁
- (void) test{
//self 指向调用这个方法的类
int age = self.age;
}
+(void) test2{
[Student alloc]; //等效与 [self alloc];
}
@end
在java中只有动态方法中才能使用this,但是在OC中静态方法中用了self,self就代表类名;动态方法中用了self,则,self指向调用这个方法的对象。
4、私有方法
如果没有在接口中进行声明,直接在.m文件中写,则这个方法就是私有方法。