----------------------
ASP.Net+Unity开发
、
.Net培训
、期待与您交流! ----------------------
构造方法:
构造方法是一个对象方法用 - 号开头,用来初始化对象。
重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值
重写构造方法的注意点
1.先调用父类的构造方法([super init])
2.再进行子类内部成员变量的初始化
- #import "Person.h"
- @implementation Person
- // 重写-init方法
- //- (id)init
- //{
- // // 1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性
- // self = [super init]; // 当前对象 self
- //
- //
- // // 2.如果对象初始化成功,才有必要进行接下来的初始化
- // if (self != nil)
- // { // 初始化成功
- // _age = 10;
- // }
- //
- // // 3.返回一个已经初始化完毕的对象
- // return self;
- //}
- - (id)init
- {
- if ( self = [super init] )
- { // 初始化成功
- _age = 10;
- }
- // 3.返回一个已经初始化完毕的对象
- return self;
- }
- @end
分类的作用:在不改变原来类内容的基础上,可以为类增加一些方法
使用注意:
1.分类只能增加方法,不能增加成员变量
2.分类方法实现中可以访问原来类中声明的成员变量
3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法,会导致原来的方法没法再使用
4.方法调用的优先级:分类(最后参与编译的分类优先) --> 原来类 --> 父类
- /*
- 给NSString增加一个类方法:计算某个字符串中阿拉伯数字的个数
- 给NSString增加一个对象方法:计算当前字符串中阿拉伯数字的个数
- */
- #import <Foundation/Foundation.h>
- @interface NSString (Number)
- + (int)numberCountOfString:(NSString *)str;
- - (int)numberCount;
- @end
- @implementation NSString (Number)
- // @"abc434ab43"
- + (int)numberCountOfString:(NSString *)str
- {
- // 1.定义变量计算数字的个数
- // int count = 0;
- //
- // for (int i = 0; i<str.length; i++)
- // {
- // unichar c = [str characterAtIndex:i];
- //
- // if ( c>='0' && c<='9')
- // {
- // count++;
- // }
- // }
- // return count;
- return [str numberCount];
- }
- - (int)numberCount
- {
- int count = 0;
- for (int i = 0; i<self.length; i++)
- {
- // 取出i这个位置对应的字符
- unichar c = [self characterAtIndex:i];
- // 如果这个字符是阿拉伯数字
- if ( c>='0' && c<='9' )
- {
- count++;
- }
- }
- return count;
- }
---------------------- ASP.Net+Unity开发 、 .Net培训 、期待与您交流! ----------------------