OC-小课堂

来源:互联网 发布:迷宫游戏编程代码 编辑:程序博客网 时间:2024/06/11 00:21

类和对象

面向对象的核心是 类 和 对象
类:具有相同特征和行为的事物的抽象

OC中类的定义
1.接口部分:对外声明类的特征和行为 (.h)头文件
2.实现部分:对内实现类的行为           (.m)

类 和 对象
类是模板,对象是具体表现,对象需要占用内存空间
创建对象分两步:分配内存空间和初始化
分配内存空间:根据类中声明的实例变量为对象分配内存,将所有实例变量默认值0,并返回首地址
初始化:为对象的实例变量设置初始化

创建对象
+(id)alloc;+表示这个方法属于类,只能类执行。id返回值类型,表示任意类型的对象,及创建好的对象
- (id)init;-表示这个方法属于对象,只能对象执行。id返回值类型,表示初始化完成的对象

// alloc  分配内存控件
// init  给成员变量赋值

实例变量可见度、方法

常见的可见度有三个:
1.@public       公开的      实例变量可以在类的内部和外部操作
2.@protected  受保护的   实例变量只能在该类及其子类中操作
3.@private      私有的      实例变量只能在该类内部操作

类的内部就是指该类@implementation 和 @end之间


疑问如何在其他文件中访问对象@protected修饰的实例变量?
1.添加两个方法
2.赋值:通过方法传入参数,在类的内部实现实例变量方法
3.取值:通过方法获取实例变量的值

方法分类:

oc中的方法分为两类:类方法和实例变量方法
类方法:只能类去使用   例如:+(id)alloc  类方法中不能使用实例变量
实例变量:只能对象使用,例如:-(void)hello

-(void)replaceObjectAtIndex:(NSUInteger)index withObject:

           (id)anObject;

         "-"是方法类型标识符

         “void”是方法返回值类型

         “replacObjectAtIndexwithObject方法名

         NSUIntegerid)都是参数类型

         index anObject参数名(相当于C语言中的形参)

生气方法名是:删除了类型标识,返回值类型 ,参数类型,参数名,空格之后剩下的就是方法名
类中不能出现同名方法
“:”表示参数,不能省略,有冒号必须有参数

setter  getter

         OC里面,为实例变量赋值的方法称作setter(设置器)

         读取实例变量的方法被称为getter(访问器)

         setter书写格式:-voidsetAge:(intage;即set+首字母大写的实例变量名(忽视下划线)

         getter书写格式:-intage;即返回值类型与变量名类型一致,方法名与实例变量名相同(忽略下划线)



#import  #include @class 
导入头文件,即:导入头文件的内容到当前类
#import“”导入自定以类,#import<>导入类库中的头文件
功能类似于C语言中#include,但是可以避免头文件被重复导入,容易出现循环导入头文件内容
@class:告诉编译器@class后的字符串作为类名使用,并未导入类的接口内容,有效的避免嵌套循环导入










0 0
原创粉丝点击