简单说说类和对象
类是对一类事物的抽象。对象是这个类中的一个具体的存在,我们也称之为实例。对象中会包含一些适用于自己的变量,访问变量或执行任务我们称之为方法。
[Car new]
我们直接通过Car这个类方法产生了一个实例,所以Car也可以看作是一个生产汽车的工厂。这个方式也可以用来实现类簇模式。
Car中我们定义了对象可以使用的方法比如run。我有一辆车是保时捷,你有一辆车是夏利。
[aCar run];
[bCar run];
两个车虽然都可以run,但是速度,妹子的关注成都,撩妹成功率完全不一样,这种对不同对象调用相同方法行为不同的表象我们称之为面向对象的多态。当然,调用并不妥当,应该是发送消息。
规范的写法
在ObjC中定义一个类需要分两个文件,一个是接口文件,一个是实现文件。一般的使用方式是这样的:
--------------- @intergace部分 ---------------
@inteterface ClassName: SuperClassName
// 在此处定义property和method
@end
--------------- @implementation部分 ---------------
@implementation {
// 在此处定义实例变量
}
// 在此处编写方法实现
@end
注意:在子类中使用实例变量,必须在接口部分声明。在实现部分声明的变量是私有的,子类中并不能直接访问。
@private、@public、@protected
在interface文件中使用这些权限修饰符声明变量有效。
-
@private 作用范围只能在自身类
-
@protected 作用范围在自身类和继承自己的子类,什么都不写,默认是此属性。
-
@public 作用范围最大,在任何地方
image.png
继承
其实继承是面向对象概念上对内存结构扩充的一个包装。比如父类有a变量,继承子类先malloc分配了父类的变量和函数空间并且有权限去访问这些空间。变量比较简单,方法还涉及了一个重写和重载,子类原样写方法叫重写(override),改改参数叫(overload)。
网友评论