------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、oc简介 oc是在c语言的基础上,增加了面向对象的语法,开发的一种语法。 oc可以完全兼容c语言,可以在oc中混入c语言代码和一部分的c++代码 oc用途:用于Mac os x平台和ios平台的应用程序开发 文件后缀名c->.c oc->.m c++->.m oc程序开发前景:没有安卓手机多而广的用户群,但是苹果手机和电脑的使用者消费能力更强。二、语法 1.关键字都是以@开头:@interface,@implementation,@end,@public,@protected等等 2.字符串以@开头: @"Hello" 3.其它语法 基本数据类型:char,int,float,double,BOOL... null:相当于c语言中的null 基本语句: 循环语句,条件语句等等 三、 1.oc程序的开发过程 .m源文件(编译)->.o目标文件(链接)->a.out 什么是链接?链接就是把所有相关的点.o文件和c语言函数库连接在一起,生成一个可执行文件 2.第一个oc程序
1).#import的用途:
跟#include一样,拷贝文件的内容
可以自动防止文件的内容被重复拷贝
2)主头文件
主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件
Foundation框架的主头文件名称就是Foundation.h
只需要包含Foundation框架主头文件,就可以使用整个框架的东西
3)运行过程1> 编写OC源文件:.m、.c
2> 编译:cc -c xxx.m xxx.c
3> 链接:cc xxx.o xxx.o -framework Foundation
(只有用到了Foundation框架才需要加上-framework Foundation)
框架是ios开发的核心,学oc暂时只学Foundation#import <Foundation/Foundation.h>包含所有frame Foundation的主头文件4)NSLog与printf的区别NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
NSLog输出后会自动换行,printf输出后不会自动换行
使用NSLog需要#import <Foundation/Foundation.h>
使用printf需要#include<stdio.h>
BOOL类型的本质
typedef signedcharBOOL;
BOOL类型的变量有2种取值:YES、NO
#define YES (BOOL)1
#define NO (BOOL)0
BOOL的输出(当做整数来用)
NSLog(@"%d%d",YES,NO);
框架的作用
苹果官方为了提高开发者们的开发效率,提供了很多框架给开发者用,框架中包含了很多常用的API(应用编程接口),Foundation框架就是我们开发OC、iOS、Mac程序必备的框架,当然,我们也可以自己DIY属于我们自己的框架。
每个框架中都有很多头文件,想要使用某个框架的全部功能,只需要包含它的主头文件就可以了,主头文件的名称与框架名相同。
例如Foundation框架的主头文件为:Foundation.h ,所以我们包含框架头文件的格式为:
类和对象
前面已经简单介绍了面向对象的思想,在面向对象的编程思想中,有两个名词我们会经常用到:类和对象
我们可以把【类】和【对象】的关系就像是【图纸】和【实物】的关系。在学习OC的过程中,我们要习惯把所有可能的主体具化成对象。
1.类的创建
1)举个例子:如果“飞机图纸”是一个类,那么我们就可以根据这张图纸创建出很多个飞机实体,这些飞机实体就是“飞机图纸”这个类生成的对象。
在创建类时,有两个要素:【属性】和【行为】(程序员们习惯把”行为”成为”方法”,后文我们都称之为”方法")
在图纸中,我们需要描述清楚飞机有几对机翼、飞机的长度、翼展、重量、颜色、速度、等等,这些就是飞机这个类的属性;
而飞机具有起飞、航行、降落、坠毁(虽然坠毁是被动的,但我们仍然认为坠毁这个行为的主体是飞机)等行为,这些行为(方法)我们也需要在飞机这个类中写明。
2)类的创建方法
* 类的创建分为声明和实现两部分,一般类的声明写在.h文件中,类的实现写在.m文件中。
* 类的属性不需要写实现,所以类的实现其实就是写方法的实现。方法的声明和实现方法有点象函数的声明和实现。
* 类名的声明写在@interface 和 @end 之间
类的实现
* 类名的实现写在@implementation 和 @end 之间
3)类的命名规范:(看完这一节之后,我们可以在回头感受一下上面的代码)
1> 类名的命名规范
* 类名的第一个字母必须是大写
* 不能有下划线
* 多个英文单词,用驼峰标识
2> 属性的命名规范
* 必须以下划线开头(行业规范,后面我们就会知道为什么这样命名)
* 多个英文单词,驼峰标识
3> 方法的命名规范
* 方法名以加号’+’或减号'-‘开头,对象方法以减号开头,类方法以加号开头。
*方法名前写返回值类型,如果需要传入参数,方法名以冒号结束,并在冒号后面描述参数类型和形参名称
*数据类型必须用括号括起来 例如:(void) 、(int) 、(NSString *)
2.对象的创建
上面我们已经了解了类的创建原则和方法,下面介绍一下如何通过类来创建一个对象。
OC中,我们可以根据一个类创建出无数个对象。其实,类也是一个对象。只要是对象,我们就可以调用对象所具有的方法。
调用对象方法的语法是: [ 对象名 方法名 ];
所有类都默认有一个名叫 new 的方法,我们通过这个方法可以创建出类。
总结:
1.OC是弱语法,即便编译器不报错,我们也要自觉养成良好的代码习惯。
2.把面向对象思想结合到生活中,有助于理解。
3.类的声明包括属性的声明和方法的声明,类的实现其实就是方法的实现。
4.OC中,指针的作用就是储存一个对象的地址。
5.对象属性默认是被保护的,想要直接访问就必须在属性前加上 @puclic