//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