oc--学习笔记(一)

oc--学习笔记(一)

    1.类方法

     > 加号开头

     > 类方法只能由类名调用

     > 类方法中不能访问成员变量

     > 类方法可以调用类方法

     > 允许类方法和对象方法同名

     

     类方法的好处和使用场合

     > 不依赖于对象, 执行效率高

     > 能用类方法就用类方法

     > 当方法内部不需要使用到成员变量(实例变量)时,就可以改为类方法

     

     

     2.匿名对象

     没有名称的对象称之为匿名对象  [Iphone new];

     有名称的对象:用一个指针来接收了对象的地址称之为有名称的对象 Iphone *ip = [Iphone new];

     匿名对象的使用场景:

     > 当对象方法仅仅调用一次的时候

     > 匿名对象可以作为实际参数传递

     

     3.封装

     刚开始可以理解为对属性的封装,封装其实就像洗衣机,你只看得到外壳外的开关,置于是怎么实现的,里面的具体机械构造都被封装在外壳里面.

     约定:

     set方法

     > 一定是对象方法(因为是对对象成员变量的设置)

     > 返回值一定是void

     > 一定以set开后后面接上成员变量去掉下划线的名称,然后首字母大写

     > 一定有参数,参数类型一定和成员变量一致

     

     get方法

     > 一定是对象方法(同上)

     > 一定有返回值,返回值和成员变量类型一致

     > 方法名称直接写成员变量名称去掉下划线

     > 一定没有参数

     

     封装的原则:

     将不需要对外提供的内容都隐藏起来

     把属性都隐藏,提供公共的方法对其访问

     

     优点:

     可以过滤掉一些不符合逻辑的数据,提高代码的健壮性

     

     组合模式:

     在一个类中声明其它对象的指针变量

     优点:全局的对象方法都可以访问, 简化了我们的代码

     缺点:依赖性强

     

     使用场景:

     当多个方法都使用到了同一个对象,就把它设置为成员变量

     

     如何判断组合模式是否合理:

     XXX 拥有 XXX

     

     方法之间调用:

     类方法调用类方法  可以

     类方法调用对象方法 不可以

     对象方法调用类方法 可以

     对象方法调用对象方法 self


时间: 2024-10-11 12:06:11

oc--学习笔记(一)的相关文章

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSNumber 前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了. 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象.

黑马程序员-OC学习笔记之block

过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9426    Accepted Submission(s): 4151 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做par

黑马程序员-OC学习笔记之ARC

---------------------- IOS开发.Android培训.期待与您交流! ----------------------一.什么是ARC        ARC是自动引用计数,苹果官方在Xcode4.2及以后版本中加入的一个内存管理机制,完全取代了程序员人工的内存管理,使得程序员只须关心程序本身.使用ARC,编译器会自动在代码中加入内存管理代码,是一个编译器特性,而不是运行时特性,当然,它也和JAVA的垃圾回收不同,它的本质和手动的内存管理是一样的,只是这些代码编译器会自动添加.

黑马程序员-OC学习笔记之NSString与NSMutableString

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSString与NSMutableString 相信大家对NSString类都不陌生,它是OC中提供的字符串类,它的对象中的字符串都是不可变的,而它的子类NSMutableString类的对象中的字符串就是可变的.什么是可变与不可变呢?二者的区别就是在已经创建的一个字符串对象中,在程序中能不能更改字符串,比如拼接新的字符串,可变的可以在原字符串中更改,

黑马程序员——OC学习笔记—— Copy

黑马程序员——OC学习笔记—— Copy ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- copy 即对象拷贝 要使用对象数据而不希望修改对象时,可以使用copy copy叫做浅拷贝  mutablecopy深拷贝 copy需要遵守NSCopying协议,实现CopywithZone方法 MutableCopy也一样要遵守相应协议 注意: OC中copy复制的对象都是不可变的  mutablecopy复制的是可变副本 浅拷贝:只拷贝地址,不

黑马程序员-OC学习笔记之Foundatio框架集合类

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.OC数组 OC数组是一个类,它也分不可变数组NSArray和可变数组NSMutableArray. 1?不可变数组的创建 // 创建一个不可变数组,元素为一个OC字符串对象 @"小桥" NSArray *array1 = [NSArray arrayWithObject:@"小桥"]; // 创建一个不可变数组,元素为多个O

黑马程序员-OC学习笔记之autorelease与自动释放池

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.autorelease autorelease与release相似,是OC中的一个对象方法.这两个方法都能把对象的引用计数器减1,但是release是一个精确的减1,对对象的操作只能在release之前进行,如果是在之后,就会出现野指针错误:而autorelease是一个不精确的引用计数器减1,当给对象发送autorelease消息时,对象就会被放到自动

OC学习笔记 ARC 强指针和弱指针 内存管理

强调一些概念 类:是一种结构,它表示对象的类型,对象引用类来获取和本身有关的各种信息,特别是运行什么代码来处理每种操作. 对象:是一种结构,它包含值和指向其类的隐藏指针. 实例:对象的另一种称呼. 消息:是对象可以执行的操作,用于通知对象去做什么.对象接收消息后,将查询对应的类,以便查找正确的代码来运行. 方法:是为响应消息而运行的代码,根据对象的类,消息可以调用不同的方法. 接口:是对象的类应该提供特殊的特性的描述. 用法如:@property (attribute1,attribute2)

oc学习笔记-语法学习总结

1.定义类:@interface 类名 : 父类@end 2.使用:(冒号)表示继承一个类Student : NSObject 3.使用()定义一个Catagory(类别) * 作用:在不改变原有类结构的基础上,扩展原有类的方法(不能扩展属性),但不建议重载原有类的方法 * 开发工具默认生成的文件为:类名+Catagory名称 * Catagory可以写在单独的文件中,也可以写在原有类的文件中,如何写根据需求来决定. 4.使用<>表示实现一个Protocol(协议),如需实现多个协议,将协议名

OC学习笔记 id类型

id是oc语言中一个独特的数据类型.一种通用对象类型.可以转换为任何数据类型,即id类型的变量可以存放任何数据类型的对象. 万能指针,能指向操作任何OC对象 id ==NSObject * 这是为什么呢?还是从OC的内部实现机制上来分析吧! 在内部处理上,id类型被定义为指向对象的指针,这可以从id的定义中看出.id在objc.h中的定义为: 1 typedef struct objc_object { 2 Class isa; 3 } *id; 而Class为typedef struct ob