在学过java、c++这样语言之后,再来学习OC语言,虽然也同样是面向对象的语言,但是OC语言仍然给我们一种很"怪异"的感觉。这主要是由于OC语言本身有着它独特的命名和使用方法。总结java语法和OC语法的使用,我们会发现其实还是有很多规律可循的。下面就总结了OC类的一些特性。
一、关于OC类
1.oc中一般用两个文件描述一个类,与java是不同的。
2.后缀.h文件是类的声明文件,用于声明成员变量、方法。使用关键字@interface和@end; 而且.h文件只作声明,并没有对类的方法进行实现;
3.后缀.m文件是类的实现文件,用于实现.h中声明的方法。使用关键字@implementation和@end;
二、OC中的方法
1.方法的声明和实现必须以”+”和”-“开头;
加号表示类方法,即静态方法;减号表示对象方法,即动态方法
2.在后缀.h中声明的方法都是public类型,不能更改
方法格式:方法类型(+/-)+返回值类型+方法名:+参数类型+参数名
三、成员变量
1.成员变量的作用域由三种
@public全局都可以访问
@protected 只能在类内部和子类中访问
@private只能在类的内部访问
比java中少一种作用域,因为OC 中没有包的概念
四、对象的初始化
1. 对象必须先创建,然后初始化,才能使用
2.首先为对象分配内存地址,为初始化准备
3.初始化是对象创建过程中将分配的对象的状态设置为合理的初值,使之处于可用的状态
,要求必须以init开头,并且在成功初始化后,返回当前对象,失败返回nil
4.OC的初始化方法和java的构造方法是一个概念,但是有所不同,java有由默认的构造方法,当我们自定义构造方法的时候,默认的构造方法就被替换了,但是OC中不会这样。
5.如果在声明文件中声明了一个方法,但是在实现文件中没有实现该方法,在OC编译阶段是不报错的,但运行是报错