黑马程序员——NSString&&构造方法
黑马程序员——NSString&&构造方法
**NSString是OC中的创建字符串的类**
1、创建常量字符串,注意“@”字符
NSString *a=@"this is a";
NSString *
输出字符串:NSLog(@"%@",);
2、用类创建字符串:
NSString *a=[NSString new];
a=@"字符串";
输出字符串:NSLog(@"%@",);
3、格式化创建字符串
NSString *a = [NSString stringWithFormat:@"格式化字符"];
NSLog(@"%@",a);
4、用一个已经存在的字符串创建一个新的字符串
NSString *a1=[[NSString alloc]initwithstring:旧字符串];
NSLog(@"%@",a1);
**NSString字符串长度计算方法(不包含\0,因为是无符号类型的)**
1、通过调用NSString类的对象方法length获得字符串长度
1)获取纯英文字符串
NSString *a=@"this is a";
NSUInteger len=[a length];
NSLog(@"a length:%ld",len);或NSLog(@"a length:%ld",[a length]);
2)字符串是中文的
NSString *a=@"苹果";
len=[a length];
NSLog(@"length:%ld",len);
OC中中英文都是一个字符
C中一个汉字是3个字符
3)中英文混合也是占一个字符
***构造方法***
构造方法:用来初始化对象的方法,是个对象方法,用“-”开头
为了让对象创建出来,成员变量就会有一些的固定值
1)构造方法的调用
完成创建一个可用对象:Person *p = [Person new];
Person *p = [Person new]; 等价于:
Person *p = [ [Person alloc] init];
此时发生了以下三件事:
1、使用alloc方法分配存储空间,返回分配的对象。
2、使用init方法初始化对象。
3、放回对象的首地址。
4、初始化完成后,所有成员变量的值都为0.
OC中对象进行初始化的方法:init是一个对象方法
**用alloc的时候最好写成[ [Person alloc] init];
**如何重写构造方法**
-(instancetype)init {
self=[super init];
//判断父类是否初始化完成
if(self){
//写自定义初始化代码
}
return self;//self是指方法的调用者
}
**自定义构造方法**
1.对象方法,以-开头。
2.返回值类型为id或instancetype类型
3.方法名以initWith开头(要先在声明文件中声明一下)
//如果父类中已经初始化某个性质,在子类中又调用这个性质,在判断父类是否初始化的时候,不需要在初始化:
if (self=[super initwithname:name angage :age]){
//不需要name与age再初始化
_sno=sno;
}
super使用:
[super 对象];调用父类某一对象,先让父类把事情做了