oc学习笔记(五)面向对象-类方法,self,NSString类

本文详细介绍了Objective-C中的类方法与对象方法的区别,包括它们的定义、调用方式及适用场景,并通过示例代码展示了如何使用self关键字及类方法调用对象方法。

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 //样例代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值