[OC笔记] protocol之我的见解】的更多相关文章

OC中的protocol就是和JAVA中interface差不多的东西,但是又不是完全一样的.这个protocol常用来实现委托,也就是自己不实现,当事件产生的时候去回调委托者. 让委托者去执行响应的动作. 咱们先定义一个Button类来模拟按钮代码如下 Button.h #import <Foundation/Foundation.h> @class Button; @protocol ButtonEventDelegate <NSObject> -(void)onClick:(…
OC中protocol.category和继承的区别以前还是有点迷糊,面试的时候说的有点混乱,现在结合一些资料总结一下. 利用继承,多态是一个很好的保持"对扩展开放.对更改封闭"(OCP)的办法,也是最常见的一种方法.Objective C还支持另外两种语法来支持OCP:Protocol和Category.Protocol只能定义一套接口,而不能提供实现,变相的也是一种Abstract class的实现方式(oc 语法上本身不支持抽象基类).Category可以为类提供额外的接口和实现…
用过别的语言做过开发的同学都知道,如果你想扩充一个类,就应该去继承这个类.但是OC里面有更好的方法,那就是分类. 那什么是分类呢?就是在不改变原先类,我们可以在其中添加咱们自定义的方法,这样和同事合作的时候,就用不着担心合并 代码产生的冲突了~因为我们可以定义属于自己的分类.但是使用分类的时候却不能向原先类中添加字段,如果想添加方法,那 应该使用继承来实现. 话不多说,我们直接上代码,我前几篇日志中提到一个student类,里面的方法是在是太单调了,只有一个keepBook的方法,现在 我需要让…
开放封闭原则(OCP)就是,“对扩展开放,对更改封闭”.是所有面向对象设计的一个核心宗旨.感兴趣的可以看百度百科的一些解释:http://baike.baidu.com/view/2493421.htm. 在用Objective C进行开发的时候,OCP当然也是宗旨.利用继承,多态是一个很好的保持OCP的办法,也是最常见的一种方法.Objective C还支持另外两种语法来支持OCP:Protocol和Category.(想要了解Objective c语法的可以看这里:http://develo…
1.OC简介 全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发. C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS X平台和iOS平台的应用程序 2. OC语法概述 2.1关键字 每一种语言都有关键字,比如C语言的 flaot.int等等,那么oc有哪些关键字呢? 基本上所有关键字都是以@开头 下面列举一些常见的关键字,可以先预览一下,不用去翻资料查找它们的含义…
/** * 一个简单的对象 * * @author suzhen * */ public class SimpleObjcet { /** * 声明一个age字段 */ private Object obj; /** * 取方法 * * @return */ public Object getObj() { return obj; } /** * 存方法 * * @param obj */ public void setObj(Object obj) { this.obj = obj; } }…
1.OC简介 全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发. C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS X平台和iOS平台的应用程序 2. OC语法概述 2.1关键字 每一种语言都有关键字,比如C语言的 flaot.int等等,那么oc有哪些关键字呢? 基本上所有关键字都是以@开头 下面列举一些常见的关键字,可以先预览一下,不用去翻资料查找它们的含义…
这是我第一个OC程序,详情都写在了注释里面,讲的是Student和Book这两个类的创建和使用.(是不是觉得student这个类在各种语言入门代码里经常出现呢?真实有爱) 看完这些,你会发现,咱们其实缺少很多东西,比如,学生是可以读书的,学生还可以有classmate等等,这些咱们暂时都没有涉及,但是入门是绝逼够了,这是我最近看书的一些感悟,从明天开始将会持续连载学习感悟与大家分享~iOS大神们也不要喷我了,我是一只小菜鸟~~…
画图 图解 代码 总结 一.画图 本人画了一个图(字体和画图水平请忽略) 二.图解 1.首先我们上边是一个按钮的类,按钮当中包括了一条线,这个线是什么呢? 其实难理解就难理解到这条线上了 1⃣️这条线首先来说属于按钮的一部分,是一个成员变量 2⃣️这条线中定义了一个协议,什么协议?为什么要定义协议?我想到一个非常好的例子 我们的电脑想要实现通信,遵循的是TCP/IP协议,协议本身独立了我们电脑存在.但是我们电脑内部默认有那么一个东西让我们实现了这个协议 3⃣️监听器也实现这个协议,接着上边的例子…
一.protocol 1.基本用途 1> 可以用来声明很多方法,但是不能用来声明成员变量 2> 只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明 3> 只要父类遵守了某个协议,就相当于子类也遵守了 2.格式 1> 协议的编写 @protocol 协议名称 //方法声明列表 - (void)test; - (void)test2; + (void)test; + (void)test2; @end 2> 某个类遵守协议 @interface 类名 :父类 <…