晋城市公共事业建设局网站,网站申请备案,百度云建网站,阿里云搭建企业网站上一小节的随笔写了常用的打印以及很基础的数据类型的定义方式#xff0c;今天就来一起学习下如何创建类与函数的一些随笔#xff1b; 首先类的创建#xff1a;在Xcode下#xff0c;菜单File#xff0d;New File#xff0c;然后出现选择class模板#xff0c;如下图… 上一小节的随笔写了常用的打印以及很基础的数据类型的定义方式今天就来一起学习下如何创建类与函数的一些随笔 首先类的创建在Xcode下菜单FileNew File然后出现选择class模板如下图图1 图1 class 模版选择界面 这里不需要手动选择什么默认是ObjectiveC class模版我们直接Next出现以下窗口图2 图2 为新建类起类名 此窗口下我们只需要将类名填写好就ok直接点击”Finish“这里便于讲解后续的代码这里我将类名起名为”MyClass“ 点击”Finish“后在我们的项目下会出现两个文件 1. MyClass.m 2. MyClass.h 接触过c语言的很熟悉会生成两个文件将一个类分为了两个部分简单而言 “.h”后缀的是此类声明比如变量、方法声明都会在此文件下定义—类定义部分 “.m”文件是书写类方法的实现—类实现部分 ok然后先看MyClass.h与“MyClass.h” 两个文件中自动生成的代码 //以下为 MyClass.h 中的代码#import Foundation/Foundation.h// interface:表示类接口部分// NSObject interface MyClass : NSObject {}//end 标识结束类接口部分end//以下为 MyClass.m 中的代码#import MyClass.h// implementation:表示类实现部分implementation MyClass//end 标识结束类实现部分end 下面我们简单在MyClass类中添加几个函数和变量当然我这里说的添加在实现上分为两步首先在.h类声明文件中进行函数声明然后在.m文件下进行实现代码如下 首先在MyClass.h 中定义 #import Foundation/Foundation.h// interface:表示类接口部分interface MyClass : NSObject {int himiX,himiY;}//声明两个带有返回值的函数-(int) getX;-(int) getY;//声明两个无返回值但有一个参数的函数-(void) setX:(int) x;-(void) setY:(int) y;//声明一个无返回值但有两个参数的函数-(void) setXY:(int) x andSetXY:(int) y;//end 标识结束类接口部分end 定义了两个整型以及四个函数,函数的种类分为以下四种 1. 带返回值的函数 2. 不带返回值的函数 3.有一个参数的函数 4.有两个多个参数的函数 然后在MyClass.m中实现这些函数 #import MyClass.h// implementation:表示类实现部分implementation MyClass//----以下是声明的函数一一实例的代码-(int) getX{return himiX;}-(int) getY{return himiY;}-(void) setX:(int) x{himiXx;}-(void) setY:(int) y{himiYy;}-(void) setXY:(int) x andSetXY:(int) y{himiX x;himiY y;}//end 标识结束类实现部分end 关于函数定义有两点需要详细说明 1.关于“”符号表示的方法类型其详细含义指的是 实例方法 如果是“”符号表示这个函数是一个类函数表明其他代码可以直接调用的类方法不用创建其类的实例 2.关于多个参数参数定义当想声明一个有多个参数的方法时我们可以理解当前这个方法的方法名被分为多个部分 比如有两个参数那么整个方法的名字可以认为此函数的名字将被分为两部分三个参数的函数其函数名就有三个部分... 那么为了便于识别是一个函数中的名字部分所以当参数有多个时名字的命名规则可以按照如下这样 例如这里定义了一个三个参数的函数 方法名的第一部分getHimi 第二部分 getHimiTwo 第三部分 ThreeGetThree 当然这里我是想告诉大家多个参数的函数中每一部分的函数名尽可能有规律可循即可便免与其他函数名混淆 ok类设计完毕之后下面我们在程序主函数中实例此类对象并调用其函数代码如下 #import Foundation/Foundation.h#import MyClass.hint main (int argc, const char * argv[]) {NSAutoreleasePool * pool [[NSAutoreleasePool alloc] init];//-----------//实例类对象MyClass *mc [[MyClass alloc]init];//调用带有返回值的函数int x [mc getX];int y [mc getY];NSLog(x %i,y %i,x,y);//调用无返回值且带有一个参数的函数[mc setX:8];[mc setY:23];x [mc getX];y [mc getY];NSLog(x %i,y %i,x,y);//调用无返回值且带有两个多个参数的函数[mc setXY:9 andSetXY:22];x [mc getX];y [mc getY];NSLog(x %i,y %i,x,y);[mc release];//-----------[pool drain];return 0;} 类的实例化 如上一段代码中对MyClass类的实例化的代码 MyClass *mc [[MyClass alloc]init]; [[MyClass alloc]init] 中的 alloc 是固定格式是为对象申请内存空间 init则完成对象的初始化工作 方法函数的调用: 首先我们通过实例化了一个MyClass对象mc然后通过mc调用其类中的函数 有返回值并且无参数的函数调用 变量 实例 方法名 没返回值且有一个参数的函数调用 实例 方法名参数 没返回值且有两个多个参数的函数调用 实例 方法名第一部分参数1 方法名字第二部分参数2 ok然后观察运行项目的结果 ok此小节就是这些下面附上源码下载把仍然免费共享希望大家多多支持 源码下载地址: http://www.himigame.com/himistudy/396.html 本文转自 xiaominghimi 51CTO博客原文链接http://blog.51cto.com/xiaominghimi/607036如需转载请自行联系原作者