<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的objective-c笔记,期待与您交流!
Objective-C语言最大的特点是面向对象。面向对象是专指在程序设计中采用封装、继承、多态等设计方法。实现封装的基本单位是类。本章将主要介绍类的使用方法。
一·类
1·类的声明和定义
类是面向对象程序设计的核心。它实际是一种新的数据类型,也是实现抽象类型的工具。因为类是通过抽象数据类型的方法来实现的一种数据类型。
定义方式为:
@interface +类名{
}
@end
其中,类声明以@interface开始,以@end结尾,其中类名是事先定义好的。在花括号中还可以添加一些实例,所以出现了空行。interface是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来。由于在Xcode的环境下,声明出来的类都有了一个超类名,即父类,父类我们会在以后的章节中讲到。加上父类的类的声明。
这里的NSObject父类是系统自动加上的,它是可以被修改的。我们在下面的讲解中用的都是系统默认的父类。
2·类的定义
类的定义的一般形式为
@implementation 类名{
}
@end
类在定义时以@implementation开始,以@end结尾,在@implementation和@end之间可以写代码,所以出现一些空行。implementation是面向对象编程语言中实现操作的关键字。其中类名是事先定义好的。与类声明中的一样。
3·创建类
类的声明和定义是不在一起的。类声明的文件叫做接口文件,以.h命名。类定义的文件叫做实现文件,以.m命名。
二·类的实例化对象
类创建的对象这一过程被称为实例化。也就是声明并创建对象。实例化对象主要分为以下三个步骤。
1·声明对象
声明对象方法为:类名 * 对象名
注意:对象的声明中需要使用“*”,这表示定义的对象是对类的一个引用。类名要和在声明和定义时的类名相同。
2·为对象分配空间
语法是 对象名 = [类 alloct]
其中,类名后面的alloc为内置方法,用来为对象分配内存空间。整个内容必须使用方括号括起来。
3·初始化对象
对象名 = [对象名 init]
注意:其中,类名后面的init为初始化方法,用来为对象进行初始化。整个内容必须使用方括号括起来。
Objective-C创建对象需通过两个消息:alloc和init。这两个消息是定义
在类方法中的。
通过上面的步骤我们就可以对类完成实例化工作,也就是我们所熟悉的对象的声明和创建。为了方便使用,可以将对象的声明、初始化状态及初始化这几个步骤合并为一步。
三·实例变量
1·定义
实例变量需要在接口文件中定义即**.h文件,定义方式为数据类型 变量名称
如int x;
2·使用
在定义好实例变量以后我们要对实例变量进行使用。实例变量使用的一般形式为 类对象名->实例变量
3·实例变量、全局变量和局部变量的区别
如下图所示
4·变量的存储类别
存储类别是数据在内存中存储的方式。存储方式分为动态存储类与静态存储类两大类。具体包含auto、static、const、extern和volatie 5种。根据变量的存储类别,可以知道变量的作用域和生存期。
1)static
用static关键字声明的变量为静态局部变量,也称为内部变量。所谓静态变量是在每一次方法调用时,这种变量的值都保留,即在下一次函数调用时,该变量的值是上一次函数调用结束时的值。
2)extern
大家已经知道外部变量是在方法的外部定义的全局变量,它的作用域是从变量的定义处开始到程序执行结束,但是使用变量都必须是先定义后使用的。如果我们想在外部变量定义之前的函数中使用该外部变量,则应该使用关键字extern对变量作“外部变量声明”,表示该变量是一个已经定义的外部变量。
3)auto
auto用于声明一个自动的局部变量,是方法内部变量的声明方式,是默认设置。
4)const
const的作用是将变量的值声明为不可变的值,即为常数
5)volatile
volatile修饰的变量正好和const修饰变量的作用相反。它的作用是,告诉编译器,该变量的值发生改变,它用来修饰被不同线程访问和修改的变量
三·方法
1·方法的声明
方法的声明是在类的***.h文件中进行的,声明方法是告诉编译器该方法所使用的标识符。
为-(+)(返回类型名) 方法名 (形参)
“-/+”表示声明的方法是用于与对象还是类,方法的返回值类型要用括号括起来,在声明完方法以后必须加上分号。
2·方法的实现
实现方法是指在方法的定义中编写该方法的代码,确定该方法实现的功能。所以,需要在***.h中编写方法的代码。
3·方法的使用
根据方法用于对象的不同,方法可分为类方法和对象方法。在方法的返回值类型前面有“-”号表示它是对象方法。
对象调用方法形式为[对象名 方法名]
在方法的声明和定义中,我们知道选择“-”号表示它是对象方法,选择“+”号,则表示类方法。接下来我们介绍 类方法的使用。
类方法指的是所定义的方法所针对的消息接收者不是类的实例,而是类本身。
类方法调用方式为[类名 方法名]