黑马程序员Objective-C笔记:类与方法

            ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一.类的声明与实现

  1.@interface和@implementation的分工
  • @interface就好像是暴露在外面的时钟表面
  • @implementation就好像是隐藏在时钟内部的构造实先               
 2.interface 里面不允许初始化(即赋初值),通过指针在main函数中初始化;
   static int wheels ;  //错误写法,不能随便将成员变量当作c语言中的变量来使用,不能用static修饰

二.OC方法与函数的区别

  1. 对象方法都是以“-”开头
  2. 对象方法的声明必须写在@interface和@end之间,对象方法的实现必须写在@implementation和@end之间
  3. 对象方法只能用对象调用
  4. 函数能写在文件中的任何位置,函数归文件所有,但在@interface和@end之间不能写
  5. 函数调用不依赖对象
  6. 函数内部不能直接通过成员变量名来调用成员变量,只能通过指针

三.方法的命名和调用

1.没有参数的方法

例如:-(void)run;
  1. 减号:表示是OC对象方法
  2. void:方法的返回值类型
  3. run:方法名
2.有参数的方法
 例如:-(int)pingFang:(int) num;
  1.  减号:方法类型,对象方法
  2. int:返回值类型
  3. pingFang::方法名,注意冒号也是方法名的一部分
  4. int:参数类型
  5. num:参数名称
oc中的数据类型必须用小括号括起来(方法的返回值类型,方法的参数类型)
同一个类中不允许两个对象方法同名

3.无参方法的调用
  
  [c  run]               // c为指向拥有run方法的对象的指针

4.有参方法的调用
 
 [c  pingFang:5]   // c为指向拥有pingFang:方法的对象的指针

5.匿名对象
 
没有将创建出来的对象赋值给该类型的指针
Car *c=[Car new];
c->speed=300
[c run];
NSLog(speed);
//这里的输出是:300


[Car new]->=-300;
[[Car new] run];   //又创建一个新的对象
NSLog(speed);
//这里的输出是:0
 
产生这种情况的原因:因为[Car new]这句代码每次都会创建一个新对象,所以来两个对象不同



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值