/*
方法
1.对象方法都是以减号 -
2.对象方法的声明必须写在@interface和@end之间
对象方法的实现必须写在@implementation和@end之间
3.对象方法只能由对象来调用
4.对象方法归类\对象所有
函数
1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
2.函数调用不依赖于对象
3.函数内部不能直接通过成员变量名访问某个对象的成员变量
*/
#import <Foundation/Foundation.h>
@interface Person : NSObject
@end
@implementation Person
@end
@interface Car : NSObject
{// 成员变量\实例变量
//int wheels = 4; 不允许在这里初始化
//static int wheels; 不能随便将成员变量当做C语言中的变量来使用
@public
int wheels;
}
- (void)run;
- (void)fly;
@end
int main()
{
// wheels = 10;
/*
Car *c = [Car new];
c->wheels = 4;
//run();
[c run];
*/
void test2();
test2();
return 0;
}
@implementation Car
- (void) fly
{
}
/*
void test2()
{
NSLog(@"调用了test2函数-%d", wheels);
}*/
void test()
{
NSLog(@"调用了test函数");
}
- (void)run
{
test();
NSLog(@"%d个轮子的车跑起来了", wheels);
}
@end
#import <Foundation/Foundation.h>
/*
计算器类
方法:
1> 返回 π
2> 计算某个整数的平方
3> 计算两个整数的和
*/
@interface JiSuanQi : NSObject
// 方法名:pi
- (double)pi;
// OC方法中,一个参数对应一个冒号
// 方法名:pingFang:(冒号也是方法名的一部分)
- (int)pingFang:(int)num;
//- (int)sum:(int)num1 :(int)num2;
// 方法名:sumWithNum1:andNum2:
- (int)sumWithNum1:(int)num1 andNum2:(int)num2;
//- (int)sumWithNum1:(int)num1 andNum2:(int)num2 andNum3:(int)num3;
@end
@implementation JiSuanQi
- (double)pi
{
return 3.14;
}
- (int)pingFang:(int)num
{
return num * num;
}
//- (int)sum:(int)num1 :(int)num2
- (int)sumWithNum1:(int)num1 andNum2:(int)num2
{
return num1 + num2;
}
@end
int main()
{
JiSuanQi *jsq = [JiSuanQi new];
int a = [jsq sumWithNum1:20 andNum2:5];
//int a = [jsq sum:10 :5];
//int a = [jsq pingFang:10];
//double a = [jsq pi];
NSLog(@"%i", a);
return 0;
}
/*
设计一个方法,用来和其他车比较车速,返回车速的差距
*/
#import <Foundation/Foundation.h>
@interface Car : NSObject
{
@public
int speed;
}
- (int)compareSpeedWithOther:(Car *)other;
@end
@implementation Car
- (int)compareSpeedWithOther:(Car *)other
{
// speed
// other->speed
// 返回当前这辆车和other这辆车的速度差距
return speed - other->speed;
}
@end
int main()
{
Car *c1 = [Car new];
c1->speed = 300;
Car *c2 = [Car new];
c2->speed = 250;
int a = [c1 compareSpeedWithOther:c2];
NSLog(@"a=%d", a);
return 0;
}
@interface Car : NSObject
{
@public
int speed;
}
- (void)run;
@end
@implementation Car
- (void)run
{
NSLog(@"速度为%d的车子跑起来了", speed);
}
@end
int main()
{
/*
Car *c;
c = [Car new];
c->speed = 250;
[c run];*/
// 不要写类似匿名对象这样的代码
// 只要求能说出输出结果
[Car new]->speed = 300;
[[Car new] run];
//Car *c = [Car new];
return 0;
}
原文地址:http://blog.csdn.net/wangzi11322/article/details/45111163