《ios5编程揭秘》第二章 oc语言基础(1)

一、接口和实现

 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)viewDidLoad
10 {
11     [super viewDidLoad];
12     // Do any additional setup after loading the view, typically from a nib.
13 }
14 
15 - (void)didReceiveMemoryWarning
16 {
17     [super didReceiveMemoryWarning];
18     // Dispose of any resources that can be recreated.
19 }
20 
21 @end

  以上量块代码描述中 关键字 @inteface 和@implementation 告诉编译器,接口和实现两部分从哪里开始。下面做一个Students类的实现例子。

Students.h文件

1 #import <UIKit/UIKit.h>
2 
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...]

 

 

 

 

 

 

 

 

 

 

posted @ 2013-03-23 11:59  真是猿粪啊  阅读(224)  评论(0编辑  收藏  举报