一、Objective-C简述
     Objective-C通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。Objective-C主要用于:编写iOS操作系统(如:iPhoneiPod touchiPad 等苹果移动终端设备 )应用程序和Mac OS X操作系统应用程序的利器。 Objective-C的流行当归功于iPhone的成功,因为Objective-C被用于编写iPhone应用程序。
Objective-C是非常实际的语言。它是一个用C写成、很小的运行库,只会令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。因此,Objective-C它完全兼容标准C语言C++对C语言的兼容仅在于大部分语法上,而在ABI(Application Binary Interface)上,还需要使用extern "C"这种显式声明来与C函数进行兼容),而在此基础上增加了面向对象编程语言的特性以及Smalltalk消息机制。
OC是C语言的超集,允许在OC中使用C语言源代码,编译器兼容C语言程序,具有完善的面向对象特征、包含一个运行时系统、类库丰富等特点。
虽然Objective-C是C的超集,但它也不视C的基本型别为第一级的对象。和C++不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C++不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。
二、面向对象
面向对象编程 OOP(Object Oriented Programming,面向对象程序设计)是一种计算机编程架构
面向对象的语言:C++,Java,C#
面向对象具有三大特征:封装、继承、多态。
封装:隐藏内部实现,稳定外部接口
继承:子类可以直接复用父类中的成员
多态:不同对象对同一个消息的不同相应
三、类和对象
面向对象的核心是类和对象
  (一)什么是类
          类是一组具有相同(特征)属性和行为(功能)的事物的集合,类名是标示符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识,在对方法进行类的划分中,一般采取的做法是谁最熟悉这个方法就把这个方法划分给谁。在OC中,对象对方法的调用称为消息机制,即向既定的对象发送了什么消息。
  (二) 什么是对象
            时间万物皆对象,即哲学的“客观存在”。在生活中,可能是一辆车,一只笔,或者是一张京东订单,工商银行的一张卡等等都是对象。对象描述了一个物体的特性值和行为实现
   (三) 类和对象的关系
            类和对象的关系就像是狗类和具体的狗的关系一样。
            类是对象的抽象,是概念或者模板,而对象是类的具体实现,属于类
            类描述这些类事物应该具体哪些行为和特征:而对象真正去实现行为和特征
(四)面向对象编程中使用对象完成程序
            开发中:先定义类,再创建对象,然后使用对象
            定义类包含两个部分:借口部分和实现部分,分开写
           1、接口部分:对外声明类的特征和行为。(类似于说明书)h文件中
           2、实现部分:对内实现行为。(内部的具体实现)m文件
接口部分(h文件)
接口部分标志:@interface·······@end
作用:声明类的实例变量和方法,即特征行为
包含内容:类名、父类名、实例变量、方法等
 
 
 
实现部分(m文件)
实现部分标志:@implementation·······@end
作用:实现方法,即实现类的行为
 
 
例如:创建一个 AudiCar类
类的接口部分:
 
 
 
类的实现部分如下:
 
 
类的调用部分
 
 
 
   (五)常见的错误

(1)@interface  @end和@implementation  @end不能嵌套包含

(2)只有类的声明没有类的实现

(3)漏写@end

(4)两个类的声明嵌套(可以把顺序打乱)

(5)成员变量没有写在{}里

(6)方法的声明写在了{}里面

(7)在声明时对类的成员变量进行初始化,请注意成员变量不能脱离对象而独立存在

(8)方法无法像函数那样的调用

(9)成员变量和方法不能用static等关键字修饰,不要和c语言混淆

(10)类的实现可以写在mian函数后面,在使用之前只要有声明就可以

四、OC对象与函数

OC对象与函数有着本质的区别:

(1)方法的实现只能写在@implementation··@end中,对象方法的声明只能写在@interface···@end中间

(2)对象方法都以-号开头,类方法都以+号开头

