类方法: 1、加号 + 开头 2、只能由类(名)来调用 3、类方法中不能访问成员变量(实例变量)
代码编写: #import<Foundation/Foundation.h> @interfacePerson : NSObject { int _age; // 示例变量age不能在类方法中访问 } // 类方法都是加号开头 +(void)printClassName; @end
@implementation // 类方法的实现 +(void)printClassName{ NSLog(@"这个类叫做Person"); } @end
intmain(){ [Person printClassName]; return 0; }
类方法的好处和使用场合 1、不依赖于对象,执行效率高 2、能用类方法尽量用类名 3、场合:当方法内部不需要使用到成员变量时,就可以改为类方法 可以允许类方法和对象方法同名
self的用途: 1、谁调用了当前方法,self就代表谁 self出现在对象方法中,self就代表对象 self出现在类方法中,self就代表类 2、在对象方法利用"self—>成员变量名"访问当前对象内部的成员变量 3、[self 方法名]可以调用其他对象方法\类方法 例:如果在对象方法里调用该对象的其它方法, 可使用self来调用: - (void) student { NSLog(@"学习!"); } - (void) studentAndStudy { [self student]; // 使用self调用其它对象方法 NSLog(@"学习中"); } 对象方法中的self代表调用该方法的对象, 所以只能调用其它对象方法, 不能调用类方法。
super 的作用 1、可以直接调用父类中的某个方法 2、如果super处在对象方法中,那么就调用父类的对象方法 如果super处在类方法中,那么就会调用父类的类方法 3、使用场合:子类重写父类的方法时想保留父类的一些行为
代码编写: #import<Foundation/Foundation.h>
@interfaceZoombie : NSObject + (void)test; // 父类的类方法test - (void)test; // 父类的对象方法test @end
@implementation
+ (void)test{ // 父类的类方法实现 NSLog(@"Zoombie+test"); } - (void)test{ // 父类的对象方法实现 NSLog(@"Zoombie-test"); } @end
@interfaceJumpZoomble : Zoomble + (void)haha; // 子类的类方法haha - (void)haha2; // 子类的对象方法haha2 @end
@implementationJumpZoombie
+ (void)haha // 子类的类方法haha { [super test]; // 调用父类的类方法test }
- (void)haha2 // 子类的对象方法haha2 { [super test]; // 调用父类的对象方法test } @end
NSString的简单使用 1、字符串的快速创建 NSStirng *str = @“Hello”; 2、使用静态方法创建 3、使用%@输出字符串 NSString *name = @”mj”; NSLog(@“我的名字是%@”, name); //c中打印字符串的长度的函数,是以字节为单位 char *cStr3 = "学生们"; // 打印出的字符串长度是10 //oc中打印字符串的长度的方法,是以当前语言的字符为单位 NSString *name = @"学生们" // 打印出的字符串长度是3 //oc的所有对象都用%@这个格式符打印 // NSLog(@"%@",name); //printf不能打印oc的字符串对象
//printf("str:%@",name);
|