1.类的两种包装类: 将基本数据包装成对象:NSValue;NSNumber;

NSValue是NSNumber的父类,

NSValue用来封装一些基本数据, NSValue是一个通用的包装类,用来包装单个基本数据类型;

NSNumber是一个更具体的包装类,用于包装c语言的各种数值类型。(数值!)

其主要包括3个方法:

+(id)numberWithXxx:直接将特定类型的值包装成NSNumber;

-(id) initWithXxx:需要先创建一个NSNunmer对象,再使用该方法,用一个基本 数据值来初始化这个对象;

-(id)xxxValue:返回NSNumber的包装的基本类型的值。

#warming 实验1:使用NSNumber的三个方法。

2.处理类的对象:NSLog,description;

NSObject中提供了NSLog,description来处理类的对象;

NSLog打印的是对象 description的返回值;

description的作用:让对象进行自我描述。

ps:自带的description总是返回对象的 16进制首地址。

#warming 实验2:重写description方法;

“isEqual”和“==”: “==”表示比较的两者内存地址必须相同。

ps:NSString中,用常量池来管理直接字符串,常量池保证相同的字符串直接量只有一个。

NSString重写了isEqual方法,NSObject中二者没有区别(“isEqual”和“==”);

重写isEqual:方法可以提供自定义的相同标准;

重写isEqual需满足以下条件: 自反性;对称性;传递性;一致性;对任何不是nil的x,[x isEqual:nil]一定返回假。

#warming 实验3:重写isEqual方法,只要id相同就提示重复;

3.类别和扩展

(1)类别(category):扩展类,方便类的子类使用扩展后的方法;

注意:类别只能扩展类的方法,不能添加成员变量;也不能用@property合成属性。

添加类别的语法:

@interface 已有类(类别名)

@end

@implementation 已有类(类别名)

@end

使用类别的作用:

1.方便类的子类使用扩展后的方法;

2.可以使用类别将类的实现方法分模块化实现,分布到不同的实现文件中,提高项目后期的可维护性。

3.使用类别来调用私有方法。

(2)扩展:相当于匿名的类别,但是可以添加成员变量和用@property合成属性。

4.协议与委托

【学习笔记】【oc】类的包装类 协议 category的更多相关文章

  1. python学习笔记4_类和更抽象

    python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...

  2. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  3. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  4. 物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus

    物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus 物联网 (IoT) 不只是新技术,还是与旧技术的集成,其关键在于通信.可用的通信方法各不相同,但是,各种不同的协议在将海量“事物”连接 ...

  5. UML学习笔记:类图

    UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...

  6. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  7. [原创]java WEB学习笔记07:关于HTTP协议

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. Java SE学习笔记 --->高级类特性 ---> toString() 方法

    概述: toString() 方法在面向对象当中十分常见,使用频率很高,和equals() 方法一样,也是Object类中定义的方法. jdk中 源码: java.lang.Object类中ToStr ...

  9. Object C学习笔记14-分类(category)

    在.NET中有一个非常带劲的特性,那就是扩展方法. 扩展方法使你能够向现有类型“添加”方法(包括你自定义的类型和对象噢),而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩展方法是一种特殊的 ...

随机推荐

  1. Pascal's Triangle II —LeetCode

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...

  2. hdu4746:2013杭州网络赛I 莫比乌斯反演

    题意: 有5000组询问,每组询问求有多少i,j满足i∈[1,n],j∈[1,m]且gcd(i,j)的质因子数目<=p. n,m<=500000 思路: 首先预处理出每个数的质因子数目分别 ...

  3. Java学习日记-2.3 基本数据类型和对象所占内存空间大小

    转自:http://www.newsmth.net/nForum/#!article/Java/324167

  4. python 查看文件夹权限组和用OS模块操作文件夹

    @建议操作server服务器文件夹时可以映射网络驱动盘 import win32securityimport ntsecuritycon as con FILENAME = r'D:\tmp\acc_ ...

  5. 【服务器运维】Windows Server 2008 R2 下配置证书服务器和HTTPS

    前言 2017年1月1日起App Store上的所有App应用将强制开启ATS功能. 苹果的ATS(App Transport Security)对服务器硬性3点要求: ① ATS要求TLS1.2或者 ...

  6. Android实现后台长期监听时间变化

    1.首先我们的目的是长期监听时间变化,事实上应用程序退出. 通过了解我们知道注冊ACTION_TIME_TICK广播接收器能够监听系统事件改变,可是 查看SDK发现ACTION_TIME_TICK广播 ...

  7. HDFS集群balance(3)-- 架构细节

    转载请注明博客地址:http://blog.csdn.net/suileisl HDFS集群balance,对应版本balance design 6 如需word版本,请QQ522173163联系索要 ...

  8. struts2,hibernate,spring整合笔记(4)--struts与spring的整合

    饭要一口一口吃,程序也要一步一步写, 很多看起来很复杂的东西最初都是很简单的 下面要整合struts和spring spring就是我们的管家,原来我们费事费神的问题统统扔给她就好了 先写一个测试方法 ...

  9. 《AngularJS》--指令的相互调用

    转载自http://blog.csdn.net/zhoukun1008/article/details/51296692 人们喜欢AngularJS,因为他很有特色,其中他的指令和双向数据绑定很吸引着 ...

  10. 将用户信息保存到Cookie中

    /** * 把用户保存到Cookie * * @param request * @param response * @param member */ private void rememberPwdA ...