OC基础--OC中类的声明与定义

OC中设计一个类的步骤:

一、声明类:

  1.用到的关键字--@interface 和 @end

  2.类名

  3.继承NSObject

  4.属性

  5.方法(行为,只需要声明)

二、实现(定义)类

  1.用到的关键字--@implementation 和 @end

  2.实现@interface中声明的方法

  3.类中方法的声明和实现一定注意开头写减号“-”

  4.OC类中的小括号不能乱用,小括号是用来括住类型的!--谨记!

例: 下面的代码中声明和定义的类,类中的方法没有返回值,没有参数

    * 实现@interface中声明的方法
*/ #import <Foundation/Foundation.h> // 类的声明
@interface Dog : NSObject
// 属性
{
@public
int speed;
} // 只是声明
- (void)run; @end // 写完@interface马上写@end // 类的实现(定义)
@implementation Dog // 实现run方法
- (void)run
{
NSLog(@"速度为%i的狗跑起来了", speed);
}
@end int main()
{
Dog *dog = [Dog new];
dog->speed = ; [dog run]; return ;
}

OC中的类的方法名有返回值和参数的情况:

  1.一个参数对应一个冒号

  2.冒号也是方法名的一部分

 /*
设计一个计算器类
1.类名:Caculator
2.行为(方法):
* 返回PI:3.14
* 计算某个数值的平方
* 计算两个数值的和
*/ #import <Foundation/Foundation.h> // 计算器的声明
@interface Caculator : NSObject // 方法的声明
- (double)pi; // 方法名pi,返回值类型是double小括号括住类型,无参数 // - (double)pi:(int)abc; // 方法名pi: // 一个参数对应一个冒号
// 冒号也是方法名的一部分
- (double)pingfang:(double)number; // 方法名:pingfang: // 方法名:sumOfNum1:andNum2:--为了增强代码的可读性
- (double)sumOfNum1:(double)num1 andNum2:(double)num2;
@end int main()
{
Caculator *ca = [Caculator new]; //NSLog(@"PI=%f", [ca pi]); // double d = [ca pingfang:4]; // NSLog(@"4的平方=%f", d); double he = [ca sumOfNum1: andNum2:]; NSLog(@"10+5=%f", he); Caculator *ca2 = [Caculator new]; return ;
} // 计算器的实现
@implementation Caculator // 实现@interface中声明的方法
- (double)pi
{
return 3.14;
} - (double)pingfang:(double)number
{
return number * number;
} - (double)sumOfNum1:(double)num1 andNum2:(double)num2
{
return num1 + num2;
} @end

OC中函数和OC对象方法的区别:

  1.函数属于整个文件,在文件的任意地方都能调用;对象方法之属于对象,只有对象才能调用对象方法

  2.对象方法只能声明在@interface 和 @end 之间,对象方法只能实现在@implementation 和 @end之间。

  函数的声明和定义可以写在任意地方,函数不能归某个类所有,只属于某个文件。

OC中方法的声明与调用图解:

1.有返回值无参数

方法声明:                       方法调用:

OC基础--OC中类的声明与定义     OC基础--OC中类的声明与定义


2.有返回值并且有一个参数

方法声明:                              方法调用:

OC基础--OC中类的声明与定义    OC基础--OC中类的声明与定义

3.有返回值并且有多个参数

方法声明:                                    方法调用:

OC基础--OC中类的声明与定义    OC基础--OC中类的声明与定义


上一篇:JSBinding+SharpKit / 更新的原理


下一篇:[Head First Python]4.读取文件datafile.txt, 去除两边空格, 存储到列表,从列表格式化(nester.py)后输出到文件man.out,other.out