一. 第一个OC程序
1. import的功能和include一样,是将右边的文件拷贝到当前的import的位置
为了降低程序员的负担,防止重复导入。优点是能自动防止重复拷贝。
2. NSLog(@"%@",name);是会自动换行。
NSLog在输出内容时会附加一些系统信息。
NSLog和printf接收的参数不一样。
3. Foundation.h我们称之为主头文件,主头文件中又拷贝了该工具箱所有工具的头文件,我们只要导入主头文件就可以使该工具箱中所有的工具,避免了每次使用都要导入一个对应的头文件。
4. @autoreleasepool是自动释放池,代码写在自动释放池{}内
二.面向对象思想
1>面向对象的基本概念
面向对象是软件开发方法
面向对象是一种对现实世界理解和抽象的方法,是计算机编程发展到一定阶段的产物。
软件编程就是将我们的思维转变成计算机能够识别语言的一个过程。
2>面向对象和面向过程的区别
面向对象是相对于面对过程而言的,都是一种思想。
面向过程强调的是功能行为,关注的是解决问题需要哪些步骤,什么事情都要亲力亲为。
面向对象将功能封装进对象,强调具备了功能的对象。
关注的是解决问题需要哪些对象,找到对象来帮你做。
3>面向对象的特点
面向对象是一种符合人们思考习惯的思想,可以将复杂的事情简单化,将程序员从执行者转换成指挥者。
完成需求时:
要先去找具备所需功能的对象来用。
如果该对象不符合,那么创建一个具备所需功能的对象,这样简化开发。
三.类与对象
面向对象的根本是类,面向对象的核心是对象。图纸和房子,图纸和车子。
OC中创建对象比较复杂,想要创建对象要先有类,要想先了解对象先要了解类的概念。
OC类在生活中就相当于图纸,用来描述一类事物,而对象就是根据图纸创建出的,通过类来告诉计算机创建出的对象的属性和行为。
因此面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象。
类与对象的关系
类和对象是抽象与具体的关系,对象依赖类而存在
类是一一个抽象的概念,对象是一一个真实存在的物体。
方法是对象可以执行的操作
1.如何设计一个类
>生活中通过事物无非就是描述事物的名称/属性(对应类中成员变量)和行为(对应类中成员方法)。
>定义类其实就是在定义类中的成员(成员变量和成员方法)。
在oc中,类的定义分为两个部分
1 接口部分@interface:是类的接口部分,声明了类与父类的名字,方法和实例变量
2 实现部分@implementation:包含了方法的实现(真正意义上定义了类的行为)
2.如何分析一个类
一般名词都是类(名词提炼法)。读文字需求的时候。
拥有相同属性和行为的对象都可以抽象成为一个类。 读图片需求的时候。
四.程序实现OC类
C语言中函数分为声明和实现
OC中定义一个类也分为声明和实现,也就是以后我们在OC中定义类,就是在写类的声明和实现
1.如何编写类的声明
以@interface开头,以@end结尾,然后再class name对应的地方上写上事物名称,也就是类名即可。
注意:类名的首字母必须大写
声明一个类的目的就是为了告诉系统,我们这个类中有哪些属性和行为。
OC类声明中属性只能写在@interface和@end之间的{}中。
注意:编写OC类属性时,建议将所有属性的名称前面都加上_(下划线)。
类名后面的:NSObject 是为了让我们的类具备创建对象的能力
2.如何编写类的实现
以@implementation开头,以@end结尾,然后再class name对应的地方上写上声明时类的名称,必须和声明时的名称一模一样。
3.如何通过一个类来创建对象
在OC中想要通过一个类来创建一个对象,必须给类发送一个消息(好比C语言中通过调用方法一样)。
如何发送消息?在OC中只要想发送消息就先写上[类名称/对象名称 方法名称];
发送什么消息(调用什么方法)可以创建一个对象呢?new
只要通过一个类调用类的new方法,也就是给类发送一个叫做new的消息之后
系统内部就会做3件事
1.为类创建出来的对象分配存储空间
2.初始化通过类创建出来的对象的属性
3.返回通过类创建出来的对象对应的地址
[]