您的位置:首页 > 移动开发 > Objective-C

IOS开发基础Object-C(05)—OC变量的作用域、self

2015-11-02 12:47 323 查看

一、变量的作用域

方法的声明和实现,都必须以+ 或者 - 开头,

(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息