A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zwj2015 中级黑马   /  2015-11-1 00:03  /  603 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们可以看到,新建了一个Person类,但是这个和Java就有点区别了,一个类是有两部分构成的,一个是类的头文件Person.h(一般是在该文件中做定义工作的),还有一个是Person.m文件,这个一般是实现头文件中定义的内容。这个也是延续了C语言中的项目结构吧。一般头文件只负责定义功能,.c文件负责实现具体功能的。这里也是类似吧。
首先看到类的定义的关键字是:

@interface

一般类的定义格式为:
@interface 类名:NSObject{
定义属性
}
定义方法

这里有几点需要说明:
1、OC中任何一个类都是继承NSObject,这个和Java中的Object是一个概念的,所以这里需要导入
#import <Foundation/Foundation.h>
其实Java中的Object对象是在java.lang.*包中的,不过Java并不会导入这个包,因为Object类的类加载器决定的,不需要导入的.
2、这里的继承符号和C++中是一样的,使用冒号:
3、在{}类定义类的属性,关于这里所说的属性和Java中的属性不是一个概念了,OC中只要定义在{}中的字段就是类的属性,而Java中是有getXXX/setXXX的方法,才叫属性。同时也得注意,OC中类中定义的属性名是以下划线:"_"开头,为什么要这样做,就是为了区分后面的局部变量与其重名了,当然我们在Java中一般是以m开头,或者其他方式,Java中没有那么强的规范,但是OC中还是强烈建议用这种方式的,还有一点要注意,在定义设置方法的时候,一般样式是setXXX,但是在定义取值的方法的时候直接是XXX,而不是getXXX了,这个也是和Java有区别的,至于为什么这么做,因为get开头的方法已经有其他用处了,后面会说到。这里就注意一下就可以了。
4、在属性定义的后面就是简单的定义方法了

下面在来看一下如何定义方法:
OC中定义方法和Java语言有很大的不同,所以这里很难记住,如果不常用的话,看一下方法的定义格式:
方法说明 (返回类型) 方法名 : (参数类型)参数名称

1、方法说明有两种:
一种是减号:"-",表示该方法是对象方法,就是必须用对象实例才能调用的
一种是加号:"+",表示该方法是类方法,就是可以用类直接调用的,不需要实例化对象的,类似于Java中的static方法
2、返回类型:这个就简单了,和Java语言很类似了

3、方法名:方法名和Java中就不太一样了




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马