您的位置:首页 > 职场人生

黑马程序员---OC基础---OC简介、OC与C的差异、类和对象与方法

2015-08-06 15:47 330 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、OC简介

1.OC全称Object-C语言,本语言是在C语言的基础上,增加了一层最小的面向对象语法,它完全兼容C语言,可以在OC代码中混入C语言代码,甚至C++代码。利用OC语言可以开发Mac OS X平台和iOS平台的应用程序,并且由于苹果产品的市场巨大以及苹果公司的大力推广,OC语言在编程语言中也占有一席之地
2.OC语法预览
1)关键字:OC中的关键字基本上都以@符号开头,并且都是有实际意义的单词,基本上不用查资料去了解它们的含义
2)字符串:OC中字符串都要以@符号开头,如@“helloworld”,C语言中字符串表示方法OC中不适用
3.学习目标
1)掌握OC基础的语法规则
2)建立起面向对象思维模式
3)建立起基本项目需求分析的能力

二、OC与C的差异

1.OC中常见文件有.h和.m文件,而C语言中有.c、.o、.out和.h文件
2.OC比C多了一些数据类型
1)BOOL类型,其字面常量值为YES或者NO
2)NSObject *类型:OC中的对象类型
3)id类型:动态对象类型,万能指针
4)SEL类型:选择器数据类型
5)Block类型:代码块数据类型
3.输出台控制函数
OC中用于打印的函数是NSLog,C中是printf函数,NSLog特点:
1)可以自动换行
2)输出时有日志打印,打印时间项目名等信息
3)打印字符串时,NSLog传递的参数是一个NSString类型的对象,而printf的参数为字符串常量指针
NSLog(@"欢迎学习OC语言");
printf("欢迎学习OC语言");

三、类和对象与方法

OC语言是面向对象的语言,而C语言是面向过程的语言,学习OC语法前我们必须要建立一个面向对象的思维模式,达到一个万物皆对象的境界
面向对象和面向过程的区别:面向过程关注的是解决问题需要哪些步骤,而面向对象关注的是需要通过哪些对象来解决问题
1.类和对象
类:是多个同类型事物相同特征的抽象
1)类的名称:即类名
2)类的属性:一组包含数据的属性,即事物的共同特征
3)类的方法:允许对属性中包含的数据进行操作的方法
对象:是“类”这个类型的变量,他拥有该类中的所有属性,一个类可以创建多个对象
2.方法
C中的函数不属于类,其只归定义函数的文件所有,且不能访问OC对象成员。OC中对象成员的操作是通过方法来实现的,而方法也分类方法和对象方法
1)类方法:
a.以“+”开头,如+(void) put;
b.只能由类来调用
c.没有被分配内存空间,不能访问成员变量
d.调用格式:[类名 类方法名]
2)对象方法:
a.以“-”开头,如-(void) run;
b.只能由对象调用
c.可以发访问当前对象的成员变量,即属性
d.调用格式:[对象名 对象方法名]
3.类及方法的声明和实现
方法的声明在.h文件中,只能放在@interface和@end之间,方法的实现是在.m文件中,放在@implementation和@end之间
@interface Sdudent:NSObject
{
NSString *_name;                //成员变量包括姓名、年龄和分数
int  _age;
int  _score;
}
-(void)change;                     //声明一个对象方法
+(void)bark;                       //声明一个类方法
@end

@implementation Sdudent
-(void)change{                     //实现对象方法
NSLog(@"我想改分");
}
+(void)bark{                       //实现类方法
NSLog(@"我会叫");
}
@end

4.对象的创建及成员变量的访问
Student  *s = [Student  new];
s->_name = @"张三";
s->_age = 15;
s->_score = 59;

创建新对象时做了3件事:
1)向计算机申请内存
2)给每个成员变量初始化(赋值0和null)
3)返回新申请空间的首地址
储存细节:对象创建时申请的空间在堆区,实例变量也在堆区,其指针在栈区,对象方法储存在代码区

5.补充
方法也分有无返回值和有无形参,其使用与函数类似。需要注意的是OC中的返回值类型及参数的类型比函数要多,在使用时应特别注意其参数类型是否用对
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: