・Objective-C
Objective-C就是面向对象的C语言。
你可以使用Objective-C编程,但不使用任何非C语言的东西。
Objective-C使用所有的C语言的内容,同时添加了一些使得它更具面向对象特征的语法。 与C语言一致的部分
数据类型,表达 式,各种运算符
循环:for, while, do while, break, continue
分支:if, else, switch
・Objective-C类定义
---------------------------------------
Bank.h
---------------------------------------
#import <Foundation/NSObject.h>
@interface Bank: NSObject {
NSString *name;
int amount;
}
-(void) print;
-(void) addAmount: (int) a;
-(int) amount;
-(Bank *) initWithName: (NSString *) n andAmount: (int) a;
@end
---------------------------------------
代码说明:
#import是引入库函数
@interface是表明定义了一个类,冒号后面是父类类型
两个大括号之间的部分就是类的成员变量,只有类函数能够直接访问
- 表明要定义一个类对象级别的函数;如果是+,表明要定义类级别的函数
返回值与参数的类型放在()内
函数定义中的: 表明后面会跟一个参数
如果函数有多个参数,格式为“参数名”+“:”+“变量名”
类的函数定义结束后,使用@end关闭
・类实现
---------------------------------------
Bank.m
---------------------------------------
#import "Bank.h"
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
@implementation Bank
-(void) print {
printf("Total amount is %i", amount);
}
-(void) addAmount: (int) a {
amount += a;
}
-(int) amount{
return amount;
}
-(Bank *) initWithName: (NSString *) n andAmount: (int) a{
self = [super init];
name = n;
amount = a;
return self;
}
@end
---------------------------------------
代码说明:
@implementation定义函数的具体内容,后面接着类名
函数头按照定义来写
最后用@end来结束所有函数体
・调用写好的类和类函数
---------------------------------------
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import "Bank.h"
int main( int argc, const char *argv[] ) {
//创建新对象,使用缺省初始化函数
Bank *bankDefault = [[Bank alloc] init];
//创建新对象,使用自定义初始化函数
Bank *bank = [[Bank alloc] initWithName: @"Harry" andAmount: 28];
[bank addAmount: 1];
[bank print];
[bank free]; // 释放对象
[bankDefault free]; // 释放对象
return 0;
}
---------------------------------------
调用类函数的时候,首先创建并初始化对象。
这里我们使用缺省的init和我们自定义的initWithName来分别初始化一个对象;
使用[]来调用函数,按照次序分别是:对象名,函数名,: 参数值(如果有),函数名第二部分(如果有),:第二参数值(如果有);