类的本质其实也是一个对象(类对象)
1、类对象在程序时一直存在
2、类对象是一种数据结构,
Person *p=[Person new];
P 是实例对象
Person也是一个对象(classl类)】
1、通过实例对象获取
Dog *d=[Dog new]; Class c=[d class];
2、通过类名获取(类名其实就是类对象)
Class c= [Dog class];
使用类名可以做哪些事情??
类对象的使用:
创建对象:
[Person new];
调用方法 :
[Person test];
Person *p =[Person new];
Class c1=[p class];
Person *p1=[c1 new];
[c1 test];
类方法:
+表示类方法,就是类调用方法。不依赖于任何对象的方法。
-表示实例(对象)方法,只能是对对象可调用的,依赖于任何对对象的方法
类的调用3.3
[类名 类方法名称]
调用方法 和对象调用的方法相同
2、类方法也可以是从父类继承而来子类可以重写类方法,
3、类方法和实力方法一样在interface里声明 ,在implementation里实现
4、类方法只能被向类方法消息才被执行,向实例对象发送方法是不能被触发执行的
5、在类方法里使用self ,这个self执行的类的对象class object而不是实例对象instance object
类方法的易犯错误
1.在类方法中不能使用类的成员变量
错误信息 Instance variable ‘_speed’ accessed in class method
必须要类调用类方法
在类方法中可以调用对象方法
对象作为方法的参数传递过来
可以创建一个对象
类方法不能调用自身
|
|