以一段程序开始说明Objective-C 基本的程序结构。

#import

@interface MyClass:NSObject

- (void) method;

@end

@implementation MyClass

- (void) method {

NSLog(@"Hello,OC!\n");

}

@end

int main() {

/* 初始化 */

MyClass *myClass = [[MyClass alloc]init];

/* 调用方法 */

[myClass method];

return 0;

}

终端输出结果:

分析程序结构:

#import

这是一段预处理指令,告诉OC编译器,在编译代码前加入Foundation 下的 Foundation.h文件

@interface MyClass:NSObject

- (void)method;

@end

这段代码以@interface开始以@end结尾,定义了一个接口(MyClass),这个接口继承NSObject这个类,NSObject类在OC中是所有类的基类。(优点类似与java中的基类Object,但是要注意任何类继承NSObject时必须加上":NSObject").

其中 - (void)method; 是声明了一个 没有返回值的、不带参数的实例方法。

"-" 是说明是这个类的实例方法,只有这个类的实例才能调用。声明方法还可以用 "+", "+"是说明是这个类的类方法,这个类可以调用。

"(void)" 是说明这个方法的返回是是void(可以说是没有返回值)

"method"是这个方法的名称。

值得注意的是方法结尾没有一对括号,很多人刚开始时习惯加上()

@implementation MyClass

- (void)method{

NSLog(@"Hello,OC!\n");

}

@end

这段代码以@implementation开始以@end结尾,定义了MyClass类,这个类是上面MyClass接口的实现类。

这个类中的method方法是接口的实现方法。{}内是方法的实现内容,NSLog函数是个打印输出函数。

int main() {

/* 初始化 */

MyClass *myClass = [[MyClass alloc]init];

/* 调用方法 */

[myClass method];

return 0;

}

main函数,程序的入口。

方法的调用方式:

[实例 实例方法名];

[类名 类方法];

分析 这段初始化方法MyClass *myClass = [[MyClass alloc]init];

[MyClass alloc] 调用类方法,由这段代码可以猜出来,这个类方法返回值是个MyClass的实例,用指针变量*myClass 接收,接着这个实例调用 init 方法初始化了这个实例。这样写这个方法就好理解点:

MyClass *myClass = [MyClass alloc];

[myClass init];

[myClass method]调用实例方法。

小结:

一个基本的OC程序包含: 预处理指令,接口,实现类,方法,变量。

linux 程序结构,Objective-C 基本的程序结构相关推荐

  1. Linux系统编程--1(进程和程序,CPU和MMU,PCB,进程状态)

    进程相关概念 程序和进程 程序:是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu.内存.打开的文件.设备.锁-) 进程:是一个抽象的概念,与操作系统原理联系紧密.进程是活跃的程序(程序员角度) ...

  2. linux+kill+进程和线程,什么是程序,进程和线程?三者之间有何关系?

    进程 进程与线程的历史 进程与线程之间的关系 重点 进程 和 线程的概念 进程和程序关系 cpu在执行程序时什么叫进程 swap 内存的缺页异常 大的异常 小的异常 内存映射mmap 内存泄露 tas ...

  3. 单片机遥控开关系统设计(结构原理、电路、程序)

    本设计提出了一种基于单片机的遥控开关系统.通过对样机的测试结果表明,本系统采用单片机进行遥控系统的应用设计,具有编程灵活多样,操作码个数可随意设定等优点.一般设备系统采用专用的遥控编码及解码集成电路. ...

  4. Linux c 监控进程状态,linux进程监控和守护进程的程序_linux程序一实现守护进程,用于监测程序二的启动状态-C代码类资源...

    linux实现对开启进程的监控,1,从配置文件中获得要开启的进程名 2,放入结构体数组中3,用fork加exel启动进程,4,检测proc下进程是否在运行,没有运行,则开启此进程5, struct p ...

  5. linux 写pci配置空间,[转载]应用程序中pci配置空间读写

    应用程序中pci配置空间读写 ~~~~~~~~~~~~~~~~~~~~~~~ 1. 概述 主要讲述在linux操作系统中应用程序如何读写pci配置空间. 2. 基本原理 对于pci设备,由cpu通过一 ...

  6. Linux安全体系的ClamAV病毒扫描程序[转]

    > 摘自:http://www.shangshuwu.cn/index.php/Linux安全体系的ClamAV病毒扫描程序 ClamAV是使用广泛且基于GPL License的开放源代码的典型 ...

  7. Linux下通过源码编译安装程序

    本文简单的记录了下,在Linux下如何通过源码安装程序,以及相关的知识. 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的 ...

  8. python中常见的流程结构-Python学习笔记5程序的控制结构

    1.分支结构 (1)单分支结构 (2)二分支结构 (3)多分支结构 条件判断 (4)程序的异常处理 2.实例:身体质量指数BMI 思路一(国内,稍作修改就是国际): 思路二: 1 height,wei ...

  9. linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间

    1 linux上根据运行程序的进程号,查看程序所在的绝对路径 1.如下,我想查看python 25_run_train_tripletloss_sknet_8w_offline_c_plus.py 这 ...

  10. 如何在Linux中安装和使用Silver Searcher(程序员的代码搜索工具)

    Silver Searcher是一个免费的开源跨平台源代码搜索工具,类似于ack ( 类似于程序员的grep工具 ),但速度更快. 它运行在类Unix系统和Windows操作系统上. 银色搜索者和ac ...

最新文章

  1. Anchor-free应用一览:目标检测、实例分割、多目标跟踪
  2. 必考题:子类继承父类,初始化以及方法调用顺序
  3. WEB中get请求和post请求的区别
  4. ubuntu21.04下终端路径显示优化
  5. spring cloud简介之最好参考
  6. 远程桌面无法启动Matlab的解决方案
  7. iOS底层探索之多线程(二)—线程和锁
  8. python前端开发工具篇
  9. 【Data Science · Statistics 02】统计数据从哪里来
  10. Android反编译添加组件,Android 反编译工具
  11. 微软招 HR 了!看来是招聘需求太旺盛,忙不过来了
  12. html中blockquote标签,html中blockquote标签的使用方法
  13. SQL语句(五) 索引建立
  14. u3d mysql_学习笔记(1) mysql + kbengine-0.8.2+U3D_demo详细搭建过程个人记录_mysql
  15. matlab 与 mathmatica 编程对比(Vyi个人学习笔记)
  16. [区块链]区块链技术在殡葬行业的思考
  17. 单片机彩灯移动实验_实验一 单片机彩灯控制器的电路设计与仿真
  18. HTML5期末大作业:动漫网页主题设计——卡通漫画教育首页HTML+CSS+JavaScript 动漫网页HTML代码 学生网页课程设计期末作业下载 动漫大学生网页设计制作成...
  19. mysql 空间数据操作,MySQL 空间数据 简单操作
  20. 学生HTML个人网页作业作品 HTML+CSS贝聿铭人物介绍 6页 (1)

热门文章

  1. 人脸识别之FaceNet
  2. How to deal with interlaced video
  3. Java Web中Forward和redirect的区别
  4. vim + vundle + YCM+自动格式化
  5. [译]5步分析pdf文件
  6. 在vue中获取dom元素
  7. 算法梳理(二)逻辑回归算法梳理
  8. proto2java
  9. Download Example
  10. 【多目标进化优化】 MOEA 测试函数