zoukankan      html  css  js  c++  java
  • OC-属性

    *************************
    self:表示实例变量自己本身
    super:表示父类变量本身

    *********************/
    /*
     
    -(void)funA
        {
           
            _age=20;

            NSLog(@"-:funA %d",_age);
            [self funB];  //接着调用funB
        }
    -(void)funB
        {
            NSLog(@"-:funB %d",_age);
           
            [Student sayHello];//确定的 去 调用不确定的可以,反之不行
         
           
        }
    +(void)sayHello
        {
     //  ——age=20、、这是错误的;类方法不能操作实例变量
    //        [self funA];error:类方法不能调用实例方法
            NSLog(@"+:sayHello");
        }
     
    *****************************************
    OC中的类分为.h和.m文件
     .h文件只要做声明:成员变量,属性、方法
     表示类的接口@interface
     
     .m最为函数的实现部分;实现方法
     @implementation
     
    成员变量

    */


    /**   面向对象的三大特性:
     封装:隐藏内部实现,稳定外部接口
     继承:子类复用父类的成员变量、属性、方法(重写)
     多态:父类指针(父类对象)指向子类空间
     
     */
    ************************************
    @interface Student : NSObject
    {
       
        int _age;//全局变量    变量之前加_  用来区别一些类属性
    }

    //实例方法
    //-(void)

    -(void)funA;
    -(void)funB;
    +(void)sayHello;

    //类方法
    //+(返回类型)方法名
    @end
     
     
     
    ************************************
    @propertyint age;// 代替下面两句话
    @property NSString *name; 
    @property NSString *address;
    /**
    -(void)setAge:(int)Age;
    -(int)getage;

    -(void)setName:(NSString *)Aame;
    -(NSString *)getname;
    -(void)setAddress:(NSString *)Address;
    -(NSString *)getaddress;
    **/***********************************
     
    构造方法 自定义构造方法
    。h
    @interface Student : NSObject


    @property int age;
    @property NSString *name,*address;
    // 重写构造方法、初始化方法
    -(instancetype)init;//(id)意义一样    初始化值时定义的是多少就是多少,无法在main函数里面修改  重写init父类里的方法

    //自定义构造方法
    //以init开头的都是构造方法,第二个单词首字母必须大写
    -(instancetype)initWithAge:(int)age
               andName:(NSString *)name
            andAddress:(NSString *)address; 
     
    。m
    // 1.  初始化方法:完成初始化信息、返回对象
    -(instancetype)init
    {
        self=[super init];   //self在父类里
        if (self)//if(self != nil);确定self在父类里才执行
        {
            self.age=10;
            self.name=@"Tom";
            self.address=@"China";

        }
       
        return self;//是谁调用,self就是谁
    }
    // 2. 自定义构造方法
    -(instancetype)initWithAge:(int)age
                       andName:(NSString *)name
                    andAddress:(NSString *)address
    {
        self=[super init];   //self在父类里
        if (self)//if(self != nil);确定self在父类里才执行
        {
            self.age=age;
            self.name=name;
            self.address=address;
           
        }
        return self;
     
  • 相关阅读:
    JS搞基指南----延迟对象入门提高资料整理
    JavaScript使用自定义事件实现简单的模块化开发
    nodeJS+bootstarp+mongodb整一个TODO小例子
    nodeJS+express+Jade写一个局域网聊天应用(node基础)
    jQ1.5源码注释以及解读RE
    jQ1.5中的事件系统(低版本的事件系统)
    JS中的事件类型和事件属性的基础知识
    [转][mysql]创建函数失败(1418错误)mysql双主模式导致的问题
    MySQL数据库导入错误:ERROR 1064 (42000) 和 ERROR at line xx:
    Vmware由于centos升级内核不可运行(C header files matching your running kernel were not found)的解决方案
  • 原文地址:https://www.cnblogs.com/shuxiachahu123/p/4913418.html
Copyright © 2011-2022 走看看