1、OC简介

全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发。

  • C语言的基础上,增加了一层最小的面向对象语法
  • 完全兼容C语言
  • 可以在OC代码中混入C语言代码,甚至是C++代码
  • 可以使用OC开发Mac OS X平台和iOS平台的应用程序

2、 OC语法概述

2.1关键字

每一种语言都有关键字,比如C语言的 flaot、int等等,那么oc有哪些关键字呢?

基本上所有关键字都是以@开头

下面列举一些常见的关键字,可以先预览一下,不用去翻资料查找它们的含义

@interface、@implementation、@end 

@public、@protected、@private、@selector 

@try、@catch、@throw、@finally  

@protocol、@optional、@required、@class

@property、@synthesize、@dynamic

self、super、id、_cmd、__block、__strong、__weak

2.2 字符串以@开头

比如@“Hello"是OC中的字符串,而"Hello"则是C语言中的字符串

2.3 其他语法

2.4  NSLog与printf的区别

  • NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
  • NSLog输出后会自动换行,printf输出后不会自动换行set方法和get方法
  • 使用NSLog需要#import <Foundation/Foundation.h>
  • 使用printf需要#include <stdio.h>

2.5 Foundation框架的作用

开发OC、iOS、Mac程序必备的框架

  • 此框架中包含了很多常用的API(应用编程接口)
  • 框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可

#import <Foundation/Foundation.h>

3、 OC与其他语言的区别

3.1 Objective-C同C的异同:

  1、C作为一种结构化语言,层次清晰,便于按模块化方式组织程序,易于调试和维护;Objecive-C扩展了C 语言使它具备面向对象设计的能力,例如类、消息‘继承;同时在Objective-C的代码中可以有C和C++语句,它可以调用C的函数,也可以通过C++对象访问方法;

  2、C表现能力和处理能力极强。可以直接访问内存的物理地址,进行位(bit)一级的操作;C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体—既可用于系统软件的开发,也适合于应用软件的开发;Objective-C可以实现底层系统编程,另一方面可以支持利用动态架构进行开发。

3.2 Objective-C同C++的异同:

1、单一继承:

和Java、Smalltalk一样,Objective-C不支持多重继承,而C++语言支持多重继承。

2、动态:

Objective-C是动态定型(dynamicaly typed),它的类库比C++容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。

4、OC的学习方法

在掌握C语言之后,学习OC是比较轻松的。由于OC是面向对象的语言,C语言是面向过程语言,所以学完C语言之后,还需要掌握一些面向对象的知识。只要按照方法得当、循序渐进的学习,就可以学好。OC的学习大致可以分为这些个方面:

1、面向对象编程

2、类和对象

3、创建类和对象

4、set方法和get方法

5、类方法和对象方法

6、self等关键字

7、继承和多态

8、字符串简单的使用

9、分类Category

10、内存管理

11、协议代理

12、Block

13、单例

14、ARC

15、字符串的使用

16、Foundation框架

OC笔记一:Objective-C简介的更多相关文章

  1. 【web开发学习笔记】Structs2 Result学习笔记(一)简介

    Structs2 Result学习笔记(一)简介 问题一 <struts> <constant name="struts.devMode" value=" ...

  2. Linux学习笔记之 Btrfs文件系统简介及使用

    Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...

  3. OC笔记一:Objective

    1.OC简介 全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发. C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码 ...

  4. 015-OC基础语法-OC笔记

    学习目标 1.[了解]Objective-C语言简介 2.[掌握]第一个OC程序 3.[掌握]OC中的字符串 4.[熟悉]OC中的一些玩意 5.[了解]面向过程与面向对象 6.[掌握]类的声明和实现 ...

  5. [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. IOS学习笔记2—Objective C—类、属性、方法

    以下是我学习IOS开发的一些笔记和心得,贴出来和大家一同分享,也希望大家能补充和纠错,共同进步 有Android和IOS开发问题也希望能和大家交流! Objective-C 1.OC是一门基于C的面向 ...

  7. Android Studio 学习笔记(二):布局简介和xmlns说明

    初学Android Studio,是在b站看的教程视频,这里的笔记也是以其为基础的,个人强烈安利: [天哥]Android开发视频教程最新版 Android Studio开发 Android 布局简介 ...

  8. python学习笔记1之-python简介及其环境安装

    python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...

  9. [OC笔记] protocol之我的见解

    OC中的protocol就是和JAVA中interface差不多的东西,但是又不是完全一样的.这个protocol常用来实现委托,也就是自己不实现,当事件产生的时候去回调委托者. 让委托者去执行响应的 ...

随机推荐

  1. Constraint5:unique 约束和null

    unique约束使用unique index来限制列值的唯一性: 创建unique约束之后,column中允许插入null值,unique 约束将两个null值看作是相同的(即null=null为tr ...

  2. 【Win 10应用开发】多窗口视图

    Windows App一般情况下,同一时刻只能有一个应用程序实例在运行,为了在特殊需求下可以同时呈现不同的UI,SDK提供了多视图操作支持. 应用程序可以创建新的应用视图,以新的视图为基础可以呈现与主 ...

  3. Conversion Operators in OpenCascade

    Conversion Operators in OpenCascade eryar@163.com Abstract. C++ lets us redefine the meaning of the ...

  4. 通过3个Hello World应用来了解ASP.NET 5应用是如何运行的(3)

    设置自定义的入口程序体现应用本身与应用托管之间的分离,它使我们可以创建独立于托管环境的应用,并根据需要寄宿于任何一个我们希望的宿主程序下,对于Web应用来说这一点尤为重要.对于之前的Web应用来说,I ...

  5. 1Z0-053 争议题目解析681

    1Z0-053 争议题目解析681 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 681.The environmental variable ORACLE-BASE is set ...

  6. Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)解决

    环境:Windows 2008 R2 + Oracle 10.2.0.3 应用最新bundle patch后,扫描依然报出漏洞 Oracle Database Server 'TNS Listener ...

  7. 安卓SQLite常见错误

    利用闲时写了一个简单的Sql语句操作SQLite数据库,在用SimpleCursorAdapter时出了一个异常好久都没解决 Process: com.example.chunchuner.usesq ...

  8. Linux服务器(Ubuntu14.04)添加远程连接VNC Server

    1.打开终端输入:sudo apt-get install xrdp,   2. sudo apt-get install vnc4server ,  3. sudo apt-get install ...

  9. DSO Framer Control Object 操作word文件

    <1>DSO Framer Control Object 实现加载word文件的不可编辑 axFramerControl1.Open(OldPath); this.axFramerCont ...

  10. js实现可拖拽的div

    前言 下午忙里偷闲想写一个可拖拽的例子,留在脑海里一直都是三个事件mouseDown,mouseUp,mouseMove, 但从没有动手实践过,今天想起了自己实践了并学习了张鑫旭的demo实现. 学习 ...