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.有返回值无参数
方法声明: 方法调用:
2.有返回值并且有一个参数
方法声明: 方法调用:
3.有返回值并且有多个参数
方法声明: 方法调用: