一、变量的作用域
方法的声明和实现,都必须以+ 或者 - 开头,
(1). +表示类方法(静态方法)
(2).-表示对象方法(动态方法)
在.h中声明的所有方法都是public类型(通过Category可以实现private)
1.@public,@protected,@private
@public 全局都可以访问
@protected 只能在类内部和子类中访问
@private 只能在类内部访问
注:在@interface中声明的变量默认是@protected类型
2.static对象(类内)
我们将对象声明在类中”{“和”}”之外,也就是与方法和@property写在一起,就可以声明一个类内部的static对象。
注:@property帮我们自动生成getter和setter方法的声明,和@synthesize(自动生成getter和setter方法的实现)连用,在下一篇博客中我会详细讲解,大家稍安勿躁
3.static方法
当方法前是使用”+”来修饰并且声明在头文件中,则说明该方法相当于c++中的static方法,通过类直接调用。但是需要注意的是,虽然这样的方法可以通过类直接调用,但是不可以通过对象调用。
4.public方法
当方法前是使用”-“来修饰并且声明在头文件中,则该方法可以通过类的对象进行调用。
5.private方法
Objective-C中的private方法是通过category实现的,在实现文件中我们声明一个类的category,在这里面的方法就是private方法。类的对象是不可以进行调用的,同样由于该方法的声名是在类的实现文件中,所以子类也是不能重写该方法的。
注:也就是说如果直接把方法写在.m文件中,没有在.h文件中声明,那就是私有方法
二、self的功能
1、在动态方法中,self代表当前对象
-(void)test{
int age=self.age;
}
2、在静态方法中,self代表当前方法名
+(void)test2{
[self alloc];
}
归根到底,谁调用了方法,self就指向谁
三、视频连接
MJ视频 OC6-self、自动释放、变量作用域
http://pan.baidu.com/s/1dDEy6M9