黑马程序员---OC面向对象总结
来源:互联网 发布:cf直接刷枪软件 编辑:程序博客网 时间:2024/05/16 02:26
一 、面向对象的概念
面向对象是将功能封装进对象,强调具备了功能的对象,关注的是解决问题需要哪些对象,是基于面向过程的。oc中的面向对象:oc利用类创建对象,一个类可以创建多个对象,因此,oc面向对象解决问题,应该设计哪些类,在用类创建对象。
二 、面向对象设计的三大特征
封装性
多态性
继承性
三、类和对象的声明和实现
类: 相同事物的一个抽象(相同事物的属性\行为)
对象: 对象是满足类特征的一个具体的个体
类的声明:
类的声明使用了关键字 @interface 和 @end
@interface 类名 : NSObject //声明实例变量、成员变量、属性
{
数据类型 _实例变量名; //注意:实例变量名一般以下划线开头
}
如:声明一个类,类名:Car
@interfaceCar:NSObject
{
//声明实例变量,实例变量一般以下画线开头
int _color;
int _wheelNum;
int _speed;
}
- (void)run;
@end
类的实现
实现类中声明的方法,使用 @implementation 和 @end 关键字
@implementation 类名
方法的实现
@end
如:
@implementationCar
-(void)run{
NSLog(@"汽车正在高速路上行驶");
}
@end
对象的创建:
语法:[类名 new]
此对象的创建执行了三个操作:
1:在内存的堆区开辟了存储空间
2对实例变量完成了初始化工作
3返回开辟的堆存储空间的首地址。
如 :
int main(int argc, const char * argv[]) {
@autoreleasepool {
Car*p = [Car new];
[prun];
}
return0;
}
将上面整个代码运行结果如下:
2015-08-03 23:05:58.201 car[17873:2369574] 汽车正在高速路上行驶
四:方法声明实现及调用
OC中的方法分为:对象方法和类方法:
对象方法
(1)对象方法以-开头如 -(void)xx;
(2)对象方法只能由对象来调用
(3)对象方法中可以访问当前对象的成员变量
(4)调用格式 [对象名 对象方法名];
类方法
(1)类方法以+开头 如+(void)put;
(2)类方法只能由类来调用
(3)类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间来存储类中的成员变量。
(4)调用格式:[类名 类方法名];
(5)类方法的好处和适用场合:
不依赖于对象,执行效率更高;
能用类方法解决的问题,尽量使用类方法;
场合:当方法内部不需要使用到成员变量时,可以改为类方法。
声明:
不带参数:- (返回值类型)方法名
带参数:- (返回值类型)方法名:(参数1类型)参数1名称 方法名:(参数2类型)参数2名称......
如:- (int)sumOfNumber1:(int)number1 andNumber2:(int)number2
带参数方法的调用:
[调用者 方法名:参数1 方法名:参数2......]
如 [p sumOfNumber1:5 andNumber2:10]
- 黑马程序员---OC面向对象总结
- 黑马程序员---oc--面向对象
- 黑马程序员--OC面向对象三大基础总结
- 黑马程序员--java面向对象
- 黑马程序员--面向对象
- 黑马程序员--oc:面向对象语法
- [黑马程序员][OC]面向对象-思想
- 黑马程序员-OC的面向对象
- 黑马程序员一OC面向对象语法
- 黑马程序员 OC基础: 面向对象(一)
- 黑马程序员IOS-OC语言-面向对象
- 黑马程序员--学习OC面向对象特性
- 黑马程序员-oc面向对象特性
- 黑马程序员-OC回顾-面向对象
- 黑马程序员 面向对象总结
- 黑马程序员-面向对象总结
- 黑马程序员-面向对象总结
- 【黑马程序员】面向对象总结
- div里嵌套iframe,让iframe及div高度一起随内容自适应高度问题
- Unsupported major.minor version 51.0问题及解决方法
- UISlider
- 题目1003
- Ble 蓝牙连接
- 黑马程序员---OC面向对象总结
- 【Unity3d开发基础】场景中物体的变换
- hdu 3756 || Dome of Circus || 2010 Northeastern European Regional Contest(三分)
- JFinal 极速开发
- How to add -Xlint:unchecked to my Android Gradle based project?
- 简单的php分页功能
- java基础知识
- ggplot2——主题篇
- 改换jdk版本可能出现的问题