[Object-C语言随笔之三] 类的创建和实例化以及函数的添加和调用!

简介:

上一小节的随笔写了常用的打印以及很基础的数据类型的定义方式,今天就来一起学习下如何创建类与函数的一些随笔;

    首先类的创建:在Xcode下,菜单File-New File,然后出现选择class模板,如下图(图1)

图1 class 模版选择界面

     这里不需要手动选择什么,,默认是Objective-C class模版,我们直接Next,出现以下窗口:(图2) 

 图2 为新建类起类名

     窗口下,我们只需要将类名填写好就ok,直接点击”Finish“,这里便于讲解后续的代码,这里我将类名起名为”MyClass“

    点击”Finish“后,在我们的项目下会出现两个文件:

1. MyClass.m

2. MyClass.h

    接触过c语言的很熟悉会生成两个文件,将一个类分为了两个部分,简单而言:

“.h”后缀的是此类声明,比如变量、方法声明都会在此文件下定义—类定义部分;

“.m”文件是书写类方法的实现—类实现部分;

     ok,然后先看"MyClass.h"与“MyClass.h” 两个文件中自动生成的代码: 

 

   
   
  1. //以下为 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 中定义:

 

   
   
  1. #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中实现这些函数:

 

   
   
  1. #import "MyClass.h"//   @implementation:表示类实现部分@implementation MyClass//----以下是声明的函数一一实例的代码-(int) getX{return himiX;}-(int) getY{return himiY;}-(void) setX:(int) x{himiX=x;}-(void) setY:(int) y{himiY=y;}-(void) setXY:(int) x andSetXY:(int) y{himiX =x;himiY =y;}//end 标识结束类实现部分@end 

 

 

 

关于函数定义有两点需要详细说明:

    1.关于“-”符号表示的方法类型其详细含义指的是 :实例方法;

    如果是“+”符号表示:这个函数是一个类函数,表明其他代码可以直接调用的类方法;不用创建其类的实例;

    2.关于多个参数参数定义:当想声明一个有多个参数的方法时,我们可以理解当前这个方法的方法名被分为多个部分;

    比如有两个参数,那么整个方法的名字可以认为此函数的名字将被分为两部分;三个参数的函数,其函数名就有三个部分...

    那么为了便于识别是一个函数中的名字部分,所以当参数有多个时,名字的命名规则可以按照如下这样:

例如这里定义了一个三个参数的函数:

方法名的第一部分:getHimi 第二部分 getHimiTwo 第三部分 ThreeGetThree

    当然这里我是想告诉大家,多个参数的函数中,每一部分的函数名尽可能有规律可循即可,便免与其他函数名混淆;

     ok,类设计完毕之后,下面我们在程序主函数中,实例此类对象,并调用其函数,代码如下:

 

   
   
  1. #import <Foundation/Foundation.h>#import "MyClass.h"int 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,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
34 3
|
11天前
|
C语言
c语言调用的函数的声明
被调用的函数的声明: 一个函数调用另一个函数需具备的条件: 首先被调用的函数必须是已经存在的函数,即头文件中存在或已经定义过; 如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。 如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。 如果被调用的函数定义出现在主调函数之前可以不必声明。 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明
27 6
|
15天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
55 4
|
1月前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
36 10
|
24天前
|
存储 算法 程序员
C语言:库函数
C语言的库函数是预定义的函数,用于执行常见的编程任务,如输入输出、字符串处理、数学运算等。使用库函数可以简化编程工作,提高开发效率。C标准库提供了丰富的函数,满足各种需求。
|
30天前
|
机器学习/深度学习 C语言
【c语言】一篇文章搞懂函数递归
本文详细介绍了函数递归的概念、思想及其限制条件,并通过求阶乘、打印整数每一位和求斐波那契数等实例,展示了递归的应用。递归的核心在于将大问题分解为小问题,但需注意递归可能导致效率低下和栈溢出的问题。文章最后总结了递归的优缺点,提醒读者在实际编程中合理使用递归。
60 7
|
30天前
|
存储 编译器 程序员
【c语言】函数
本文介绍了C语言中函数的基本概念,包括库函数和自定义函数的定义、使用及示例。库函数如`printf`和`scanf`,通过包含相应的头文件即可使用。自定义函数需指定返回类型、函数名、形式参数等。文中还探讨了函数的调用、形参与实参的区别、return语句的用法、函数嵌套调用、链式访问以及static关键字对变量和函数的影响,强调了static如何改变变量的生命周期和作用域,以及函数的可见性。
30 4
|
1月前
|
存储 编译器 C语言
C语言函数的定义与函数的声明的区别
C语言中,函数的定义包含函数的实现,即具体执行的代码块;而函数的声明仅描述函数的名称、返回类型和参数列表,用于告知编译器函数的存在,但不包含实现细节。声明通常放在头文件中,定义则在源文件中。
|
1月前
|
C语言
c语言回顾-函数递归(上)
c语言回顾-函数递归(上)
33 2
|
1月前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
22 3
下一篇
无影云桌面