//
// main.m
// Category基本使用:1.不修改类而扩充类。2.对于一个庞大的类,分模块开发。 #import <Foundation/Foundation.h>
#import "Person.h"
#import "Person+NJ.h" /*
方法:
方法的声明:
方法的实现: 所以: 通过分类给某一个类扩充方法, 也分为声明和实现两个部分 // 分类的声明
@interface ClassName (CategoryName)
NewMethod; //在类别中添加方法
//不允许在类别中添加变量
@end ClassName: 需要给哪个类扩充方法
CategoryName: 分类的名称
NewMethod: 扩充的方法 // 分类的实现
@implementation ClassName(CategoryName)
NewMethod
@end ClassName: 需要给哪个类扩充方法
CategoryName: 分类的名称
NewMethod: 扩充的方法 */
int main(int argc, const char * argv[]) {
Person *p = [[Person alloc] init];
p.age = ;
[p say]; [p playFootball];
[p playBasketball]; NSString;
NSArray;
return ;
}
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property (nonatomic, assign) int age;

- (void)say;

@end
//  Person.m

#import "Person.h"

@implementation Person

//-(void)say
//{
// NSLog(@"age = %i", _age);
//} -(void)say{
NSLog(@"age= %i",_age);
} @end
//
// Person+NJ.h #import "Person.h" @interface Person (NJ)
// 扩充方法 - (void)playFootball; - (void)playBasketball; @end
//
// Person+NJ.m #import "Person+NJ.h" @implementation Person (NJ)
// 实现扩充方法 - (void)playFootball
{
NSLog(@"%s,%i", __func__,[self age]);
} - (void)playBasketball
{
NSLog(@"%s,%i", __func__,[self age]);
}
@end

oc57--Category 分类的更多相关文章

  1. category分类

    /* 使用继承关系来扩充一个类,有一个弊病,高耦合性 category(分类,类别) 能够帮我们扩充一个类的功能 */ - (void)superJump { //    [self eat]; [s ...

  2. Objective-C中的Category(分类)

    Objective-C中的Category(分类) 1 Category概念:动态的为已经存在的类加入新的行为(方法) 2 Category(分类)创建的方法 (1)通过Xcode生成分类 (2)能够 ...

  3. 使用django开发博客过程记录4——Category分类视图

    在写点击博客的所属分类,显示所有该分类的文章时真是让我想了好一会,为什么呢?因为我使用的是cbv模式开发的而不是简单的视图处理逻辑的,所以,有些操作会被包装好了,你并不知道它的细节,那么我们今天要实现 ...

  4. Objective-C( Category 分类,非正式协议,分类延展)

    分类: 主要是给原来类增加一些方法;不可以增加成员变量 Person (Person+eat) 非正式协议: 非正式协议就是类别,即凡是NSObject或其子类Foundation框架中的类增加的类别 ...

  5. iOS - OC Category 分类

    1.Category 1)分类/类别(category): 允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).用以扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之 ...

  6. [Objective-c 基础 - 2.8] category分类/类别/类目

    A.给某个类扩充方法(不改变原来的类) 例如,给类Person加上名为Simon的category,加上一个-study方法 使用()注明 Person+Simon.h @interface Pers ...

  7. Category 分类

    1.Category 1)分类/类别(category): 允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).用以扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之 ...

  8. [OC笔记] Category分类之见解

    用过别的语言做过开发的同学都知道,如果你想扩充一个类,就应该去继承这个类.但是OC里面有更好的方法,那就是分类. 那什么是分类呢?就是在不改变原先类,我们可以在其中添加咱们自定义的方法,这样和同事合作 ...

  9. OC category(分类)

    // ()代表着是一个分类 // ()中的Test代表着分类的名称 @interface Student (Test) // 分类只能扩展方法,不能增加成员变量 - (void)test2; @end

  10. Xcode7中,如何新建category分类

    易忘,所以留存: 1, 2, 3, 结果如下: 补充: http://tech.meituan.com/DiveIntoCategory.html

随机推荐

  1. 笔记《精通css》第5章 链接应用样式

    第5章    链接应用样式 1.链接伪类选择器 a : link{    }   (寻找没有被访问过的链接) a : visied{    }(寻找被访问过的链接) 动态伪类选择器 a : hover ...

  2. C# WinForm窗体应用(第四天)

    一.点击登录按钮,将两个窗体进行连接,并进行用户名和密码验证. /// <summary> /// 登录设置 /// </summary> /// <param name ...

  3. 数据结构应用实例#栈&单链表#简易计算器

    修改BUG的时候一不小心BUG越修越多,鉴于维护程序并不是学习数据结构的初衷,我已经果断的弃坑了!! 以下内容再不更新,Github上的代码直接无法正常编译运行.... 参考参考就好,学习到栈的作用就 ...

  4. Win10电脑如何更改开机启动项

    https://jingyan.baidu.com/article/5970355284f0458fc1074049.html

  5. 关于JS闭包的一点理解

    通常来讲,闭包通常是指函数内部可以访问到外部作用域的一个过程. 一.广义的定义:任何函数都产生了闭包. 二.狭义的定义:函数内部能访问到其他变量函数的作用域. 我们来看个例子 var a = 10; ...

  6. python str操作

    1. str.format():使用“{}”占位符格式化字符串(占位符中的索引号形式和键值对形式可以混合使用). 1 >>> string = 'python{}, django{} ...

  7. Centos下安装mysql(二进制版)

    1.下载安装包,选择相应的平台.版本,比如,选择64位Linux平台下的MySQL二进制包“Linux-Generic (glibc 2.5)(x86,64-bit),Compressed” 如:#w ...

  8. Huawei-R&S-网络工程师实验笔记20190607-STP生成树协议(基本配置、桥优先级、根桥选举、根端口、路径开销、边缘端口)

    >Huawei-R&S-网络工程师实验笔记20190607-STP生成树协议(基本配置.桥优先级.根桥选举.根端口.路径开销.边缘端口) >>实验开始,先上拓扑图参考: &l ...

  9. Codeforces 432D Prefixes and Suffixes (KMP、后缀数组)

    题目链接: https://codeforces.com/contest/432/problem/D 题解: 做法一: KMP 显然next树上\(n\)的所有祖先都是答案,出现次数为next树子树大 ...

  10. HTML5 重力感应效果,实现摇一摇效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...