博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《ios5编程揭秘》第二章 oc语言基础(1)
阅读量:5088 次
发布时间:2019-06-13

本文共 2212 字,大约阅读时间需要 7 分钟。

一、接口和实现

 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 #import 
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...]

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/wqddy/archive/2013/03/23/2976873.html

你可能感兴趣的文章
iOS/Swift 个人常浏览博客网站(收集中)
查看>>
三级联动地区选择插件
查看>>
windows上使用image库
查看>>
不使用存储过程针对对oracle数据库进行分页
查看>>
迅雷极速版任务出错的解决办法(亲测可用)
查看>>
mac下使用PyCharm遇到的坑坑洼洼
查看>>
docker1-1
查看>>
kettle转换JavaScript获取命令行参数
查看>>
学习进度十六
查看>>
C#并行编程-Task
查看>>
Google人工智能面试·真·题(附参考答案+攻略)(转)
查看>>
缓存穿透 缓存雪崩 缓存击穿
查看>>
各类免费api接口
查看>>
关于Boost在工程下的配置
查看>>
[ Java ][ Eclipse ] 停止讓 Eclipse 跳出 Password Required
查看>>
String常用方法
查看>>
一个前端所需具备的PS能力
查看>>
Mac下Jenkins+SVN+Xcode构建持续
查看>>
matplotlib中的颜色及线条控制
查看>>
Linux--逻辑卷管理器
查看>>