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;
     
  • 相关阅读:
    大量建置账号
    MYSQL远程登录权限设置
    设置mysql远程连接root权限
    阿里云服务器上安装mysql的心路历程(博友们进来看看哦)
    Array.Copy
    C#如何判断两个数组相等
    CentOS6.5下编译安装mysql5.6.19
    Linux下卸载和安装MySQL[rpm包]
    查看Linux磁盘空间大小
    C# 数组CopyTo
  • 原文地址:https://www.cnblogs.com/shuxiachahu123/p/4913418.html
Copyright © 2011-2022 走看看