码迷,mamicode.com
首页 > 其他好文 > 详细

类和对象

时间:2016-02-16 19:02:20      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

面向过程和面向对象
面向过程:注重过程,分析解决问题的步骤,依次调用函数。C语言 面向对象:注重对象,分析解决问题需要参与的对象,各个对象的作用。OC、C++、Jave等 面向对象的优点: 1、可扩展性 2、重用性 3、可降低代码的耦合度,提高代码的可移植性 类:具有相同特征(静态)及行为(动态)的事物的抽象 对象:对象是类的实例,类是对象的类型,对象是具象概念。 类的定义分两个部分:接口部分和实现部分。 接口部分:声明类的特征和行为,在.h文件中 实现部分:行为的具体实现,方法,对象实例初始化,在.m文件中 接口部分标志:@interface.....@end 所有声明类的特征(成员变量)和行为(方法)都在里面 @interface Car : NSObject @end Car定义的类名,冒号后面是继承,NSObject是Car类的父类,NSObject是OC中的根类。 类的特征定义在{}内部,常见OC的数据类型有 字符串类型(NSString),写法NSString *_name,成员变量名以下划线开头,占位符%@;整型(NSInteger),写法NSInteger _age,OC中的整型在64位操作系统下为长整型,占位符%ld;浮点型(CGFloat),写法CGFloat _score,在64位操作系统下为双精度,占位符%lf。 {}外声明类的行为,及类的方法 OC的方法只有两种:类方法(+)和实例方法(-) 类方法只能被类使用,类方法中不能使用实例变量 实例方法只能对象使用 加号方法和减号方法可以互相调用,调用时需要类名和实例化变量 而当对象定义成静态全局变量时,可被类方法调用
技术分享 方法的声明(如图)
技术分享
方法名:replaceObjectAtIndex: withObject: 注意:类中不能出现同名方法           “:”标识参数,不能省略,冒号也是方法名的一部分             参数之间的空间也是要去掉的 实现部分标志:@implementation....@end 类行为的具体实现即方法的实现 @implementation  Car Car代表类名 初始化的方法,返回值用instanceType和id没有什么区别,编译器会自动将id转化为InstanceType id和instanceType的异同 1、相同点:都可以作为方法的返回值类型 2、不同点: ①instanceType可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象 ②instanceType只能作为返回值,不能像id那样作为参数 重写初始化方法: - (instanceType)init {             _name = @“哈哈”;             return self;self代表外界执行该方法的对象 } 自定义初始化方法:
技术分享 OC中输出函数NSLog(@“”); main.m中 对象进行实例步骤 1、开辟空间 2、初始化 Car *car = [[Car alloc] init]; 1、开辟空间:alloc 在堆区域开辟存放Car类对象的内存空间,将首地址传给在栈区的指针car,alloc是系统的自己的类方法。 2、初始化:将开辟好的堆区域上的对象中的实例变量,赋初值为0,init是实例方法 OC有消息发送机制 [receiver   message] - 减号message由对象来调用;+ 加号message由类来调用 实例变量的可见度有三种:
技术分享
默认为受保护的,@protected
技术分享
技术分享 settergetter方法访问的单一实例变量 这两者相对应,一个实例对象对应一对。
技术分享
在.h文件中只声明了实例变量之后,给实例变量赋值取值 赋值:setValue:@需要的值 key:@实例变量名(name)   或   setValue: key: 取值:valueForKey:实例变量名(name)
技术分享

类和对象

标签:

原文地址:http://www.cnblogs.com/aoliaoli/p/5193506.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!