一、接口和实现
oc时一个面向对象的语言,所以整个oc程序时由一些类组成的。每个类保函两大块代码,分别时“接口”和“实现”。“接口”的文件后缀通常时“.h”,“实现”的文件后缀通常是“.m”。如:
.h
@interface ViewController : UIViewController@end
.m
1 #import "ViewController.h" 2 3 @interface ViewController () 4 5 @end 6 7 @implementation ViewController 8 9 - (void)viewDidLoad10 {11 [super viewDidLoad];12 // Do any additional setup after loading the view, typically from a nib.13 }14 15 - (void)didReceiveMemoryWarning16 {17 [super didReceiveMemoryWarning];18 // Dispose of any resources that can be recreated.19 }20 21 @end
以上量块代码描述中 关键字 @inteface 和@implementation 告诉编译器,接口和实现两部分从哪里开始。下面做一个Students类的实现例子。
Students.h文件
1 #import2 3 @interface Students : NSObject{4 NSString *name;5 int age;6 }7 8 @end
Students.m文件
1 #import "Students.h" 2 3 @implementation Students 4 -(NSString*) name{ 5 return name; 6 } 7 -(int) age{ 8 return age; 9 }10 -(void) setName:(NSString*) input{11 name = input;12 }13 -(void) setAge:(int) input{14 age = input;15 }16 @end
执行调用
1 #import "Students.h" 2 3 int main(int argc, char *argv[]) 4 { 5 @autoreleasepool { 6 7 Students* str = [[Students alloc] init]; 8 [str setName:@"jon"]; 9 [str setAge:26];10 NSLog(@"我叫%@,今年%i岁",[str name],[str age]);11 }12 }
运行结果
2013-03-23 11:14:52.976 HelloShenba[3795:f803] 我叫jon,今年26岁
二、面向对象编程
oc是一个面向对象的语言,程序中的对象是基于显示世界中的对象的概念。它是一个可操作的东西,如汽车。在面向对象程序设计中,程序就是由很多对象组合而成。面向对象的三个基本特征:封装、继承和多态。
- 封装就是把客观事务封装成抽象的类。
- 继承就是从一般到特殊的过程。
- 多态提供了同一个接口名称,通过覆盖和重载实现不同的功呢。
三、对象
一个对象保函两个特性:功能封装和状态维护。
- 功能封装:一个对象之做自己的事,二不关心其他一切,对外界来说它就事透明的,之能通过向方法发送消息来使用对象。
- 状态维护:每个实例就事一组数据。这些数据事私有的,事被封装的。其他对象不知道这些数据事什么,也不知道事什么格式的数据。访问它的唯一途径事是通过它的方法。
四、消息和方法
载面向对象中,调用一个方法、访问一个属性。指的是向对象发送一个“消息”,被调用的代码称为“方法”。下面是一个方法声明。以下是一个方法声明的例子:
-(int) age;
(-)符号表示该方法是实例方法,可通过对象调用。(+)表示类方法[大概是静态方法的意思],可通过类直接调用。()中表示的是返回值的类型。age表示方法的名称。
我们写的大多数方法是实例方法。类方法一般用于两个目的:
- 工厂方法:它是给类分配实例的方法。例如,UIFont类有一个类方法fontWithName:Size:。你提供以个名字和字体大小,这个UIFont类就给你以个UIFont实例。
- 全局公用方法:例如UIFont类的familyNames方法返回机器上安装的所有字体信息。
五、方法调用
[接受方 消息]即 [对象 方法] 或[类名 方法]。如果方法带参数可写为[接收方(类型)消息1:(类型)消息2:(类型)消息3]或[接受方:(类型)消息1 参数2:(类型)消息2...]