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 ...
随机推荐
- 使用VisualStudio进行单元测试之二
借着工作忙的借口,偷了两天懒,今天继续单元测试之旅.前面说了如何进行一个最简单的单元测试,这次呢就跟大家一起来熟悉一下,在visual studio中如何进行数据驱动的单元测试. 开始之前先来明确一下 ...
- python 默认的系统编码 sys.setdefaultencoding
python2.x的编码问题有时让人很头疼,一会ascii,一会unicode. 在脚本里多见这样的操作: import sys reload(sys) sys.setdefaultencoding( ...
- asp.net用户检测的两种方式
第一种方式(继承System.Web.UI.Page类,重写OnInit方法): public class CheckSession : System.Web.UI.Page { ...
- 一步一步写一个简单通用的makefile(四)--写一个通用的makefile编译android可执行文件
通常要把我们自己的的代码编译成在android里面编译的可执行文件,我们通常是建一个文件夹 . ├── Android.mk ├── Application.mk ├── convolve.cl ├─ ...
- cocos 事件转发
CCDirector在函数setOpenGLView中设置pobOpenGLView,同时会掉用 m_pobOpenGLView->setTouchDelegate(m_pTouchDispat ...
- Android开发艺术探索(一)——Activity的生命周期和启动模式
Activity的生命周期和启动模式 生命周期有? 1.典型情况下的生命周期—>指有用户参与的情况下,Activity所经过的生命周期改变 2.异常情况下的生命周期—>指Activity被 ...
- android 双卡手机发短信/判断手机是否为双卡
通过反射发现sendMultipartTextMessage多了一个phoneType的参数,这个参数就是这只用GMS还是CDMA卡发送的. phoneType获取方法,iTelephony.getA ...
- careercup-数组和字符串1.4
1.4 编写一个方法,将字符串中的空格全部替换为“%20“.假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的”真实“长度. C++实现代码: #include<iostream> ...
- Linux学习笔记总结--memcached配置
Memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到 ...
- 聊聊 iOS 中的网络加密
介绍下 公司的接口一般会两种协议的,一种HTTP,一种HTTPS的,HTTP 只要请求,服务器就会响应,如果我们不对请求和响应做出加密处理,所有信息都是会被检测劫持到的,是很不安全的,客户端加密可以使 ...