OC学习之 类和对象
2016-03-10 17:13
417 查看
一、什么是面向对象?
提到面向对象,就要知道两个概念,一个是类,一个就是对象。类:
类定义了一个事物的抽象特点,比如事物的属性和一些行为。比如“狗”这个类,就会有一些基础的属性,它毛的颜色,它的个头,它的性别等;也会有它的一些行为,比如是否可以生育,是否会咬人等等。类的作用就是为程序提供出一个模板,类里的属性称作成员,行为称作方法。
对象:
对象就是类的实例,通过类创建出来对象。比如“狗”这个类列举了狗的属性和行为,但是它无法实现,它没有颜色,没有身高,不能叫唤等等。而对象就是把这些属性和行为具体化,比如一条叫Tom的黄色的狗。
需要注意的是,当创建一个类的时候,系统不会给他分配存储空间,只会给对象分配,可以想象,抽象的类当然是不需要内存的,但是具体的对象则是需要的。
面向对象和面向过程的区别
面对过程:注重的是步骤面对对象:注重的是对象
先设计好类,利用类来设计多个对象,类就相当于图纸
类名/属性/行为
二、OC中的类
1、类的声明
——包括类的成员变量、方法、类方法的声明(1)、一般形式:
@interface 类名 :
NSObject
//成员变量的声明
{
//@public
类型 成员变量名1;
类型 成员变量名2;
……
}
//方法的声明
- (类型)方法名;
//类方法的声明
+ (类型)方法名;
@end
(2)、说明:
1)、NSObject是OC库中基类,可以让声明的类具备创建对象的能力;
2)、成员变量必须放在{ }中,方法的声明必须放在{
}外,两者都要放在@interface和@end之间;
3)、声明的成员变量默认初始化为0;
4)、@public:使类创建的对象的成员变量可以被外界访问,没有则默认为protected;
2、类的实现
——包括对象方法、类方法的实现(1)、一般形式:
@implementation 类名
- (类型)方法名
{
……
}
+ (类型)方法名
{
……
}
@end
例如:
三、OC对象
1、对象的创建
一般形式:类名 *对象名 =
[类名 new];
如:Person *p = [Person new];
四、对象方法和函数的区别
1.对象方法都是以减号开头2.对象方法都必须声明在@interface和@end之间
对象方法的实现必须声明在@implementation和@end之间
3.对象方法只能由对象来调用
4.对象方法归类\对象所有
函数
1.函数可以卸载文件的任意位置,函数归文件所有,比如函数写在@implementation和@end之间,然后也可以在main函数里调用
2.但是函数不能声明在@interface和@end之间
3.函数调用不以来于对象
4.函数内部不能直接通过
9e01
成员变量名访问某个成员变量
五、类方法
类方法和对象方法差不多,都需要在@interface里声明,在@implementation里定义类方法的都是以”+”开头的,而且不用创建对象,直接用类调用
对象方法只能用对象来调用
类方法和对象方法的对比
在类方法中调用自己,可以引发死循环
相关文章推荐
- -OC学习之内存管理与ARC
- C语言之结构体
- 【∮凌锋∮】三星S5 系统三破解修改教程!!
- C语言之数组
- C语言函数的学习
- C语言之基本运算和流程控制
- C语言流程控制续
- EXISTS
- Java Service Wrapper简介与使用
- 依赖注入那些事儿
- 文字检测和识别5-LSTM简介
- tableview头视图与 tableview中间有空隙
- python 3.3 安装paramiko模块
- 谈谈python中的遍历
- 构建之法阅读笔记02
- StringBuffer类
- Linux-非结构化数据同步-Linux下Lsyncd+Rsync实现非结构化增量差异数据的同步5
- NSTimer 和runloop的问题,将timer加入到runloop----同时注意在viewwilldisappear里面设置为空和无效
- Entity Framework教程(第二版)
- Ajax——基础内容