1.Objective-C and C语言
2.Objective-C 类
- 类的定义:Objective-c中将具有相同特性或行为的事物归为一类
- 类由两部分组成:声明(关键字:@interface),实现(关键字:@implementation) .h文件中声明 .m文件中实现
- 类的继承:
-
- 子类继承父类的所有成员变量和方法,Objective-c中只能单继承(只能有一个父类)
- 子类可以从写父类分方法,从写之后执行子类从写的方法
- 继承关系是一个树形的关系,所有子节点只能有一个根节点,一个根节点可以有很多子节点
- 继承格式 :@interface 类名 : 父类名
- 类成员变量类型:NSString 字符型 NSInteger 整形 CGFloat 浮点型
.h文件 类的声明文件
.m类的实现文件
3.OBjective-c 对象
- 对象的定义:万物且对象,日常生活中我们能看到的事物都能称为对象,类比较抽象,对象是某一具体的实例。
- 对象的创建需要分配内存空间,对分配的内存空间进行初始化。
- Person(类) *Per(对象) [Person alloc](person类调用alloc方法为对象分配内存空间) init(初始化方法给对象赋值)
- 通过对象调用方法访问成员变量(Xcode 默认是受保护类型 不能直接访问)
4.OBjective-c 属性
- 为了代码的安全性,Xcode默认成员变量是受保护的,要访问成员变量得通过该类的方法间接访问,赋值的方法简称setter方法,取值的方法简称getter方法。
- 引入属性提高了代码的开发效率,直接将成员变量的steter和getter方法封装好。
- 属性声明的关键字 @property (封装了steter方法) @synthesize(封装了getter方法) 开发中@synthesize可以省略不写
属性的特性:readwrite readonly assign retain copy nonatomic
assign:默认行为,使用@property NSInteger _age就使用了assign行为,就是给实例变量赋了一个值
retain:实现了两个功能,一个是保留了赋值时传递的对象,其次是赋值前释放了以前值,使用retain可以实现上面讨论的内存管理的优点,使用时加上 @property (retain) NSString *_name(在手动管理内存的情况下,被retain修饰的属性都要在dealloc中release一下,是产生对象的类型);
copy:发送一条复制的消息给被传递的对象,保留它,并释放任何以前的值;
nonactomic:非原子性,加上后可以提升访问速度,但当两个线程同时修改同一个属性时就会出现问题,在单线程的情况下使用
atomic:原子性,在多线程的情况下有加锁解锁操作(系统默认是原子性)。
readwrite:可读写
readonly:只读
3.OBjective-c 方法
- 基本常见的方法(初始化方法 构造器方法 内存释放方法)
- 方法调用的本质:[receiver message];系统内部会在执行代码的时候,将右侧的方法编译成一个消息(message),发送给左侧的接收者(receiver),从而实现方法的调用.
- -号方法:动态方法,是实例方法,通过对象进行调用" - (void)setName "。
- +号方法:静态方法,是类方法,通过类惊喜调用" + (id)studentinitwithFormat:(NSString *)name "。
方法的格式
转自:https://www.cnblogs.com/jacky-wenhui/p/4751086.html
|
请发表评论