IOS类和对象的概念
2015-08-19 23:07
316 查看
因为项目进度紧,经过两个星期的自学,就快速进入程序的开发。慢慢摸索和学习。现在已经发布了两个APP。但是这样只是一种快餐开发。我们可以知道如何去实现。但是很多时候我们只知其然,而不知道所以然。所以我们需要在开发中,沉淀知识,不积跬步无以至千里,只有厚积才能薄发。好了,简单铺垫之后,开始基础的学习。
一、面向对象的概念
因为Object-C是一种面向对象的语言。面向对象语言需要先理解两个概念:类、对象
类:对同一类事物的高度抽象。类定义了这一类的属性以及行为准则(方法)。
对象:类的一个实例,是一个具体的事物。
举个例子:
由动力驱动,具有4个或4个以上车轮的非轨道承载的车辆,我们统一称为汽车。因为它具备一定的属性(动力驱动、车轮等)以及行为准则(加速、刹车等)。可以与其他事物区分。
汽车这个类下面。有很多具体的对象。比如卡车、小轿车等等。
二、Object-C类声明和实现
iOS开发中,主要有两个文件:.h以及.m文件。.h文件主要是对类的声明。包括实例参数和方法的声明。.m文件主要对方法的实现。
1、声明类。写在.h文件
//声明类,继承NSObject
@interface Car:NSObject
{
//声明实例变量
NSString *driverType; //驱动类型
int wheelNum; //车轮数量
}
//声明方法
-(id)initWithDriverType:(NSString*)_driverType wheelNum:(int) _wheelNum;//该方法名称为:-(id)initWithDriverType: wheelNum:
-(void)brake:(int) wheelNum;
-(int)wheelNum;
-(void)setWheelNum:(int) _wheelNum;
+(Car)shareCar;
@end
“`
(1)、用@interface来声明一个类。冒号表示继承关系。冒号后面跟着是类的父类。类的名称一般首字母大写。
(2)、声明实例变量,作用域在整个类,只可以声明,不可以实例化。实例变量命名使用的骆驼命名法。首字母小写。后面的单词首字母大写。形式参数为了和实例变量区分,一般增加下划线区别。格式为:变量类型 变量名称
(3)、-(void)brake:(int) wheelNum。
“-“表示实例方法,“+”表示类方法。brake:表示方法名称。切记是有后面的冒号。(int) wheelNum表示形式参数的类型和名称
2、@property和@synthesize
xcode提供便利的方法,使用@property和@synthesize实现实例变量。代替了面向对象中get和set方法。
@property(nonatomic)int wheelNum;
等同:
-(int)wheelNum;
-(void)setWheelNum:(int) _wheelNum;
@synthesize wheelNum;
等同:
-(int)wheelNum{ return wheelNum }
-(void)setWheelNum:(int) _wheelNum{
wheelNum=_wheelNum
}
3、指针
Object-C的对象是通过指针对其操作。
//声明了一个NSString类型。没有指向任何对象,默认为nil.
NSString *driverType; //驱动类型
//堆内存分配内存,driverType是栈内存,指向堆内存。
driverType=[[NSString alloc]initWithString:@”oil type”];
4、对象的创建和初始化
Car *testCar=[[Car alloc]init];
[Car alloc]就是创建类,在堆内存中分配空间。init方法就是类的初始化。
一、面向对象的概念
因为Object-C是一种面向对象的语言。面向对象语言需要先理解两个概念:类、对象
类:对同一类事物的高度抽象。类定义了这一类的属性以及行为准则(方法)。
对象:类的一个实例,是一个具体的事物。
举个例子:
由动力驱动,具有4个或4个以上车轮的非轨道承载的车辆,我们统一称为汽车。因为它具备一定的属性(动力驱动、车轮等)以及行为准则(加速、刹车等)。可以与其他事物区分。
汽车这个类下面。有很多具体的对象。比如卡车、小轿车等等。
二、Object-C类声明和实现
iOS开发中,主要有两个文件:.h以及.m文件。.h文件主要是对类的声明。包括实例参数和方法的声明。.m文件主要对方法的实现。
1、声明类。写在.h文件
//声明类,继承NSObject
@interface Car:NSObject
{
//声明实例变量
NSString *driverType; //驱动类型
int wheelNum; //车轮数量
}
//声明方法
-(id)initWithDriverType:(NSString*)_driverType wheelNum:(int) _wheelNum;//该方法名称为:-(id)initWithDriverType: wheelNum:
-(void)brake:(int) wheelNum;
-(int)wheelNum;
-(void)setWheelNum:(int) _wheelNum;
+(Car)shareCar;
@end
“`
(1)、用@interface来声明一个类。冒号表示继承关系。冒号后面跟着是类的父类。类的名称一般首字母大写。
(2)、声明实例变量,作用域在整个类,只可以声明,不可以实例化。实例变量命名使用的骆驼命名法。首字母小写。后面的单词首字母大写。形式参数为了和实例变量区分,一般增加下划线区别。格式为:变量类型 变量名称
(3)、-(void)brake:(int) wheelNum。
“-“表示实例方法,“+”表示类方法。brake:表示方法名称。切记是有后面的冒号。(int) wheelNum表示形式参数的类型和名称
2、@property和@synthesize
xcode提供便利的方法,使用@property和@synthesize实现实例变量。代替了面向对象中get和set方法。
@property(nonatomic)int wheelNum;
等同:
-(int)wheelNum;
-(void)setWheelNum:(int) _wheelNum;
@synthesize wheelNum;
等同:
-(int)wheelNum{ return wheelNum }
-(void)setWheelNum:(int) _wheelNum{
wheelNum=_wheelNum
}
3、指针
Object-C的对象是通过指针对其操作。
//声明了一个NSString类型。没有指向任何对象,默认为nil.
NSString *driverType; //驱动类型
//堆内存分配内存,driverType是栈内存,指向堆内存。
driverType=[[NSString alloc]initWithString:@”oil type”];
4、对象的创建和初始化
Car *testCar=[[Car alloc]init];
[Car alloc]就是创建类,在堆内存中分配空间。init方法就是类的初始化。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- IOS开发第三方语音-微信语音
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- ios通过按钮点击异步加载图片
- 加载带有手势识别器的XIB文件需注意哪些问题
- 仅需几行代码实现方便易用的状态栏指示器