------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、OC基础语法
1.OC程序中兼容c,但对c++不完全兼容。
2.OC调用头文件用#import预处理指令。#import还可以防止重复调用。
3.NSLog的作用是输出字符串,自动换行,””前要加@
如:NSLog(@“OC打印输出”);
4.OC中调用头文件不需要单个调用框架中每个头文件,只需要直接调用框架对应的主头文件即可。
如:想要调用NSObjCRuntime.h头文件,只需要调用其主头文件<Foundation/Foundation.h>。
5.OC的编译方式为cc -c 文件名.m,但是链接时需要调用文件使用的对应框架,若想调用Foundation,则调用方法为:cc 文件名.o -framework Foundation
6.OC程序可以调用C语言文件,注意不要把#include和#import用混。
7.BOOL类型可以表示YES(1)和NO(0),其实本质上BOOL就是char类型,只是把YES和NO用1和0表示。
定义Bool 类型的方式为 BOOL 变量名;
同时 ,作为一种变量类型,BOOL也一样可以定义函数返回值。
BOOL test()
{
return NO;
}
总结:Object-C本质上就是C语言的强化,在C语言之上加了一些面向对象的方法,使C更全面。
二、面向对象思想
1.面向对象的思想:
1.面向对象和面向过程是两种不同的编程思想,面向过程主要看中的是完成一件事的每个步骤,而面向对象看重完成这件事所需要操作的对象。
2.例如:上课:
面向过程的思想:
△老师到达教室
△学生到达教室
△老师进行讲课
△学生进行听课
△如果下课铃响起—上课结束,下课
面向对象的思想:
△老师
○移动到教室
○讲课
△学生
○移动到教室
○听课
△下课
※面向对象更注重执行事件的目标的功能和特性
※面向过程更重视目标执行事件的过程
2.类和对象:
1.OC中,类是用来描述和概况对象的一种抽象事物,更像是一种设计图,里面涵盖了其对应对象所有的属性和功能,通过设置具体的值即可创建对象。
2.对象是相关类所描述出来的具体事物,拥有自己独特的属性值,但所有属性都是从类中继承而来,对象无法添删自己的属性,只能修改属性具体的值。
3.如:
类名:人
相关对象:张三(身高:160,男)
相关对象:王五(身高:199,女)
4.按需创建类举例:
如上图的屏幕截图:
△所有桌面图标是一个类
属性:图标样式,图标名称,图标位置…
△所有窗口是一个类
属性:窗口位置,窗口大小,窗口是否可滚动...
△屏幕下的状态栏中所有图标是一个类
属性::图标样式,图标单击对应打开程序....
△屏幕上方菜单栏<文件><编辑><显示>等都属于一个类
属性::按钮名称,单击显示的子菜单内容...
△每个菜单栏按钮弹出的子菜单中的每个选项是一个类
属性和功能:按钮名称,单击按钮执行的事件...
△…………
很多的类创建出其对应的多个对象相互组合形成了我们看到的这个桌面
3.创建类的练习:
1.类的命名规范:类名要大写开头,多个单词组成要用驼峰式命名,不要用下划线,如MyPlane
2.对于操作对象的行为应该归属给谁:
※谁最清楚这个行为是怎么做的就把行为赋给谁
※如,汽车左转,这个行为应该赋给车,因为人只是通过方向盘这个入口对车进行了操作,真正执行向左转这个动作是车中一系列零件相互协助完成的,人只是对左转这一动作进行了调用。
※而转动方向盘这一动作是属于人这个类的,大脑通过下达指令控制肌肉和关节进行运动,同时抓住方向盘,执行了向左转动方向盘这一动作
3.模拟设计类:
在这里我模拟设计了一个“飞机大战”游戏,类和属性如下:
△我的飞机
- 名称:我的飞机
- 属性:飞机图形,生命值,速度,子弹类型,特殊技能,炸弹数,初始无敌时间,特殊技能冷却时间
- 动作:移动,开枪,释放特殊技能,释放炸弹,出生,碰撞,死亡
△敌方飞机
- 名称:敌方飞机
- 属性:飞机图形,生命值,速度,子弹类型,出生位置,飞行路径
- 动作:移动,开枪,出生,碰撞,死亡
△子弹
- 名称:子弹
- 属性:图形,大小,速度,伤害,飞行轨迹
- 动作:发射,碰撞,消失
△奖励物品
- 名称:奖励
- 属性:图形,速度,飞行轨迹,奖励的内容,持续时间
- 动作:出现,碰撞,消失
△场景
- 名称:场景
- 属性:图形,滚动速度
- 动作:出现,持续,变色,切换