zoukankan      html  css  js  c++  java
  • OC类与对象

    1.关于类和对象

    1>类:具有相同(或者类似)属性和行为的对象都可抽象出一个类 ,类是抽象的。

     类名:(第一个字母必须大写,不能有下划线);
    
     属性:该对象具有的特性;
    
     行为:(功能);
    

    2>对象:对象是根据类创建而来,是实体,是类的具体实现。

    2.类的声明和实现

    声明的作用:1>声明有哪些成员变量。
    2>声明有哪些方法。
    实现的作用:实现声明中声明的方法,定义方法的作用。

    #import <Foundation/Foundation.h>
    /*
     类的声明
     声明一个Car类
     (car是类名, :NSObject目的是让Car这个类具有创建对象的能力),也是继承NSObject类中所有属性 
     */
    @interface Car : NSObject
    {
        @public   //代表所有成员变量都可以被指针间接访问
        int wheels; // 多少个轮子
        int speed; // 时速
    }
    - (void)run; // 跑的行为
    @end
    

    注意:

    OC方法中任何数据类型必须用小括号( ) 扩住。(OC小括号作用:扩住数据类型)

    类的实现的格式

    @implementation 类名
    
    // 类的实现
    @implementation Car
    - (void) run
    {
        NSLog(@"%i个轮子,%i时速的车子跑起来了", wheels, speed);
    }
    @end
    

    3.创建对象

    代码如下:

    // 主函数
    int main()
    {
        // 创建车子对象
        Car *c = [Car new];
        c->wheels = 3;
        c->speed = 300;
        
        [c run];
        return 0;
    }
    

    1> main函数的代码分析、内存分析(对象在内存中有成员)

    Ø [Car new]每次都会创建出新的对象,并且返回对象的地址,那么就应该用一个指针变量保存对象的地址

    Car *c = [Car new];

    用一个指针变量c指向内存中的Car对象

    Ø 设置车子对象的属性

    跟用指向结构体的指针访问结构体属性一样,用->

    c->wheels = 3;

    c->speed = 300;

    4.面向对象的好处

    ➢ 更加接近人类的思考方式
    ➢ 只需要关注对象,不需要关注步骤

    5. OC方法和函数的区别

    1>OC方法只能声明在@interface和@end之间,只能实现在@implementation和@end之间。也就是说OC方法不能独立于类存在

    2>C函数不属于类,跟类没有联系,C函数只归定义函数的文件所有

    3>C函数不能访问OC对象的成员

    4>低级错误:方法有声明,但是实现的时候写成了函数

    6.方法注意点:

    1>关于括号:oc方法中,括号只能括住参数类型,
    2>关于冒号:问题:一个形参对应一个冒号:,且冒号前最好有描述后面参数的语句
    3>关于方法名

  • 相关阅读:
    流的创建复制文件
    面试题
    异常
    多态
    继承
    【java】:Junit
    【Java】:ehcache
    【Java】:压缩成多个压缩卷
    【java】:常用工具类
    【javascript】:Highcharts实战
  • 原文地址:https://www.cnblogs.com/wlios/p/4631863.html
Copyright © 2011-2022 走看看