OC中的类方法和对象方法

//1.对象方法

-(void)lookMyPhone;

 以-号开头//里面可以使用成员变量//用对象来调用 //对象方法可以调用类方法和对象方法
 
 //2.类方法
 
 +(NSString *)colorWithEnumColor:(Color)color;
 
 以+号开头//不可以使用成员变量//类名来调用//可以作为工具方法
 
 //3./**类方法在调用类方法的时候,不能自己调用自己,会造成死循环
 
     类方法调用自己的类方法      可以
     类方法调用自己的对象方法     不可以
     对象方法调用自己的类方法     可以
     对象方法调用自己的对象方法    可以
     */

//4. 区别同名的对象方法和类方法:根据方法前面的标示符

使用场景:尽量使用类方法 (类方法可以节省内存空间,提高效率) 

当有成员变量时,不要使用类方法。

//5.类方法和对象方法是两个不同的方法

#import <Foundation/Foundation.h>

@interface Calculator : NSObject{

    int _sum;//和

}

//求和 对象方法

(int)sumWithNumber1:(int)number1 andNumber2:(int)number2;

//类方法的规则:1.以+号开头 2.其他的规则与对象方法相同

+(int)sumWithNumber3:(int)number3 andNumber4:(int)number4;

@end

.m里面进行实现

#import "Calculator.h"

@implementation Calculator

/对象方法求和

//number1 = 2   number2 = 4

-(int)sumWithNumber1:(int)number1 andNumber2:(int)number2{

    //成员变量可以在对象方法中使用

    _sum = number1 + number2;

    return _sum;
}

//类方法求和

+(int)sumWithNumber3:(int)number3 andNumber4:(int)number4{

    //当一个方法当中要使用成员变量的时候,不能用类方法。原因:成员变量的存在依附于对象,在使用类方法的时候,并没有创建对象,所以类方法当中不能使用成员变量。

   // _sum = number3 + number4;

    return number3 + number4;
}

@end

2、单例模式

Singleton模式,即单例模式。顾名思义,主要用于做应用程序的资源共享控制。实质为,单例是在程序声明周期里有且仅有

被实例化过一次的类。为确保实例化的唯一,利用类的类(static)方法来生成和访问对象。至此,我们可以在程序中任何地

方访问类的单例对象,因为只实例化唯一的一次,所以,并不用 alloc、init、autorelease初始化方法。

单例设计模式的要点:

(1) 某个类只能有一个实例。  

(2)他必须自行创建这个对象  

(3)必须自行向整个系统提供这个实例;

(4)这个方法必须是一个静态类;

.m文件代码(记住)

@implementation Singleton

static Singleton *st;

+(Singleton*) instance{//可用id代替返回可用的指针对象 instance是方法名
/

/静态变量,生命周期是整个程序,在下一次该函数调用时仍可使用 。
    if(st==nil ) {//指针为空就创建
         st 

= [[Singleton alloc] init];

//指针st指向单例模式 Singleton
  
      }
   
    return st;//不是空就继续使用
}

@end

注意:所谓单例,即我们自己创建一个单例类,该类只能生成唯一的对象,为了防止该对象被复制(copy)或者retain 和 r

elease 等操作,我们必须在所创建的单例的实现文件( .m 文件)中将父类的这些方法给覆盖,该目的是为了保证单例模式

的一个严谨性。


转载于:https://my.oschina.net/u/2322034/blog/382697

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值