黑马程序员——Objective-C——定义类、方法、创建对象


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

一、类的声明

注意点:类名的的命名规范:有意义、驼峰命名、首字母大写

#import <Foundation/Foundation.h>
// 类的声明
@interface : NSObject
{
    @public
     int speed; // 时速
}
- (void)run; // 跑的行为
@end

1>成员变量:

  interface中的大括号{}中是声明成员变量(变量默认初始化为0)的。

  @public是变量的访问权限。

  interface中大括号之外是用来声明类方法的。

2>成员变量的作用域:

  @public:任何类。

  @private:类内。

  @protected:类本身与子类。

3> NSObject

  所有类或父类必须继承代表具有创建类对象的能力。

二、类的实现

@implementation Car
- (void) run
{
    NSLog(@"时速为%d的车子", speed);
}
@end

 三、创建对象

//在非ARC内存管理模式下
int main() { //创建车子对象
  Car *c = [[Car alloc]init];//此处会retain一次
  c->speed = 300;
  [c run];
  [c release];//这里需要释放对象资源
  return 0; }

 四、常见错误

  1> 只有类的声明,没有类的实现。

  2>漏了@end。

  3>@interface和@implementation嵌套。

  4>两个类的声明嵌套。

  5>成员变量没有写在括号里面。

  6>方法的声明写在了大括号里面。

 五、Objective-C与函数的区别

  1>oc方法只能声明在@interface和@end之间,只能实现在@implement和@end之间,归对象和类所有(依赖于对象)。

  2>函数可写在除@interface外文件任何地方,归文件所有(不依赖于对象)。

  3>oc方法以减号或加号开头,函数则不需要。

六、方法的定义

1>不带参数的方法定义:

// 方法声明
- (double)pi;
// 方法实现
- (double)pi
{
    return 3.14;
}

无参数方法实例图:方法类型可以是加号或减号

 

无参方法调用实例图:

  

2>带单个参数方法的定义:

// 方法声明
- (double)square:(double)number;
// 方法实现
- (double)square:(double)number
{
    return number * number;
}

 带单个参数方法的实例图:

带单个参数方法的调用:

3>多个参数方法的定义:

// 方法声明
- (double)sumOfNum1:(double)num1 andNum2:(double)num2;
// 方法实现
- (double)sumOfNum1:(double)num1 andNum2:(double)num2
{
    return num1 + num2;
}

 多个参数方法定义实例图:

多个参数方法的调用:

七、方法名注意点:

1>冒号也是方法名的一部分。

2>同一个类不允许两个对象方法同名。

八、匿名对象:

[[car new] run]; //在非ARC内存管理模式下不建议这样使用,导致占用内存不能及时释放。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM