• 一.OC基础之:1,OC语言的前世今生. 2,OC语言入门. 3,OC语言与C的差异. 4,面向对象. 5,类和对象的抽象关系. 6,类的代码创建. 7,类的成员组成及访问. 8,字符串NSString,@的含义,注释


    1,OC语言的前世今生 ,

    一, 基于c语音,对C进行了扩展,支持对象的创建和操作。是面向对象的语言.可以兼容c语言代码.

    二,1985年,被赶出苹果公司的乔帮主成立了Next公司;

    三, 1988年,Next计算机公司获得了OC语言的授权,并发展了OC语言库和一个开发环境,
    1994年,Next计算机公司(同年更名为Next软件公司)和Sun公司针对NEXTSTEP系统联合发布了一个标准规范,名为OPENSTEP。

    四,1996年,苹果公司宣布收购了Next软件公司,并把NEXTSTEP/OPENSTEP环境变成苹果操作系统下一个主要发行版本OS X的基础,这个开发环境的版本被苹果公司称为Cocoa,它得到了Mac开发人员的广泛认可。另外,由于Cocoa内置了对OC语言的支持,久而久之,OC成了Mac OS X平台的首选开发语言。直到后来IOS系统发布,OC也是它的首选开发语言。一下提升了了OC在开发语言中的地位;

    2,OC语言入门,

      一,import和include的区别;

           import和include的作用都是引用头文件.include需要使用预处理指令来防止重复包含问题.

      import可以防止头文件的重复包含


      二,NSLog 和printf的区别:
        1,NSLog可以自动换行, 输出调试信息, printf不能.
        2,NSLog 函数的参数是一个NSString 对象
        3,printf函数的参数是一个字符串常量指针

      三,@符号的含义:
        1,@“” 将双引号的C字符串转换为OC的字符串对象NString;
        2,OC中的一个特有标示符,很多关键字前面都加@。


      四,OC可以访问C源文件中的函数。C不能方位OC中的源文件中的方法。(这里其实是向下兼容)

    3,OC语言与C的差异,

      一,源文件对比
        1,C中常见的源文件有.c 和 .h ;
        2,OC中常见的源文件有.h 和 .m ;

      二,基本语法对比
        1. 数据类型对比:
        首先OC兼容C中的所有数据类型, c不能兼容oc数据类型
        OC新增的数据类型:boolen, block, nil, class, SEL等;
      
        2,流程控制语句对比;
        首先OC兼容了C中所有的流程控制语句;
        OC又新增了自己的for in 增强型的循环语句;
        for(NSString *str in arr){
          NSLog(@"%@",str);
        }

      3,函数和方法定义声明的对比;
      C语言中函数的声明和实现
      函数声明:
        int sum(int a,int b);

      函数实现
        int sum(int a,int b){
          return a+b;
        }

      OC方法的声明和实现
      方法声明:
        -(int)sum:(int) a and:(int) b;

      方法实现
        -(int)sum:(int) a and:(int )b{
          return a+b;
        }

      4. 异常捕捉方法
        @try {
        //此处放的事有可能出错的代码
          int result = a/b;
        }
        @catch (NSException *exception) {

          NSLog(@"exception = %@",exception);
        }
        @finally {
        //不管出没出错,这里的代码一定会执行
          printf("fengjie! ");

        }

    4,面向对象,

      一,面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。这种方法把软件系统中相近相似的操作逻辑和操作应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。

      面向对象是基于面向过程的。
      也就是对象的内部,其实也是过程。只是将这些个过程给封装起来了。  

      我们做一件事:
      如果是面向过程思维的话:
      一般都是找方法;

      如果是面向对象思维的话:
      一般就是找对象;

    5,类和对象的抽象关系,

    一,什么是类?
    通俗一点讲就是 将具有相同属性和行为的实体的向上抽象。
    比如:将男人,女人,向上抽象为一类,即为 人;Person类;
    将狗,猫,老虎等动物向上抽象为一类,即为动物的类;Animal类等;


    二,什么是对象?
    即指现实世界中各种各样的实体。它可以指具体的事物也可以指抽象的事物。
    简称万物皆对象

    三,类和对象的抽象关系:
    类和对象时分不开的;
    每个对象,一定有自己所属的类;
    每个类,一定有自己对应的实例(对象);

    类由对象的抽象而来;
    对象由类的具体实例(new)而来;

    6,类的代码创建,

    一,OC中类的创建分为两步:

    1,类的声明:
    @interface Car:NSObject
    {
    //类的属性
    int lunzi;
    NSString *color;
    int speed;
    }

    //方法声明

    @end

    2,类的实现:
    @implementation Car
    //方法实现
    @end

    7,类的成员组成及访问

    一,类的成员有哪些?
    成员变量(属性)
    成员方法(行为)

    二,访问成员变量:
    前提:成员变量需要用@public修饰符修饰;
    Car *car1=[Car new]; // 类名:Car 对象名:car1
    car1->lunzi = 3; // 使用->来访问;


    三,访问方法:
    Car *car = [Car new];
    [car run]; // 用 [ ] 来访问方法;

    类方法的访问: [Car stop] // [类名 加号方法名];


    四,OC方法的定义;
    //有一个参数的方法
    -(返回值类型)方法名1:(参数类型) 参数名;
    - (void)num1:(int)one; //方法名:num1: 参数类型:int 参数名:one

    //有2个参数的方法
    -(返回值类型)方法名1:(参数类型1) 参数名1 方法名2:(参数类型2) 参数名
    - (int)num1:(int)one andTwoNum:(int)two; // 方法名:num1: andTwoNum: 参数类型:int int 参数名:one two

    8,字符串NSString,@的含义,注释

    //oc中的字符串输出格式:   %@

    //@""  在oc中表示一个字符串.

            NSString *name; 

            name = @"贾永强";  

            NSLog(@"%@",name);

    //@的含义:表示字符串和关键字,例如:@end 

    //注释:

           单行注释:  //

           多行注释: /*    */

           文档注释:  /**

                         *注释内容1.....

                         *注释内容2.....

                         */

  • 相关阅读:
    [转载]要死的人都后悔些什么
    mysql优化之explain备忘笔记
    memcached 命令操作详解
    linux netstat 命令详解
    linux awk 命令详解
    定时任务FluentScheduler 学习笔记 .net
    webAPI文件上传时文件过大404错误的问题
    用递归形成树结构数据
    webAPP 图片上传
    webAPP踩坑记录
  • 原文地址:https://www.cnblogs.com/jiayongqiang/p/5094097.html
Copyright © 2020-2023  润新知