1.类方法都是以+开头
也称为工具类:基本没有任何成员变量,里面的方法基本都是类方法
对象方法
1> 减号 - 开头
2> 只能由对象来调用
3> 对象方法中能访问当前对象的成员变量(实例变量)
类方法
1> 加号 + 开头
2> 只能由类(名)来调用
3> 类方法中不能访问成员变量(实例变量)
类方法的好处和使用场合
1> 不依赖于对象,执行效率高
2> 能用类方法,尽量用类方法
3> 场合:当方法内部不需要使用到成员变量时,就可以改为类方法
可以允许类方法和对象方法同名
@interface Person :NSObject
+ (void)printClassName;
@end
@implementation Person
+ (void)printClassName
{
NSLog(@"这个类叫做Person")
}
@end
//类方法的调用
int main()
{
[Person preinClassName];
return 0;
}
2.self关键字
指向了方向的调用者,代表当前对象
谁调用这个方法,self就指向谁
NSLog(@"Person的年龄是%d岁", self->_age);
用法
还可以返回 当前成员变量
1》用在get 方法, return _age;
2>调用当前方法
@implementation Dog
- (void)bark
{
NSLog(@"汪汪汪");
}
- (void)run
{
[self bark];
//NSLog(@"汪汪汪");
NSLog(@"跑跑跑");
}
@end
谁调用了当前方法,self就代表谁
* self出现在对象方法中,self就代表对象
* self出现在类方法中,self就代表类
2> 在对象方法利用"self->成员变量名"访问当前对象内部的成员变量
2> [self 方法名]可以调用其他对象方法\类方法
@implementation JiSusnQi
+ (int)sumOfNum1:(int)num1 andNum2:(int)num2
{
return num1 + num2;
}
+ (int)averageOfNum1:(int)num1 andNum2:(int)num2
{
// 在这种情况下,self代表类
int sum = [self sumOfNum1:num1 andNum2:num2]; //等于以前这种 int sum=[JisusnQi sumOfNum1:num1 andNum2:num2]
return sum / 2;
}
@end
3.NSString类
NSString *str = @"itcast";
NSLog(@"我在%@上课", str);
//对比回忆c语言中 char *name ="itcast";
//NSLog(@"%s", name);
>合成新的字符串
int age = 15;
int no = 5;
NSString *name = @"哈哈jack"
NSString *newStr = [NSString stringWithFormat:@"My age is %d and no is %d" and name is%@, age, no, name]
NSlog(@"----%@", newStr);
>size 计算字数
int size =[name length];
这个size =6
>[newStr length] 的返回值类型是unsigned long类型 要使用%ld占位符
NSLog(@"--%ld", [newStr length] );
>查文档一般搜“NSString“
找到
class NSString reference //类参考
或者查看
sample class //样例代码