黑马程序员——详细的类的声明和实现
2015-08-11 21:15
555 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
1、计算器类
方法:
1>返回兀
2>计算某个整数的平方
3>计算两个整数的和
#inport<Foundation/Foundation.h> //声明 @interface JiSuanQi :NSObject -(double)Pi; -(int)PingFang:(int)num; //这样写不太好 //-(int)sum:(int)num1 _:(int)num2; -(int)sumWithNum1:(int)num1 andNum2:(int)num2; @end @implementation JiSuanQi //方法的实现 -(double)Pi { return 3.14; } -(int)PingFang:(int)num { return num * num; } -(int)sumWithNum1:(int)num1 andNum2:(int)num2 { return num1 + num2; } @end int main() { JiSuanQi *jsq = [JiSuanqi new]; int a = [jsq Pi]; int b = [jsq PingFang:10]; int c = [jsq sunWithNum1:10 andNum2:5]; NSLog(@"%f,%i,i",a,b,c); }
输出结果:3.14 ,100 ,15
总结:
1.OC方法中一个参数对应一个冒号。
2.冒号也是方法名的一部分。
3.如以上3个方法分别叫:Pi , PingFang , sunWithNum1: andNum2:
4.如:-(double)pi;中:-是方法类型,double是返回值类型,Pi是方法名
调用时[c Pi];c是指针变量名,Pi是方法名
又如:-(double)sumOfNum1:(double)num1 andNum2:(double)num2;中:-是方法类型,第一个double是返回值类型,
后两个double是参数类型,sumOfNum1: andNum2:是方法名,num1 num2是参数名称
调用时[c sumOfNum1:10 andNum2:5 ];c是指针变量名,sumOfNum1: andNum2:是方法名,10,5 是实际参数
2、练习:给Car类设计一个方法,和其他车比车速,返回速度差
#inport<Foundation/Foundation.h> //声明 @interface Car :NSObject @public { int speed; } -(int)compareSpeedWithOther:(Car *)other; @end @implementation Car //方法的实现 -(int)compareSpeedWithOther:(Car *)other { return speed-other->speed; } @end int main() { Car *c = [Car new]; c->speed = 300; Car *c1 = [Car new]; c1->speed = 280; int a = [c compareSpeedWithOther:c1]; NSLog(@"a = %d",a); }
输出结果:a = 20
3、匿名对象:给Car类设计一个方法
#inport<Foundation/Foundation.h> //声明 @interface Car :NSObject @public { int speed; } -(void)run; @end @implementation Car //方法的实现 -(void)run { NSLog(@"速度为:%d",speed); } @end //正常的main函数 int main() { //利用c访问创建的对象--有名 Car *c; c = [Car new]; c->speed = 300; } 输出结果:速度为:300 //匿名对象 int main() { //创建了2个新对象 [Car new]->speed = 200; [[Car new] run]; }
输出结果:速度为:0
相关文章推荐
- 静态链接的一点小总结(一) 《程序员的自我修养》·笔记
- 黑马程序员——java复习总结——面向对象
- 黑马程序员——对象与函数
- C#基础系列——再也不用担心面试官问我“事件”了
- 剑指Offer面试题47(Java版):不用加减乘除做加法
- (剑指Offer)面试题61:按之字形顺序打印二叉树
- 面试常见问题 死锁代码&单例模式
- 丑数——剑指offer面试题34
- 面试-机试-编程题--剑指offer
- 剑指Offer面试题45(Java版):圆圈中最后剩下的数字
- 黑马程序员——类与对象
- 黑马程序员——java面向对象之封装、继承、多态
- 黑马程序员——java面向对象之_类Class
- Java 50道Java线程面试题
- 【科普】码农是程序员吗?码农与真正程序员的区别是啥?
- 架构师不是程序员
- 架构师不是程序员
- 【黑马程序员】第一篇_关于String的认识
- 揭秘女程序员是怎样炼成的
- 黑马程序员--Java反射