linux 程序结构,Objective-C 基本的程序结构
以一段程序开始说明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 基本的程序结构相关推荐
- Linux系统编程--1(进程和程序,CPU和MMU,PCB,进程状态)
进程相关概念 程序和进程 程序:是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu.内存.打开的文件.设备.锁-) 进程:是一个抽象的概念,与操作系统原理联系紧密.进程是活跃的程序(程序员角度) ...
- linux+kill+进程和线程,什么是程序,进程和线程?三者之间有何关系?
进程 进程与线程的历史 进程与线程之间的关系 重点 进程 和 线程的概念 进程和程序关系 cpu在执行程序时什么叫进程 swap 内存的缺页异常 大的异常 小的异常 内存映射mmap 内存泄露 tas ...
- 单片机遥控开关系统设计(结构原理、电路、程序)
本设计提出了一种基于单片机的遥控开关系统.通过对样机的测试结果表明,本系统采用单片机进行遥控系统的应用设计,具有编程灵活多样,操作码个数可随意设定等优点.一般设备系统采用专用的遥控编码及解码集成电路. ...
- Linux c 监控进程状态,linux进程监控和守护进程的程序_linux程序一实现守护进程,用于监测程序二的启动状态-C代码类资源...
linux实现对开启进程的监控,1,从配置文件中获得要开启的进程名 2,放入结构体数组中3,用fork加exel启动进程,4,检测proc下进程是否在运行,没有运行,则开启此进程5, struct p ...
- linux 写pci配置空间,[转载]应用程序中pci配置空间读写
应用程序中pci配置空间读写 ~~~~~~~~~~~~~~~~~~~~~~~ 1. 概述 主要讲述在linux操作系统中应用程序如何读写pci配置空间. 2. 基本原理 对于pci设备,由cpu通过一 ...
- Linux安全体系的ClamAV病毒扫描程序[转]
> 摘自:http://www.shangshuwu.cn/index.php/Linux安全体系的ClamAV病毒扫描程序 ClamAV是使用广泛且基于GPL License的开放源代码的典型 ...
- Linux下通过源码编译安装程序
本文简单的记录了下,在Linux下如何通过源码安装程序,以及相关的知识. 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的 ...
- python中常见的流程结构-Python学习笔记5程序的控制结构
1.分支结构 (1)单分支结构 (2)二分支结构 (3)多分支结构 条件判断 (4)程序的异常处理 2.实例:身体质量指数BMI 思路一(国内,稍作修改就是国际): 思路二: 1 height,wei ...
- linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
1 linux上根据运行程序的进程号,查看程序所在的绝对路径 1.如下,我想查看python 25_run_train_tripletloss_sknet_8w_offline_c_plus.py 这 ...
- 如何在Linux中安装和使用Silver Searcher(程序员的代码搜索工具)
Silver Searcher是一个免费的开源跨平台源代码搜索工具,类似于ack ( 类似于程序员的grep工具 ),但速度更快. 它运行在类Unix系统和Windows操作系统上. 银色搜索者和ac ...
最新文章
- Anchor-free应用一览:目标检测、实例分割、多目标跟踪
- 必考题:子类继承父类,初始化以及方法调用顺序
- WEB中get请求和post请求的区别
- ubuntu21.04下终端路径显示优化
- spring cloud简介之最好参考
- 远程桌面无法启动Matlab的解决方案
- iOS底层探索之多线程(二)—线程和锁
- python前端开发工具篇
- 【Data Science · Statistics 02】统计数据从哪里来
- Android反编译添加组件,Android 反编译工具
- 微软招 HR 了!看来是招聘需求太旺盛,忙不过来了
- html中blockquote标签,html中blockquote标签的使用方法
- SQL语句(五) 索引建立
- u3d mysql_学习笔记(1) mysql + kbengine-0.8.2+U3D_demo详细搭建过程个人记录_mysql
- matlab 与 mathmatica 编程对比(Vyi个人学习笔记)
- [区块链]区块链技术在殡葬行业的思考
- 单片机彩灯移动实验_实验一 单片机彩灯控制器的电路设计与仿真
- HTML5期末大作业:动漫网页主题设计——卡通漫画教育首页HTML+CSS+JavaScript 动漫网页HTML代码 学生网页课程设计期末作业下载 动漫大学生网页设计制作成...
- mysql 空间数据操作,MySQL 空间数据 简单操作
- 学生HTML个人网页作业作品 HTML+CSS贝聿铭人物介绍 6页 (1)