———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———
类方法
1,优点
1,节省内存空间(因为程序的类在内存中始终只保存一份,类方法也始终只保存一份)
2,提高工作效率,
3,作为工具方法
2,容易犯的错误
在类方法中不能使用类的成员变量
3,类方法和对象方法的比较
1,对象方法
以-号开头
可以使用成员变量
用对象调用对象方法
对象方法可以调用当前对象或者其他对象的方法(是通过将对象作为参数传入方法)如下
-----调用当前对象的其他方法
----调用其他对象的方法
-----对象方法可以调用类方法
2,类方法
以+开头
不可以使用成员变量
----用类名调用类方法
-----类方法可以调用对象方法(是通过将对象作为参数传入方法)和类方法
----类方法不可以调用自身,会造成死循环
匿名对象
匿名对象:利用类创建一个对象的时候,没有将对象的地址交给一个指针变量保存,这样的对象称为匿名对象,即没有指针指向的对象。(变量只能用一次)
#import <Foundation/Foundation.h>
//类的声明
@interface Car : NSObject {
@public//表示允许外界指针间接访问对象的成员变量
int _speed;//速度
}
//方法声明
- (void)run;//跑
@end
//类的实现
@implementation Car
//方法实现
- (void)run
{
NSLog(@"速度为%d的车子跑起来了", _speed);
}
@end
int main(int argc, const char * argv[])
{
[Car new]->_speed = 300; //<span style="color: rgb(255, 0, 0);">没有将对象的地址交给一个指针变量保存</span>
[[Car new] run];
return 0;
}
类初始化
Person * p = [[Personalloc] init];
Person * p1 = [Personnew];
区别:
alloc 和init 分别把分配内存和初始化的工作分开。这样更加的灵活,可以自行初始化对象的成员变量值
而不像new每次都初始化为0
new 是把分配内存和初始化的工作一起完成了,先分配内存,然后调用类的构造函数。
———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———