iOS笔记--Day01课堂笔记

显示隐藏文件:defaults write com.apple.finder AppleShowAllFilesYES

隐藏隐藏文件: defaults write com.apple.finder AppleShowAllFiles –boolfalse

(输入指令后,一定要重新启动Finder)

关于OC考试:35分钟机试加上30分钟笔试(笔试包含2道C变成 一道OC变成  一道OC简答)

培养面向对象的思想:必须敲当天的代码,不敲代码学习下来没有效果

课后怎样去复习:

用自己理解的方式,自己思考的方式敲代码

没有印象的同学,对着老师的代码敲

什么都记不住,就直接从头到尾抄老师的代码

做笔记:学习好的同学都会有一套自己的笔记


API是什么意思?

首先OC是一个面向对象的编程语言

OC难点:

面向对象的概念

封装/继承/多态

category  /  protocol

foundation(重点)

常用结构体(简单)

KVC与KVO(简单)

基础班OC重点:

掌握基本的语法

基本项目的需求分析能力

面向对象的思维能力

OC与C的对比(C中的所有东西,OC中都可以用):

关键字:OC中新增的关键字大部分都以@开头

类型,新增布尔(BOOL)类型,新增BLOCK类型,新增两种指针类型class(类)和id类型,新增特殊类型(SEL/nil)

流程控制,新增"增强版for循环"

OC中的方法与C中的函数基本相同

OC中新增面向对象特征:封装 继承 多态

OC中新增面向对象的语法

新增异常处理,用于处理错误信息

#import的功能与#include的功能相同:

#include弊端:需要写头文件位置

#import优点:防止重复导入头文件,OC中引入了新的预处理指令#import来导入头文件

#import:既可以导入OC的头文件,也可以导入C的头文件

printf和NSLog的区别:

NSLog会自动换行

NSLog在输出的时候回附加一些系统信息

NSLog接收的参数不一样


试试用include导入会发生什么?事实证明include可以导入OC的头文件

Foundation.h是什么:称为主头文件,主头文件中又拷贝了这个工具箱内所有文件的头文件,我们只需要导入主头文件就可以使用这个工具箱内的所有的文件

注意点:OC完全兼容C,所以可以在OC程序中编写C语言的代码,并且可以将C语言的源文件与OC语言的源文件编译到一起,组成一个可执行文件

面向对象的基本概念:

面向对象是相对面向过程而言的

面向对象与面向过程都是一种思想

面向过程(自己买电脑):

强调的是功能行为

关注的是解决问题需要那些步骤

面向对象(托朋友买电脑):

将功能封装到对象内(朋友就是具有一定功能的对象),强调具备了功能的对象

关注解决问题需要那些对象



面向对象的特点:

是一种符合人们思考习惯的思想

可以将复杂的问题简单化

程序员从执行者转变成为指挥者

完成需求时首先要考虑的三件事:

先去寻找具备解决问题功能的对象

如果对象不存在,那么需要自己创建一个具有所需功能的对象

这样简化开发并提高代码的复用性

OC中的类的概念:用来描述一类事物,他是对象的蓝本,也就是说想要创建对象就必须先有类,并且一个类可以创建很多对象

一般情况下名词都是类:有相同(类似)属性和和行为的对象都可以抽象成为一个类,比如:开着坦克发射了一个炮弹打下来了一个飞机,这句话中的类有"坦克""炮弹""飞机".

☐分析一个类?事物名称,属性,行为

定义一个类:需要类的名称,类的属性和行为

定义一个完整的类:

@interfaceMyClass :NSObject//其中包含new方法

{

@public//属性公开,表示属性可以被修改

NSString*name;

intage;

doubleheigth;

}

- (int)sumAge:(int)num;//声明行为(声明方法)

@end

@implementationMyClass

- (int)sumAge:(int)num//定义行为的事项方式(定义方法)

{

return(age+ num);

}

@end

定义类的注意点:

默认情况下OC对象中的属性是不能直接访问的,只要让类中的属性公开,就可以通过一个指向结构体的指针来操作对象中的属性了,@public这段代码就是让一个类变为公开的类

NSObject是为了让这个类具备创建对象的能力

定义行为的注意点:谁最清楚这个行为,那么该行为就属于谁(例如电脑的开机关机,这个行为属于电脑,而不属于人)

理解:

属性:它有什么(它有哪些特征)

行为:它能什么(它有哪些功能)



通过一个类来创建一个对象:

我们通说使用new方法来通过一个类创建一个对象: 类名称 对象名称 = [类名称 new];例如:

MyClass*p = [MyClassnew];

注意点:OC中的类本质就是一个结构体,对象名称实际上是一个指针(指向结构体的指针)

OC中定义一个方法与C中定义一个函数基本一样,也分四步:

确定方法名称

确定形参列表

确定返回值

确定返回值类型

注意点:OC中定义的方法如果没有形参,那么不用写()直接写;结束就可以,因为OC中的()是专门来扩数据类型的,例如(void)

OC中的方法分为两种:类方法,对象方法,

OC中的类方法用+表示,只能由类来调用

OC中的对象方法用- 表示,只能由对象来调用

发消息:

在OC中通过类/对象来调用起方法(功能)的过程叫做给这个类/方法发消息

在OC中只要需要发消息就用[],例如:  [p about]给p对象发消息调用about方法

对象方法:

特点:在对象方法中想访问该对象内的属性,可以直接写属性名称即可

方法中如果有形参,那么需要在每个参数的数据类型前面加上一个冒号:

注意点:冒号也是方法中的一部分,如果一个方法有两个形参,那么这个方法的名称后面要带两个冒号,也就是说:

sum:

sum::

这是两个不同的方法名称

类方法:

如果不想每次使用方法都需要创建对象来开辟存储空间,并且如果该方法中没有使用到属性(成员变量)那么可以把这个方法定义为类方法

类方法和对象方法的区别:

对象方法必须由对象调用,否则会报错;反之亦然

对象方法可以字节访问成员变量,类方法中不可以直接访问属性(成员变量)

类方法的优点:调用类方法的效率会比调用对象方法高(参考对象在内存中的存储情况)

类方法和对象方法可以进行相互调用(参考第一点)

4.1 对象方法中可以直接调用类方法

4.2 可以在类方法中简洁调用对象方法(但是在企业开发中千万不要这么写)

4.3 类方法中可以直接调用其他类方法

4.4 对象方法中可以直接调用对象方法

类方法的应用场景:

如果方法中没有用到属性,那么尽量使用类方法,因为类方法的效率要高于对象方法

类方法一般用来定义一些工具方法



类方法和对象方法的区别:

对象方法可以直接访问成员变量,对象方法不可以直接访问成员变量

对象方法只有对象可以调用,类方法只有类可以调用

类方法的效率要比对象方法高(参考对象在内存中的表现形式)

*对象方法与类方法可以相互调用



如何进行多文件开发,多文件开发有什么好处?

将方法的声明写在.h中,将方法的实现写在.m中,在方法中需要使用谁就导入谁的头文件

多文件开发可以提高团队的协作效率

多文件开发可以提高开发的速度

多文件开发可以提高程序的可维护性

多文件开发可以提高代码的可读性


你可能感兴趣的:(iOS笔记--Day01课堂笔记)