OC 基本语法1

作者: 朱Younger | 来源:发表于2017-03-30 10:05 被阅读42次

    OC语言主要用于Mac OS 、iOS、watchTv 等应用软件的开发,成熟应用于市场多年。在这里趁着工作之余整理一下,与广大开发朋友共勉,多有不正之处,请不吝啬高见指导一二。
    在这里首先给讲一下OC的语法调用。

    首先初始化一个类,大家最常的:

    1、[] 中括号法

    Student *stu = [Student new];
    [stu setAge:99];
    int age = [stu age];
    

    2、"." 点语法

    stu.age = 99;
    int age = stu.age;
    

    其实细心的朋友已经观察到,这就是类属性的setter 和 getter 方法,其实点语法的本质还是方法调用,使用点方法的时候,会自动展开我 []形式的方法调用。

    局部变量、成员变量、全局变量都有自己的作用域:

    /**   
    局部变量:
    栈区 
    函数或代码块中 
    函数{}内 
    先定义后初始化、同时定义初始化都可以    
    系统自动释放
    
    成员变量(属性、实例变量) :   
    堆区  
    类的声明中定义@interface @end 和{}之间     
    不可定义的时候就初始化
    通过类对象访问,离开类不能单独存在  
    程序员手动释放
        
    全局变量:
    静态区  
    函数的外部   
    从定义文件末尾   
    可以先定义后初始化,也可以定义的同时初始化   
    程序启动分配空间,程序结束释放
    **/
    

    属性作用域的修饰

    @private://只能在当前类的对象方法中直接访问
    @protected://可以在当前类以及子类的对象方法中直接访问
    @public://任何地方都可以直接访问
    @package:同一个“体系内”(框架)可以访问,介于@private和@public之间 
    

    属性声明

    在@interface @end 中声明属性

    @property int age ;
    //等同于添加一个实例变量一个 getter 和一个 setter 方法(个人觉得这是OC中比较人性化的一点) 
    _age;
    - (int) age;
    - (void) setAge: (int) age;
    //这里提一下 老版的@synthesize  同样也是用来生成 geter、setter 方法 在 xcode4.X 后基本不用了,被 @property 替代
    //用法如下:
    在 @implementation 中
    @synthesize age = _age;
    
    

    对象创建的原理

    Student *stu = [Sudent new];
    /*New -> 分两步 
    1、alloc 分配内存
    2、init 初始化
    所以
     Student *stu = [Student alloc] init];
    等同于
    Student *stu = [Stuent alloc];
    stu = [stu init]; 
    */
    

    开发中的需求。传入参数构造对象,就和Java 语言中的构造方法一样

    //OC 重写 init 方法  
    // 注意点, 方法以init开头  传参数 赋值
    - (id)initWithAge:(int)age {
        if (self = [super init]) {
            _age = age;
        }
        return self;
    }
    
    

    相关文章

      网友评论

        本文标题:OC 基本语法1

        本文链接:https://www.haomeiwen.com/subject/szuyottx.html