zoukankan      html  css  js  c++  java
  • OC基础(2)

    类与对象

    本小节知识点

    1. 类与对象的关系

    1.类与对象的关系

    • 面向对象的核心就是对象,那怎么创建对象?

      • OC中创建对象比较复杂, 首先要理解一个概念叫做类.
      • 现实生活中是根据一份描述,一份模板创建对象,编程语言也一样,也必须先有一份描述,在这个描述中说清楚将来创建出来的对象有哪些属性和行为
    • OC中述事物通过类的形式体现,类是多个同种类型事物的抽象,概念上的定 义。

    • OC中的类相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类
    • OC利用类来创建对象,对象是类的具体存在, 因此面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象

    类的设计

    本小节知识点

    1. 类的定义

    1.类的定义

    • 生活中描述事物无非就是描述事物的名称/属性行为

      • 如:人有身高,体重等属性,有说话,打架等行为。 事物名称(类名):人(Person) 属性:身高(height)、年龄(age) 行为(功能):跑(run)、打架(fight)
    • OC中用类来描述事物也是如此,拥有相同(或者类似)属性(状态特征)和行为(能干什么事)的对象都可以抽像成为一个类

      • 属性:对应类中的成员变量。
      • 行为:对应类中的成员方法。
    • 定义类其实在定义类中的成员(成员变量和成员方法)

    • 一般名词都是类(名词提炼法)

      • 飞机发射两颗炮弹摧毁了8辆装甲车 和飞机
         小明在公车上牵着一条叼着热狗的狗
    

    第一个OC类

    本小节知识点

    1. 如何声明一个类
    2. 如何实现一个类

    1.如何声明一个类

    • 格式

    • 注意:

      • 1.必须以@interface开头,@end结尾
      • 2.成员变量的声明,必须写在@interface与@end之间的大括号中
      • 3.方法的声明必须在{}下面,不能写在{}中

    2.如何实现一个类

    • 格式
    @implementation MyClass
    
    - (id)initWithString:(NSString *)aName
    {
        //写代码处
    }
    
    + (MyClass *)myClassWithString:(NSString *)aName
    {
        //写代码处
    }
    
    @end
    
    • 注意:
      • 1.必须以@implementation开头,@end结尾
      • 2.类名必须和声明的一致

    对象方法的声明和实现

    本小节知识点

    1. 对象方法声明
    2. 对象方法实现
    3. 类方法声明和实现

    3. 对象方法和类方法区别

    1.对象方法声明和实现

    • 格式

    • 特征

      • 对象方法以-开头如 -(void)xx;
      • 对象方法只能由对象来调用
      • 对象方法中可以访问当前对象的成员变量
      • 调用格式 [对象名 对象方法名];
    • 示例 :

    • 声明没有返回值的方法 - (void)method;

    • 声明有返回值的方法 - (int)method;

    • 声明有返回值有参数的方法 - (int)method: (int)var;

    • 声明有返回值有多个参数的方法 - (int)method: (int)var1 andVar2: (int)var2;

    
    //实现
        + 必须卸载以@implementation开头,@end之间
        + 在声明的后面加上{}即表示实现
        + 将需要实现的代码写在{}中
    ---
    2.类方法声明和实现
    - 格式
        + 将对象方法-号变为+号
    
    - 特征
        + 类方法以+开头 如+(void)put;
        + 类方法只能由类来调用
        + 类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间 来存储类中的成员变量。
    
    - 类方法的好处:
        + 不依赖于对象,执行效率更高;
        + 能用类方法解决的问题,尽量使用类方法;
    
    - 类方法的场合:
        + 当方法内部不需要使用到成员变量时,可以改为类方法
        + 类方法一般用于编写工具方法
    
    - 示例

    声明没有返回值的方法 + (void)method;

    声明有返回值的方法 + (int)method;

    声明有返回值有参数的方法 + (int)method: (int)var;

    声明有返回值有多个参数的方法 + (int)method: (int)var1 andVar2: (int)var2;

    
    - 实现
        + 必须卸载以@implementation开头,@end之间
        + 在声明的后面加上{}即表示实现
        + 将需要实现的代码写在{}中
    
    ---
    
    3.对象方法和类方法区别
    - 对象方法以-号开头, 类方法以+号开头
    - 对象方法只能通过`对象`调用, 类方法只能通过`类`调用
    - 对象方法可以和类方法重名
    - 类方法中不能访问成员变量(实例变量),对象方法中可以访问
    - 类方法的效率比对象方法高
    - 类方法中可以调用类方法, 当不能`直接`调用对象方法. 对象方法中可以调用类方法也可以直接调用对象方法

    类方法的声明和实现

    本小节知识点

    1. 类方法声明
    2. 类方法实现
    3. 对象方法和类方法区别

    1.类方法声明

    • 格式

      • 将对象方法-号变为+号
    • 特征

      • 类方法以+开头 如+(void)put;
      • 类方法只能由类来调用
      • 类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间 来存储类中的成员变量。
    • 类方法的好处:

      • 不依赖于对象,执行效率更高;
      • 能用类方法解决的问题,尽量使用类方法;
    • 类方法的场合:

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

    • 声明没有返回值的方法 + (void)method;

    • 声明有返回值的方法 + (int)method;

    • 声明有返回值有参数的方法 + (int)method: (int)var;

    • 声明有返回值有多个参数的方法 + (int)method: (int)var1 andVar2: (int)var2;

    ---
    
    2.类方法实现
        + 必须卸载以@implementation开头,@end之间
        + 在声明的后面加上{}即表示实现
        + 讲需要实现的代码写在{}中
    
    ---
    3.对象方法和类方法区别
    - 对象方法以-号开头, 类方法以+号开头
    - 对象方法只能通过`对象`调用, 类方法只能通过`类`调用
    - 对象方法可以和类方法重名
    - 类方法中不能访问成员变量(实例变量),对象方法中可以访问
    - 类方法的效率比对象方法高
    - 类方法中可以调用类方法, 当不能`直接`调用对象方法. 对象方法中可以调用类方法也可以直接调用对象方法
    ---
  • 相关阅读:
    当spark遇见hbase
    激活函数
    scala的插值器
    sql语句基础
    机器学习中的归一化方法
    sklearn的使用
    sonarqube报错Cause: java.sql.BatchUpdateException: Incorrect string value: 'xF2xB4xB0xBFxDAxBE...' for column 'message' at row 38
    soanrqube 语言插件下载
    sonarqube扫描报错:Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4522715 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.
    xcode11 xcrun altool 自动上传ipa到app store 报错A Distribution Provisioning profile should be used when submitting apps to the App Store. For more information
  • 原文地址:https://www.cnblogs.com/zhoudaquan/p/5014660.html
Copyright © 2011-2022 走看看