黑马程序员技术交流社区

标题: 类方法的一些认识 [打印本页]

作者: 许小炜    时间: 2015-9-12 22:12
标题: 类方法的一些认识
类方法可以和实例方法同名, 相互之间互不影响
-(void)eat;
+(void)eat;


self    可以出现在对象方法中,也可以出现在类方法中

在对象方法中  self  代表着  谁调用这个方法,self就代表调用的那个对象

类型方法中  self   代表着   当前类



类方法可以从父类继承而来,子类可以重写类方法 // ,如description类方法

类方法和实例方法一样在interface里声明, 在implementation里实现。

类方法由类名调用,  实例方法(对象方法)由对象调用。

在类方法里使用了self, self指代的是调用者类

在类方法中不能使用类的成员变量(实例变量/属性)

类方法和对象方法之间不能使用self 相互调用

类方法中调用对象方法
1.对象作为方法的参数传递过来
2.创建一个对象调用对象方法  Person *person  = [Person new];

//类方法调用类方法
类方法可以调用类方法,但是不要自己调用自己


对象方法可以调用对象方法


对象方法,类方法,都不能自己调用自己


self的区分
要清楚self在不同的方法里面代表不一样
在对象方法中,self是一个对象
在类方法中,self代表是一个类

总结:
类方法里面可以调用类方法,对象方法.对象方法里面也可以调用类方法,对象方法,但是要注意self代表什么,以及不能用self调用当前方法,否则会出现死循环.

类方法和对象方法的比较
- 对象方法以减号开头, 可以使用成员变量
+ 类方法以加号开头,不能使用成员变量

类方法使用场景
如果我们调用一个方法,该方法中不需要使用成员变量,那么我们可以将该方法声明为类方法

在本类中:
1,  本类 类方法之间的调用   使用self    self代表当前类;
2,  本类 对象方法之间的调用   也是用self;  self代表调用对象。


不是本类中:
1,        类方法或者对象方法想要调用别的类中的对象方法的话,可以将对象实例作为参数传递过来;
2,        类方法或者对象方法想要调用别的类中类方法的话,不需要传参,直接用类名就可以。
作者: ------    时间: 2015-9-12 22:22
辛苦辛苦~
作者: 范文鹏    时间: 2015-9-12 22:38
辛苦辛苦 加油加油!
作者: wulei1982516    时间: 2015-9-12 22:52
辛苦辛苦,我来给你泡杯咖啡。。。。。。。
作者: lixiaob626    时间: 2015-9-12 23:01
加油。。。
作者: jsh_513    时间: 2015-9-13 22:15
理解的真透彻,有前途有前途!!!!!!!!
作者: fangshiqi    时间: 2015-9-14 00:31
大神好牛逼!!
作者: luffy901210    时间: 2015-9-14 00:40
感觉还好,
作者: 大宝820    时间: 2015-9-17 09:50
正好看到这里,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2