#pragma mark - Day01_01_OC语言的历史(了解) 1.Objective-C, Obj-C, OC 2.OC语言本质上还是 C 语言,在 C 语言的基础上增加了面向对象的特点 3.OC 语言是完全兼容 C 语言 4.OC 语言不是苹果开发的,但是苹果独家使用
#pragma mark - Day01_02_OC语言的发展现状(了解) 1.OC 语言的热度,随着 iOS 开发的火爆,而逐渐提高 2.C 语言,鼻祖地位
#pragma mark - Day01_03_OC的未来(了解) 1.OC前途堪忧.但是,并不代表 iOS 开发前途堪忧,因为苹果暂时不会倒闭. 2.在2014年,苹果推出了swift.并且 swift是会开源的. 3.swift 在未来,会逐渐的取代 OC,成为 iOS 开发的主流. 4.只要熟练掌握了 OC, 以后再转型学习 swift 会非常的轻松.
#pragma mark - Day01_04_基础班学习目标 1.OC 基础,前6天:OC 基本的语法, 初步建立面向对象的思想 2.OC 加强,后7天:深入学习 OC 的原理,掌握 OC 的高级语法特性
#pragma mark - Day01_05_第一个OC程序 1.创建一个 Mac OS 命令行程序,语言选择 OC
#pragma mark - Day01_06_OC的源文件后缀名和main函数 1.OC 语言后缀名. m, C 语言后缀名. c 2.OC 程序的入口依然是 main函数, main函数的参数可以省略
#pragma mark - Day01_07_#import指令 1.以#开头,是一个预处理指令 2.#import 指令就是#include指令的增强版 3.#import指令可以避免头文件的重复包含 4.用法 a. "",先在当前项目的目录中找文件 b. <>,在编译器的目录中找文件
#pragma mark - Day01_08_Foundation框架简要介绍 1.框架的定义:类和函数的集合 2.Foundation框架,OC 的字符串, OC 的数组... 3.使用框架的前提,导入框架中的头文件 4.Foundation框架: NSString.h, NSArray.h 每个框架中有一个总头文件,和框架同名,Foundation.h #import <Foundation/Foundation.h>
5.框架的分类 a.系统的框架,Foundation AVFoundation UIKit CoreGraphics CoreAnimation b.第三方框架,把一些常用的功能封装成一个框架,提供给别人使用 GitHub,开源的源代码托管网站
#pragma mark - Day01_09_NSLog函数 1.NSLog函数是属于 Foundation 框架中的,作用是向控制台输出信息,是printf 的增强版 2. 输入的内容:2016-05-15 10:36:37.011 Day01-OC基础语法[810:45149]哈哈哈哈哈哈哈哈 a.时间 b.项目名称 c.进程 ID : 线程 ID d.输出的内容 3.使用方式,和 printf 函数类似,可以自动换行 4.注意点 a. NSLog(@"xxxx\n");一定要以@开头 b. 可以自动换行, 但是如何在最后加上\n的话,就会失去自动换行的特性
5. 替换 a. #import 替换 #include b. NSLog 替换 printf
OC里面并没有提供专门的接收控制台输入的函数 scanf iOS开发都是通过界面和程序进行交互,不需要在控制台输入
#pragma mark - Day01_10_NSString字符串 1.C语言的字符串 a.字符数组 b.字符指针 2.NSString是OC中特有的字符串类,存在于Foundation框架中的 3. NSString 以 @符号开头 @"" 普通的C语言的字符串 "" 4. 注意点: a. 必须以@符号开头 NSString *str = @"heima"; b. NSLog函数的参数是一个OC字符串,所以必须以@开头.如果想在NSLog输出OC字符串,需要使用%@进行占位 NSLog(@"%@",) %@ ,OC中新增的占位符,用于输出OC对象 printf 函数不能使用%@, 无法识别
#pragma mark - Day01_11_OC的其他基础语法 1.前缀 系统框架中的类默认前缀,NS -> NextStep UIKit -> UI开头 CoreGraphics -> CG开头
2.注释 单行注释 // 多行注释 /* */ 文档注释 /** */ /** */ 3.OC是完全兼容C的,所以在OC中可以定义C语言的函数
#pragma mark - Day01_12_OC程序的编译链接流程 1.编译 a.执行预处理代码 b.检查语法 c.生成目标文件,.o文件
2.链接 a.添加启动代码 b.链接函数 注意点:如果使用了框架中的函数,需要在链接的时候说明去哪个框架中找 cc main.m -framework Foundation
3.Xcode工具
4.和C程序各个阶段的文件后缀名对比. 源文件 目标文件 可执行文件 C语言 .c .o .out OC语言 .m .o .out
#pragma mark - Day01_13_BOOL类型变量 1. OC支持C语言中的所有数据类型 2. BOOL类型用来取代C语言中的bool,取值是YES和NO 3. 本质 a)BOOL类型实际上是一个有符号的char类型 typedef signed char BOOL; b)YES和NO的本质是宏 #define YES ((BOOL)1) #define NO ((BOOL)0)
#pragma mark - Day01_14_Boolean类型 1.c语言, bool 0和1 2.OC语言, BOOL YES 和 NO 3.Boolean true 和false
#pragma mark - Day01_15_OC新增的数据类型 1.class 类 2.nil NSString *str = nil; 3.SEL,用来保存方法的 4.block,用来保存一段代码,C语言中的函数指针类似
#pragma mark - Day01_16_OC和C的对比 1.OC支持C语言中所有的运算符 2.OC支持C语言中所有的控制语句 java C#
3.OC关键字,大多数情况下,OC中的关键字都是以@开头 4.OC的优化 1. 简化了C原因中复杂的代码 2. 增加了面向对象的特性
#pragma mark - Day01_17_面向过程与面向对象(重点) 面向过程和面向对象是解决问题的两种思路 1.面向过程:思考问题的侧重点在于 实现某个功能的具体步骤 2.面向对象:思考问题的侧重点在于 找到一个合适的对象去实现某个功能,屏蔽内部的实现细节
3.面向对象的思路,更加符合现实生活中解决问题的思路
找XXX帮我去做XXX事情
4.举例 生病了去医院 1.挂号:找导诊 2.看病:找医生(内科\外科) 3.化验:找护士
#pragma mark - Day01_18_代码世界中的面向过程与面向对象(重点) 1. char *s = "aaaaaaa"; 2. NSString *str = @"aaaaaaa"; [str length]
3. 顿悟.
#pragma mark - Day01_19_面向过程与面向对象的优缺点分析(重点) 1. 在main函数中,直接写一段执行某个功能代码 -> 把某个功能封装在一个函数中 -> 文件,把实现类似功能的函数放在同一个文件中
运算 yunsuan.h void add(int a, int b);
yunsuan.c
main() { add(1, 2); }
2. 专门搞一个人,负责yunsuan, 包含了加减乘除等功能 找运算的对象 ,让他帮我实现加的方法 [yunsuan add];
3. 编程语言的发展,循序渐进的,先有的面向过程 -> 面向对象
4. 面向对象其实是基于面向过程的 面向对象是在面向过程的基础上进行了更高的抽象
#pragma mark - Day01_20_什么是类和对象(较难) 1.对象:具体 定义:对象现实生活中看得见 摸得着 真实存在的具体事物 以面向对象的角度分析问题:万物皆对象
2.类:抽象 定义:对某些具有相同特征和相同行为的事物的统称
人 类 中国人 类 中国的老人 类 中国的学生 类 双元课堂的学生 类 双元课堂学习iOS的学生 类
0419班学号是1号的人 具体的对象
#pragma mark - Day01_21_类与对象之间的关系 1.类:抽象 定义:对某些具有相同特征和相同行为的事物的统称
2.关系:对象是1类事物中的1个具体的存在
3.例子
汽车 图纸 图纸就是类,图纸是不能直接开的,所以类不能直接使用
根据图纸造出来一辆具体的车,就是对象,车是能开的,所以对象是可以使用的
根据图纸 造 车 根据类 创建 对象
根据类创建对象的过程, 相当于根据抽象的特征,创造除了一个具体的实例 ->实例化,通过类,实例化出一个对象
#pragma mark - Day01_22_如何设计类 (重要)
1.作用:用来描述1群具有相同特征和相同行为的事物 2.类的三要素 类的名称 类的特征 类的行为 3. 如何找类:名词提炼法
4.练习1: 老师让学生起来回答问题
老师类 特征: 姓名 学科 年龄.... 行为:提问
学生类 特征:姓名 年龄 身高 性别 行为:回答问题 站 坐
问题类 特征:描述 分值
练习2: 学生用电脑写代码
学生类 特征::姓名 年龄 身高 性别 行为:写代码 调bug
电脑类 特征:CPU 内存.... 行为:运行代码
代码类 特征:行数 语言 行为:运行
#pragma mark - Day01_23_如何定义一个类 1.类定义的位置:main函数外面,直接写在源文件中
2.步骤 1) 类的声明 @interface Person : NSObject { // 类的特征 int _age; }
// 类的行为的声明
@end
2) 类的实现 @implementation Person // 类的行为的实现
@end
3.练习
设计1个车类.
具有的属性(特征) *品牌 *型号 *颜色 *座位数量 *轮子数量 *油量
4.设计1个球队类 属性 *球队名称 *球员数量 *教练数量 *胜利场数 *失败场数
5.设计1个书类. 属性: 书名 书号 作者 价格 页码
|