lijifeng

导航

黑马程序员——OC语言 类和对象

                                                          (以下内容是对黑马苹果入学视频的个人知识点总结)

(一)类

1)类的声明

代码编写

①定义一个Car类,拥有2个属性:轮子数、时速,1个行为:跑

②类名\属性的命名规则:标示符的规则

③类名的命名规范:有意义、驼峰标识、首字母大写

1 @interface Car : NSObject
2 {
3     @public
4     int wheels; // 多少个轮子
5     int speed; // 时速
6 }
7 - (void)run; // 跑的行为
8 @end

@public可以让Car对象的wheels和speed属性被外界访问

NSObject的目的是让Car类具备创建对象的能力

常见的错误

①只有类的声明,没有类的实现

② 漏了@end

③ @interface和@implementation嵌套

④ 两个类的声明嵌套

⑤ 成员变量没有写在括号里面

⑥方法的声明写在了大括号里面

2)成员变量

①@interface的大括号{}中声明的变量:wheels、speed

②@interface的大括号和函数的大括号是不一样的

③默认会初始化为0

3)类的实现

1 @implementation Car
2 - (void) run
3 {
4     NSLog(@"%i个轮子,%i时速的车子跑起来了", wheels, speed);
5 }
6 @end

(二)对象

1)创建多个Car对象

分别只设置wheels、speed属性

1 Car *c1 = [Car new];
2 
3 c1->wheels = 4;
4 
5 Car *c2 = [Car new];
6 
7 c2->speed = 250;
8 
9 [c1 run];

 2)更加接近人类的思考方式

 只需要关注对象,不需要关注步骤

 3)对象与函数参数

 对象成员变量作为函数参数

 指向对象的指针作为函数参数

 修改指向指向对象的成员

 修改指针的指向

(三)类的声明和实现注意事项

1>方法只有声明,没有实现(经典错误)

2>方法没有声明,只有实现(编译器警告,但是能调用,OC的弱语法)

3>编译的时候:访问没有的成员变量直接报错,访问没有的方法,只是警告

4>OC方法只能声明在@interface和@end之间,只能实现在@implementation和@end之间。也就是说OC方法不能独立于类存在

5>低级错误:方法有声明,但是实现的时候写成了函数

#import <Foundation/Foundation.h>

@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;
}

 

posted on 2015-03-23 18:22  lijifeng  阅读(151)  评论(0编辑  收藏  举报