zoukankan      html  css  js  c++  java
  • OC 学习第一天

    1. OC简介

       OC是一种面向对象的计算机语言。

       OC实在C语言的基础上增加了一层最小的面向对象语法,完全兼容C语言。

    2. OC学习目标

       - 语法学习

       - 建立面向对象思维能力

       -建立基本项目需求分析能力 

    3. 面向对象思想

        面向对象是一种对现实世界理解和抽象的方法,关注的是解决问题需要哪些对象,将功能封装进对象,强调具备了功能的对象。

    4. 类与对象

       OC中的类相当于图纸,用来描述一类事物。然后利用类来创建对象,对象是类的具体存在。

    因此面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象。

       4.1 如何编写类的存在

       以@interface开头 , 以@end结尾, 然后再class name对应的地方写上 事物名称, 也就是类名即可。

       类名的首字符必须大写。

       声明一个类的目的就是为了告诉系统, 我们这个类中有哪些属性和行为。

       OC类声明中属性只能在写@interface和@end之间的{}中。

       注意: 编写OC类属性的时, 建议将所有属性的名称前面都加上_。

       类名后面的 :NSObject 是为了让我们的Iphone类具备创建对象的能力。

       默认情况下, OC对象中的属性是不能直接访问的,属性前加上@public可以让类中的属性公开, 以后就可以直接通过一个指向结构体的指针来操作对象中的属性。

       4.2 如何编写类的实现

       以@implementation开头, 以@end结尾, 然后在class对应的地方写上声明时声明的类的名称, 必须和声明的类名一模一样。

       4.3 如何通过一个类来创建对象

       使用对象调用方法就是OC中的消息机制。

       OC中调用方法的格式:[类名或者对象名 new]。(new为方法名称)

       [类名或者对象名 new]做了三件事:在堆内存中开辟了一块新的存储空间;初始化成员变量(写在类声明大括号中的属性就叫成员变量,也叫实例变量);返回指针地址。

       4.4 对象的注意点

        可以通过 对象->对象成员(注意声明属性为:@public) 的方式访问对象中的成员。

        每一个对象中都有一份属于自己的属性。

        对其中一个对象的成员进行了修改,和另一个对象没有关系。

     5. 对象方法的声明和实现

        5.1 对象方法的声明

        格式:

    xxffsm.png  

         特征:

               对象方法以-开头如 -(void)xx。

               对象方法只能由对象来调用。

               对象方法中可以访问当前对象的成员变量。
               调用格式 [对象名 对象方法名]。

        5.2 对象方法的实现

        必须写在以@implementation开头,@end之间。
        在声明的后面加上{}即表示实现。
        讲需要实现的代码写在{}中。

    6. 类方法的声明和实现

        6.1 类方法的声明

        格式:

               将对象方法-号变为+号

        特征:

               节省内存空间。
               不依赖于对象,执行效率更高。
               能用类方法解决的问题,尽量使用类方法。

        类方法应用的场景:

               当方法内部不需要使用到成员变量时,可以改为类方法。
               类方法一般用于编写工具方法。

        6.2 类方法的实现:同类方法一样。

    7. 对象的存储细节

        7.1 对象的存储细节

        类创建对象,每个对象在内存中都占据一定的存储空间,每个对象都有一份属于自己的单独的成员变量,所有的对象公用类的成员方法,方法在整个内存中只有一份,类本身在内存中占据一份存储空间,类的方法存储于此。

        7.2 isa指针

        每一个对象都包含一个isa指针,这个指针指向当前对象所属的类。
        isa是对象中的隐藏指针,指向创建这个对象的类。
        通过isa指针我们可以在运行的时候知道当前对象是属于那个Class(类)的。

    8. 函数与方法的对比

        对象方法:
        对象方法的实现只能写在@implementation...@end中,对象方法的声明只能写在 @interface...@end中间。
        对象方法都以-号开头,类方法都以+号开头。
        对象方法只能由对象来调用,类方法只能由类来调用,不能当做函数一样调用。
        函数属于整个文件,可以写在文件中的任何位置,包括@implementation...@end中,但写在 @interface...@end会无法识别,函数的声明可以再main函数内部也可以在main函数外部。
        对象方法归类对象所有。
        函数:
        所有的函数都是平行的。
        函数不存在隶属关系。
        使用的时候可以直接调用。
        不可以访问对象中的成员变量。

    9. 常见错误

        @interface @end和@implementation @end不能嵌套包含。

        OC是弱语法,可以只有@implementation,但实际开发中千万不要这样。

        漏写@end。
        两个类的对象声明顺序(可以把顺序打乱)。
        成员变量没有写在{}里。
        方法的声明写在了{}里面。
        在声明时不能对类的成员变量进行初始化,请注意成员变量不能脱离对象而独立存在。
        方法无法像函数那样的调用。
        成员变量和方法不能用static等关键字修饰,不要和c语言混淆。
        类的实现可以写在mian函数后面,在使用之前只要有声明就可以。

  • 相关阅读:
    Spring-boot内置的程序管理监控工具-Actuator
    分表工具类(根据唯一字符串)
    ES设计及规范
    测试单元Junit一直进不去@test方法解决方案
    MAC OS怎样将普通成员升级为管理员
    elasticSearch小结
    Mysql 查询条件中字符串尾部有空格也能匹配上的问题
    gitlab进行meger代码回滚
    ES与关系型数据库的通俗比较
    kafka的生产者配置以及发送信息的三种方式
  • 原文地址:https://www.cnblogs.com/xiangyunzhidian/p/4683378.html
Copyright © 2011-2022 走看看