Objective C 方法和变量详解

Objective-C方法对象及其使用是本文要介绍的内容,主要包括 static 对象、static 、public 、private 方法Objective-C 方法Objective-C 对象,Objective-C私有方法,Objective-C 静态方法。具体内容来看本文详解。

1、@public,@protected,@private

个人觉得@public和@protected并没有很明确的区别,在他们作用范围内的对象,如果不将对象设置成@property,则该对象相当于 protected对象,只有子类和本身可以访问该对象;如果将对象设置成@property,则可以使使用者访问该对象。@private,顾名思义,这里声明的就是私有对象,可以通过指针的方式访问。

2、static对象(类内)

我们将对象声明在类中"{"和"}"之外,也就是与方法和@property写在一起,就可以声明一个类内部的static对象。

3、static方法

当方法前是使用"+"来修饰并且声明在头文件中,则说明该方法相当于c++中的static方法,通过类直接调用。但是需要注意的是,虽然这样的方法可以通过类直接调用,但是不可以通过对象调用。

4、public方法

当方法前是使用"-"来修饰并且声明在头文件中,则该方法可以通过类的对象进行调用。

5、private方法

Objective-C中的private方法是通过category实现的,在实现文件中我们声明一个类的category,在这里面的方法就是private方法。类的对象是不可以进行调用的,同样由于该方法的声名是在类的实现文件中,所以子类也是不能重写该方法的。

演示实例

public、protected、private 用法

头文件

以下为引用内容:

 
 
  1. #import <Foundation/Foundation.h> 
  2. @interface Grammar : NSObject {  
  3.     @public    NSString* publicString;       
  4.     @protected     NSString* protectedString;       
  5.     @private         NSString* privateString;   
  6.   }   
  7.  NSString* staticString;   
  8.  @property (nonatomic, retain) NSString* publicString;   
  9.  + (void)staticMethod;   
  10.  - (void)publicMethod;   
  11.  @end  

实现文件 

 
 
  1. #import "Grammar.h"   
  2. #pragma mark   
  3. - #pragma mark Grammar(private)   
  4. @interface Grammar(private)   
  5. - (void)privateMethod;  
  6.  @end   
  7.  #pragma mark   
  8.  - #pragma mark Grammar   
  9.  @implementation Grammar   
  10.  @synthesize publicString;   
  11.  - (id)init {       
  12.  if((self = [super init])) {   
  13.          if(publicString == nil) {    
  14.     publicString = [[NSString alloc] init];           
  15.  }      
  16.  if(protectedString == nil) {  
  17.               protectedString = [[NSString alloc] init];          
  18.        }           
  19.  if(privateString == nil) {  
  20.               privateString = [[NSString alloc] init];          
  21.       }           
  22.  if(staticString == nil) {  
  23.               staticString = [[NSString alloc] init];  
  24.       }      
  25.   }      
  26.   return self;  
  27.  }   
  28.  - (void)dealloc {       
  29.  [publicString release];       
  30.  [protectedString release];       
  31.  [privateString release];       
  32.  [super dealloc];   
  33. }   
  34.  #pragma mark - #pragma mark Public Method + (void)staticMethod { }   
  35.  - (void)publicMethod { }   
  36.  #pragma mark   
  37.  - #pragma mark Private Method   
  38.  - (void)privateMethod { }  
  39. @end 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值