zoukankan      html  css  js  c++  java
  • OC

    一、基础语法

    1> OC语言和C语言

    • C语言是面向过程的语言,OC语言是面向对象的语言
    • OC语言继承了C语言,并增加了面向对象的思想
    • 以下内容只介绍OC语言与C语言的不同之处

    2> 关键字

    • 以字母或下划线开头

    3> 字符串

    • OC语言有自己特有的字符串,,区别于C语言字符串

    4> BOOl类型

    • 只有YES和NO两种取值
    • 本质上是char类型,但理解为整型
    • BOOL类型是由 条件编译机制引进的

    5> #import与#include

    • 都是将文件内容拷贝到指令出现的代码行
    • 系统文件用尖括号,用户自定义的文件用圆括号
    • #import包含的文件中有条件编译指令,可以防止文件被多次拷贝

    6> NSLog与printf

    1. NSLog

      ① NSLog函数包含在Foundation框架中
      ② NSLog函数接收的是OC语言字符串
      ③ NSLog函数默认在结束处输出换行
      ④ NSLog函数不能以%s格式输出包含中文的字符串
       
    2. printf

      ① printf函数包含在stdio.h文件中
      ② printf函数接收的是C语言字符串
      ③ printf函数需要使用换行符'
      '
    3. NSLog的其他用途

      ① 通过_LINE_参数输出改代码所在的行号
      ② 通过_FILE_参数输出改代码所在的文件的文件名
      ③ 通过_func_参数输出代码所在的函数的函数名

    二、类、对象和方法

    1> 类

    1. 类与结构体

      ① 结构体是数据的封装
      ② 类是数据及与数据相关操作的封装
    2. 类的声明

      ① 用@interface和@end组合来声明一个类,通常继承与根类NSObject
      ② 指定类名:首字母大写,使用驼峰标示,不包含数字
      ③ 声明属性列表:以下划线开头,可以与get方法的名称区分开
      ④ 声明方法列表:包括类方法和对象方法
    3. 类的实现

      ① 用@implementation和@end组合来实现类
      ② 实现类声明中的方法列表
      ③ 类的实现也可以定义实例变量,通常不这样定义
      ④ 未实现声明的类会发出警告
    4. 类的本质

      ① 类本质上也是一个对象,是class类定义的对象,称为类对象
      ② 使用class方法可以获取类对象
      ③ 每个类中都会有一个superclass指针指向其父类
    5. 类的加载和初始化

      ① 加载
          1)类在使用之前会被加载至内存,加载完毕调用+(void)load方法
          2)所有的类只会被加载一次
          3)方法会在类加载的同时被加载
          4)某个类定义的所有对象的isa指针都指向内存中该类的唯一副本
          5)首先加载父类,其次是子类,最后是分类
      ② 初始化
          1)类在使用时才会调用initialize方法初始化
          2)没有使用的类不会调用initialize方法
          3)首先调用父类的初始化方法,其次是子类
    6. 类的使用注意

      ① 类的声明和实现必须成对出现
      ② 类不能嵌套声明和实现
      ③ 成员变量不能在定义的时候初始化,也不能直接使用
      ④ 成员变量不能用static等关键字修饰
      ⑤ 访问没有的成员变量会报错
      ⑥ 成员变量必须写在大括号内,方法列表不能写在大括号内
      ⑦ 类的声明必须出现在使用之前
    7. @public、@protected、@

      ① @public修饰的成员变量在任何地方都可以直接访问
      ② @protected修饰的成员变量可以在当前类以及子类的对象方法中直接访问,默认为该类型
      ③ @private修饰的成员变量只能在当前类的对象方法中直接访问,在实现中声明的成员变量默认为该类型
      ④ @package修饰的成员变量在同一个“体系内”(框架)可以访问,
        介于@private和@public之间

    2> 对象

    1. 对象与类

      ① 类是具有相同或相似属性和操作的对象的抽象;对象是类的一个实例,是类通过调用一定的方法创建的
      ② 类本身会占用内存空间,包含所有的方法列表
      ③ 类的成员变量不会占用内存空间,只有在定义对象时才会分配存储空间
    2. 对象的本质

      ① 本质上,我们研究的一切事物皆是的对象,包括具体事物和抽象事物
      ② 每个对象总会携带它的isa成员,指向该对象的类
      ③ 系统总会携带对象的相关信息
    3. 对象的创建和初始化

      ① 初始化方法通常用init开头
      ② 类方法alloc和init完成对象的创建和初始化
      ③ 类方法new可以代替alloc和init完成对象的创建并初始化
      ④ 在对象的初始化时会加载一次类,返回一个该类型的指针
    4. 匿名对象

      ① 每次创建的匿名对象都是不同的对象
      ② 匿名对象会造成内存泄露,尽量不要创建类似匿名对象的对象

    3> 方法

    1. 方法的定义

      ① 返回值类型:指定函数返回值的类型
      ② 参数列表:多个参数用冒号及冒号前的描述隔开
      ③ 方法名:在有参数列表的方法中,方法名包括冒号及冒号前的描述
    2. 类方法

      ① 以加号(+)开头
      ② 只能通过类名调用,可以在中括号内调用
      ③ 不能访问实例变量
      ④ 当不需要访问成员变量的时候通常使用类方法
      ⑤ 工具类的方法通常为类方法
    3. 对象方法

      ① 以减号(-)开头
      ② 只能通过对象调用,可以在中括号内调用
      ③ 对象方法能访问实例变量
    4. 方法的使用注意

      ① 方法不能独立与类而存在
      ② 方法有声明就必须有实现,否则会报错
      ③ 方法只有实现,没有实现,仍然能够调用,但是会发出警告
      ④ 访问没有的方法会警告
      ⑤ 类方法可以和对象方法同名
      ⑥ 方法不能用static等关键字修饰
      ⑦ 带参数的方法,一个参数对应一个冒号,通常在每个冒号前写描述

        

    5. 方法与函数的区别

      ① 函数的定义可以出现在文件的任意位置,方法只能出现在@implementation和@end之间
      ② 函数归文件所有,方法归类/对象所有
      ③ 方法通过类/对象调用,函数不依赖于类/对象
      ④ 方法可以访问成员变量,函数不可以
  • 相关阅读:
    Session的使用与Session的生命周期
    Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别与使用
    十九、详述 IntelliJ IDEA 之 添加 jar 包
    十八、IntelliJ IDEA 常用快捷键 之 Windows 版
    十七、IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架
    十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法
    十五、详述 IntelliJ IDEA 插件的安装及使用方法
    十四、详述 IntelliJ IDEA 提交代码前的 Code Analysis 机制
    十三、IntelliJ IDEA 中的版本控制介绍(下)
    十二、IntelliJ IDEA 中的版本控制介绍(中)
  • 原文地址:https://www.cnblogs.com/funny11/p/4923698.html
Copyright © 2011-2022 走看看