(3)对象方法只能由对象来调用,类方法只能由类来调用,不能当做函数一样调用

(4)函数属于整个文件,可以写在文件中的任何位置,包括@implementation··@end中,但写在@interface···@end会无法识别,函数的声明可以再main函数内部也可以在main函数外部。

(5)对象方法归类\对象所有

(6)函数调用不依赖与对象

(7)函数内部不能直接通过成员变量名访问对象的成员变量

 
 

开启Objective-C --- OC基础知识的更多相关文章

  1. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  2. oc 基础知识

    一.枚举 结构体 typedef enum{ sexMan, sexWoman }Sex;   tydedef struct{    int year;    int month;    int da ...

  3. OC - 2.OC基础知识介绍

    一.基础语法 1> OC语言和C语言 C语言是面向过程的语言,OC语言是面向对象的语言 OC语言继承了C语言,并增加了面向对象的思想 以下内容只介绍OC语言与C语言的不同之处 2> 关键字 ...

  4. IOS开发复习笔记(1)-OC基础知识

    在上班之余学习IOS已经有三个多月了,因为基础有些薄弱从OC的基本语法开始学习的,相继看了青柚子和红柚子的书,现在在看编程实战,趁这个机会好好的总结一下: 1.命名约定 对象类型和名称一致,以免混淆 ...

  5. oc基础知识

    只在@interface中定义变量的话,你所定义的变量只能在当前的类中访问,在其他类中是访问不了的:而用@property声明的变量可以在外部访问. 用了@property去声明的变量,可以使用“se ...

  6. OC基础知识总结 分类: ios学习 OC 2015-06-26 17:58 58人阅读 评论(0) 收藏

    //OC: Objective-C, 面向对象的C语言 //OC与C的区别 //1.OC是C的超集, C语言的所有语法都可以在OC中使用 //2.OC是面向对象 //3.OC是一门运行时语言 //4. ...

  7. IOS学习之路--OC的基础知识

    1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...

  8. OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  9. 李洪强iOS开发之OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

随机推荐

  1. 学习总结 for循环语句的应用

    for(初始值:条件表达式:状态改变) { } \n 表示换行   \ttab键   \\写出一个斜杠 例题解释 // 输出一个数,打印一到n出来 int n = int.Parse(Console. ...

  2. ubuntu 更新重启后 登录后 无法进入图形界面

    切换到控制台然后看看-/.Xauthority的组属性是否正确,如果被改成root组了,就会造成不能登陆,你将其删除就ok了

  3. phpexcel 导入导出

    导出excel /** * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要 * 打开对应行的注释. * 如果使用 Excel5 ,输出的内容应该是GBK编码. */ //r ...

  4. java事务管理

    一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性(isol ...

  5. HTML你应该知道的三大基本元素

    顶级.块级.内联,html元素的三大分类 如果将这些元素细分, 又可以分别归为顶级(top-level)元素,块级(block-level)元素和内联(inline)元素. 1. Top-level ...

  6. Js学习笔记一(鼠标事件.....)

    1.encodeURI与decodeURI()转化url为有效的url(能被识别) Url="http://news.baidu.com/p.php?id='测试'&姓名=hkui& ...

  7. Mysql常用数据类型详细说明及实例说明(学习笔记一)

    1.Mysql 在windows下 Net start mysql[启动] Net stop mysql[停止] Quit[退出mysql命令行] \c[取消输入的命令] Select version ...

  8. php输出utf-8格式

    header("Content-type:text/html;charset=utf-8"); 输出数据前插入以上代码,以utf-8格式输出,避免乱码

  9. Head First-观察者模式

    什么是观察者模式?观察者模式定义了对象之间一对多的关系. 观察者模式中有主题(即可观察者)和观察者.主题用一个共同的接口来通知观察者,主题不知道观察者的细节,只知道观察者实现了主题的接口. 普遍的观察 ...

  10. 【Apache】2.4.6版本的安装和配置