OC学习篇之---类的三大特性 封装,继承,多态

本文介绍了Objective-C中的类的三大特性:封装、继承和多态。封装通过访问控制实现字段和方法的保护;继承允许代码重用,提高可维护性;多态为编写更优雅的代码提供了可能,常用于设计模式中。通过实例代码展示了这些特性的应用。
摘要由CSDN通过智能技术生成
               

之前的一片文章介绍了OC中类的初始化方法和点语法的使用:http://blog.csdn.net/jiangwei0910410003/article/details/41683873,今天来继续学习OC中的类的三大特性,我们在学习Java的时候都知道,类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性:


一、封装

学习过Java中类的同学可能都知道了,封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,Java中有四种访问权限修饰符:public,default,protected,private,访问权限一次递减的,这样我们在定义类的时候,哪些字段和方法不想暴露出去,哪些字段和方法可以暴露,可以通过修饰符来完成,这就是封装,下面来看一个例子吧:

Car.h

//  Car.h//  05_ObjectDemo////  Created by jiangwei on 14-10-11.//  Copyright (c) 2014年 jiangwei. All rights reserved.//#import <Foundation/Foundation.h>@interface Car : NSObject{    //这个属性就是对外进行保密的相当于private,所以我们需要在外部访问的话,必须定义get/set方法    //默认的是private的,但是我们可以使用@public设置为public属性的,那么在外部可以直接访问:person->capcity = 2.8;    //当然我们一般不这么使用,因为这会破坏封装性,这种用法相当于C中的结构体中权限    //一共四种:@public,@protected,@private,@package,这个和Java中是相同的@public    float _capcity; //油量属性}- (void)run:(float)t;@end
这里我们可以看到,OC中也是有四种访问权限修饰符:

@public、@protected、@private、@package

其中默认的修饰符是@private

但是这里要注意的是:OC中的方法是没有修饰符的概念的,这个和Java有很大的区别,一般都是公开访问的,即public的,但是我们怎么做到让OC中的一个方法不能被外界访问呢?

OC中是这么做的,如果想让一个方法不被外界访问的话,只需要在.m文件中实现这个方法,不要在头文件中进行定义,说白了就是:该方法有实现,没定义,这样外界在导入头文件的时候,是没有这个方法的,但是这个方法我们可以在自己的.m文件中进行使用。

为什么要介绍这点知识呢?因为在后面我们会说到单利模式,到时候就会用到这个知识点了。


二、继承

继承是类中的一个重要的特性,他的出现使得我们没必要别写重复的代码,可重用性很高。当然OC中的继承和Java中是一样的,没多大区别,这里在看一个例子吧:

首先来看一下父类:Car

Car.h

////  Car.h//  06_ExtendDemo////  Created by jiangwei on 14-10-11.//  Copyright (c) 2014年 jiangwei. All rights reserved.//#import <Foundation/Foundation.h>@interface Car : NSObject{    NSString *_brand;    NSString *_color;}- (void)setBrand:(NSString *)brand;- (void)setColor:(NSString *)color;- (void)brake;- (void)quicken;@end
在Car类中定义了两个属性,以及一些方法

Car.m

////  Car.m//  06_ExtendDemo////  Created by jiangwei on 14-10-11.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值