OC相关-02:oc和c的基本差异
前言:
面向过程和面向对象。
简单的说,面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。两者的区别就在于面向过程是从事情的开始到结束顺序完成,而面向对象则是从一个事件中抽象出来不同的类和动作,再降类具体到每个对象。比如说,雨天打伞。面向过程就是:下雨了,我造了一把伞,然后打开。而面向对象解决这个问题,就是:下雨,人,伞。下雨这件事情发生了,人拿了一把伞用。很显然,objective-c就是一门面向对象的语言。是在继承c的基础上添加了面向对象的理念。
一.首先看一下c和o-c源文件区别:前面是c,后面是oc.
二. 基本语法对比:
1数据类型
c语言:基本类型(int; short;float;double float…… )。空类型。指针类型。构造类型。定义类型。
oc语言: 除了在c语言数据类型的基本上,还添加了一些其他类型。
以下几种是哪出来需要重点说一下的:
1).BOOL类型:存储0,1表示真假。经常用于做逻辑判断:
如下图,将BOOL类型 变量 isyes初始化: yes,然后赋值为:no;将nslog用整型打印出来,结果为0;其底层定义就是通过0和1来存储的。除此之外在oc中还有 boolen和 bool 类型,功能与BOOL相似。
2)id 万能指针,sel;选择器类型,以及 nsobject * 对象类型,block 代码块等类型。
2. 关键字
c语言32个关键字。
oc兼容c大部分关键字,有增加了一些。
3.流程控制语句。c语言中三大结构:(1)顺序结构。 (2)分支结构(3)循环结构。
oc中结构是和c一样的。但其有增强的循环结构,之后会给大家详细介绍。
4.o-c独有的异常捕获机制:
版权声明:本文为博主原创文章,未经博主允许不得转载。
OC相关-02:oc和c的基本差异的更多相关文章
- oc工程中oc、swift混编代码打包成静态framework踩坑笔记
参考资料: https://www.jianshu.com/p/734341f7c242 https://www.jianshu.com/p/55038871e7de 两天时间探索,期间不知道遇到 ...
- O-C相关05:方法的封装.
前言:在 OC 中进行封装, 就是实现设置实例变量和获取实例变量数据的方法, 常常称为 setter 方法和 getter 方法. 或称为 get set 读写器. 1,setter 方法 sette ...
- OC语言-02面向对象的三大特性
01封装 #import <Foundation/Foundation.h> @interface Student : NSObject { //@public 成员变量尽量不使用 int ...
- OC 相关
1.OC runtime的理解[转载] http://www.csdn.net/article/2015-07-06/2825133-objective-c-runtime/1
- O-C相关-10-动态类型检查
10-动态类型检查 1.动态绑定 1)OC 中方法的调用不由编译器决定,而由运行时决定 2)OC 中没有方法调用,只有消息接收. 一般称消息为选择器 2.动态类型检查 对象在运行时获得类型的能力称为内 ...
- O-C相关-07-@property关键字简介与使用
基本概念:在O-C中,创建完类之后还需要给一个类添加属性和方法,之前说过的set和get方法比较繁琐,因此引入了@property 这个编译器指令.@property 是一个编译器指令.所谓的编译器指 ...
- O-C相关06:self和super关键字介绍——self关键字
self关键字介绍 1.self和super OC 版权声明:本文为博主原创文章,未经博主允许不得转载. posted @ 2015-08-04 12:46 王刚韧(wanghy_iOS) 阅读(.. ...
- O-C相关04:类方法的概述与定义和调用
类方法的概述与定义和调用 1, 类方法的概述 类方法(class method)在其他编程语言中常常称为静态方法(例如 Java 或 C# 等). 与实例方法不同的是,类方法只需要使用类名即可调用, ...
- OC总结 【OC基础语法相关知识】
m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...
随机推荐
- JS链接页面
window.location.href = "index.php?op=xx&extend_op=xxc" 这样是在本页打开链接 window.open("ht ...
- (转载)WindowsXP上安装和运行神器SqlMap的步骤
在Windows XP上安装和运行SqlMap的步骤…… 1.首先下载SqlMap 点击下载. https://codeload.github.com/sqlmapproject/sqlmap/leg ...
- 前端自动生成/加载CSS
前言: 1.我很懒! 2.写样式时,很多时候需要单独设置长度.宽度.内间距.外间距等.于是,就会有很多CSS代码会出现很多类似以下的代码: .w20: { width: 20px; } .mt10: ...
- spark高级排序彻底解秘
排序,真的非常重要! RDD.scala(源码) 在其,没有罗列排序,不是说它不重要! 1.基础排序算法实战 2.二次排序算法实战 3.更高级别排序算法 4.排序算法内幕解密 1.基础排序算法实战 启 ...
- /etc/init.d/syslog: No such file or directory
centos 6 使用的是 rsyslog 而 centos5 使用 syslog ,兩個不同版本使用軟體不同.因此,你得要修訂 /etc/rsyslog.conf 才行!軟體也變成 /etc/ini ...
- Asp.net mvc 自定义全局的错误事件HandleErrorAttribute无效
Asp.net mvc 自定义全局的错误事件HandleErrorAttribute,结果无效, 原因: 1.没有在RegisterGlobalFilters 里面添加或者你要的位置添加. 2.你把这 ...
- ASP.NET- 播放视频代码
在网上找的,还不错,支持很多格式.只需要在页面放个lable,建一个放视频文件的文件夹movie,加入代码: protected void Page_Load(object sender, Event ...
- Java-struts2的问题 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
缺commons-lang3-3.1.jar,添加之后就可以了
- 包的定义和导入-----package
1.包的定义 其中: . 表示当前路径 2.包的导入 一个类需要被外包访问的话,需要定义为public class. package org.lxh.demo08.a ; public class ...
- Android Beam 详细实现步骤
前言 最近没怎么写东西了,主要是在了解Beam这个东东.这方面的教程真的非常有限,找了不少资料目前还没看到一篇能够让一个新手看一遍就知道实现一个Beam功能都需要那些步骤的.而且,都是用的官方的例子, ...