zoukankan      html  css  js  c++  java
  • 开启Objective-C --- OC基础知识

    一、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)函数内部不能直接通过成员变量名访问对象的成员变量

     
     
  • 相关阅读:
    四、面向对象分析和设计全流程概述
    三、三大核心特征-继承
    二、三大核心特征-多态
    [第三章]一、三大核心特征-封装
    四、抽象类
    三、接口
    二、对象
    [第二章]一、类
    六、面向对象的迷思
    五、面向对象的应用范围
  • 原文地址:https://www.cnblogs.com/496668219long/p/4403308.html
Copyright © 2011-2022 走看看