黑马程序员——IOS基础——OC面向对象六分类
来源:互联网 发布:网络招聘是做什么的 编辑:程序博客网 时间:2024/06/08 12:51
------- android培训、java培训、期待与您交流!
分类:可以给某一个类扩充一些方法(不修改原来类的代码)
在不改变原来类内容的基础上,可以为类增加一些方法
注意:
1.不可以扩充成员变量,只能加方法
2.在分类方法的实现中可以访问原来类中声明的成员变量
3.分类优先级最高,当调用一个方法:分类(最后参与编译的分类优先)---->原来类---->父类
4.如果多个分类扩展实现了同一个方法,则最后编译的点m文件覆盖前面的方法,被先调用。
分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法,会导致原来的方法没法使用
方式:
//声明@interface 类名(分类名称)@end//实现@implementation 类名(分类名称)@end
=======实例1:
//声明Person+mj.h中:#import "Person.h"@interface Person (MJ)- (void)study;@end//实现Person+mj.m中:#import "Person+mj.h"@implementation Person (MJ) //一般写分类模块名称- (void)study{NSLog(@"学习-------");}@end//调用#import <Foundation/Foundation.h>#import "Person.h"#import "Person+mj.h"int main(){Person *p = [[Person alloc] init];[p test];//person中有的方法[p study];//在不改变person类的声明实现,当不能实现继承时,可以通过分类来添加方法return 0; }
=======实例2:为系统自带的类添加方法
//1.给NSString增加一个类方法:计算某个字符串中阿拉伯数字的个数
//2.给NSString增加一个对象方法:计算当前字符串中阿拉伯数字的个数
//声明NSString+Number.h中#import <Foundation/Foundation.h>@interface NSString (Number)+ (int)numberCountOfString:(NSString *)str;- (int) numberCount;//自己调用@end//实现@implementation NSString (Number)+ (int)numberCountOfString:(NSString *)str{int count=0;for(int i=0;i<str.length;i++){unichar c=[str characterAtIndex: i];//获取str字符串内部具体某一个字符,NSUIteger就是unsigned long,即数字if(c>='0' && c<='9')//if(c>=48 && c<=57){count++;}}return count;//========以下代码可以完全代替以上代码========return [str numberCount];}- (int) numberCount{int count=0;for(int i=0;i<self.length;i++){unichar c = [self characterAtIndex:i];//去除i这个位置对应的字符if(c<='9' && c>='0'){count++;}}return count;}@end//调用#import <Foundation/Foundation.h>#import "NSString+Number.h"init main(){int count1=[NSString numberCountOfString:@"a2134asd"];//类方法可以直接通过NSString 调用类方法int count2=[@"123sadf213" numberCount];NSlog(@"%d,%d",count1,count2);return 0;}
------- android培训、java培训、期待与您交流!
0 0
- 黑马程序员——IOS基础——OC面向对象六分类
- 黑马程序员——IOS基础——OC面向对象六SEL
- 黑马程序员——ios开发基础之OC中的面向对象以及对象特性
- 黑马程序员——OC基础---面向对象语法
- 黑马程序员——OC面向对象的基础认识
- 黑马程序员——IOS基础——OC面向对象四开发技巧
- 黑马程序员——IOS基础——OC面向对象七类的深入
- 黑马程序员——IOS基础(OC面向对象编程一)
- 黑马程序员——IOS基础(OC面向对象编程二)
- 黑马程序员——IOS基础(OC面向对象编程三)
- 黑马程序员——OC—OC中的面向对象
- 黑马程序员——OC基础---面向对象(思想,类,对象,三大特性)
- 黑马程序员——OC---面向对象之类和对象
- 黑马程序员——面向对象基础
- 黑马程序员——ios开发基础之OC中的分类、协议、延展和代理
- 黑马程序员—面向对象(基础)
- 黑马程序员 java基础<—>--->面向对象
- 黑马程序员——ios学习笔记 OC 分类
- 使用JavaBean创建您的网上日历本 有的朋友曾经说过,如果有一个网上的日记本,或者一个网上的万年历能提醒自己到时去干什么事情就好了。其实呀,这样的日历本您自己也能做一个。不信你看下面的例子: 〈
- android中设置AlertDialog的大小 .
- 简单密码检测程序
- 解决sql server2005服务无法启动问题
- C语言实现动态一维/二维数组的申请
- 黑马程序员——IOS基础——OC面向对象六分类
- 每日一练------最小公倍数、最大公约数求解
- ORACLE服务器监控
- Lua闭包(closure)示例
- 什么是J2EE?
- javascript文件夹选择框的两种解决方案
- 第六周(项目三)——用多文件组织多个类的程序。
- 用EasyX图形库VS2012的控制台的二维图形的绘制(仅限C++)
- Android数据库更新机制