今天学习OC老师讲的知识点。
1; NSString类型,它是OC中的字符串类型。
在OC中其他的类型与C语言一样 如;int , short ,long ,float, double, char等在OC中都可以使用。
而OC中增加了一个NSString类型 它的语法:NSString *常量名(如:str)=@"字符串 ";
在OC中字符串是@“字符串”;都是以@符合开头的。@“字符串”;是方便我们区分是OC字符串。OC字符串类型不能赋值为C语言字符串 如:NSString*str="字符串";这样是错的,必须加@符合。
2:NSLog这个函数的作用和C语言中的printf一样是输出一句话,并且里面都要加格式化控制符。
NSLog能输出printf里所有的控制符,并且增加了一个%@。
NSLog与printf的区别:
1,换行区别:NSLog自带换行,printf没有自带换行需要手动加\n
2,内容区别:NSLog默认打印出项目名字和时间,printf则没有
3,输出区别:NSLog能输出%@,printf不能输出
3: 类和对象:
类:就是某个一具有相同特征群体的总称,他无法具体指代一个事物。
对象:就是一个群体里具体的一个事物。
怎么得出类名:名词提取法,也就是说所有出现的名词都是类 列:小明在遛狗。这句话中有2个类,分别是 : 小明 狗。
类有三要素:类名 特征 行为(方法) 如上面那句话:类名:小明
特征:性别 年龄 体貌特征 等等(具体有哪些自己想,具体就是用特征表示具体是哪个小明)
行为:遛狗
声明语法: @interface 类名:NSObject{
属性列表
}
@end 注意:@end绝不能省略
行为在代码里又叫方法,它的语法是:
-(void)方法名;
注意在写方法时要加@implementation 类名 和 @end
语法:
@implementation 类名
方法的实现列表(如:-(void)方法名)
@end
注意:1,类名没个单词首字母都要大写。
2,属性以_开头,属性又叫成员变量
3,@implementation 和@end一定不能少
另外注意:要在属性列表中加一个访问函数@public,不然在main函数中不能直接访问到属性列表中的成员变量。
总结语法:@interface 类名:NSObject{
@public
属性列表
}
行为列表 如:-(void)方法名; 这个位置作用是方法的声明
@end
@implementation 类名
方法的实现列表 如:-(void)方法名{
方法的实现代码
}
@end
注意:1,方法的声明中能在@interface 和@end之间,但不能写到大括号里
2,方法的实现只能写在@implementation 类名 和@end 之间
4:1,无参数无返回值的方法
语法: -(void) 方法名;
实现:-(void)方法名{
方法体
}
2,有参数无返回值的方法
语法: -(void) 方法名:(参数类型)参数名;
实现:-(void)方法名:(参数类型)参数名{
方法体
}
多个参数
语法: -(void) 方法名1:(参数类型)参数名 (这要加个空格)方法名2:(参数类型)参数名 .......(这要加个空格)方法名n:(参数类型)参数名n;
实现:-(void)方法名1:(参数类型)参数名(这要加个空格)方法名2:(参数类型)参数名......(这要加个空格)方法名n:(参数类型)参数名n{
方法体
}
语法:-( 返回值类型 )方法名:参数列表;
实现:-(返回值类型)方法名:参数列表{
方法体;
return 需要返回的值;
}
5:
属性的赋值:
在方法里给属性赋值和取值
语法:
取值: 属性名;
赋值: 属性名=值;
在方法外,主函数里给属性赋值
语法:
对象名->属性名=值;
new 关键字的作用:1,开辟堆空间
2,初始化对象
3,返回堆空间的地址
语法:类名*对象名=[类名 new];