zoukankan      html  css  js  c++  java
  • oc32--构造方法1

    //
    //  Person.h
    
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    
    @property int age;
    @end
    //
    //  Person.m
    
    #import "Person.h"
    
    @implementation Person
    
    /*
    // 重写init方法, 在init方法中初始化成员变量
    // 注意: 重写init方法必须按照苹果规定的格式重写, 如果不按照规定会引发一些未知的错误
    // 1.必须先初始化父类, 再初始化子类
    // 2.必须判断父类是否初始化成功, 只有父类初始化成功才能继续初始化子类
    // 3.返回当前对象的地址
    - (instancetype)init
    {
        // 1.初始化父类
        // 只要父类初始化成功 , 就会返回对应的地址, 如果初始化失败, 就会返回nil
        // nil == 0 == 假 == 没有初始化成功
        self = [super init];
        // 2.判断父类是否初始化成功
        if (self != nil) {
            // 3.初始化子类
            // 设置属性的值
            _age = 6;
            
        }
        // 4.返回地址
        return self;
    }
     */
    
    /*
    - (instancetype)init
    {
        self = [super init]; // self == nil == 0
        if (self) {
            // 初始化子类
            _age = 6;
        }
        return self;
    }
     */
    - (instancetype)init
    {
    //    self = [super init];
        // 注意: 不要把 = 号写为 ==
        // 一定要将[super init]的返回值赋值给self
        if (self = [super init]) {
            // 初始化子类
            _age = 6;
        }
        return self;
    }
    
    @end
    //
    //  main.m
    //  构造方法基本概念
    
    #import <Foundation/Foundation.h>
    #import "Person.h"
    
    int main(int argc, const char * argv[]) {
        /*
         在OC中init开头的方法, 我们称之为构造方法
         构造方法的用途: 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值
         */
        Person *p = [[Person alloc] init];
    //    p.age = 6;
        NSLog(@"%i", p.age);
        
        Person *p2 = [[Person alloc] init];
    //    p2.age = 6;
        NSLog(@"%i", p2.age);
        
        Person *p3 = [[Person alloc] init];
    //    p3.age = 6;
        NSLog(@"%i", p3.age);
        
        return 0;
    }
  • 相关阅读:
    Red hat 5挂载U盘
    Win7+VMware Workstation环境下的CentOS-Linux网络连接设置
    rand()随机数的产生
    phpmyadmin数据库导入出错
    dede忽略错误
    wamp
    网页地图map
    Redefining already defined constructor
    SCREAM:Error suppression ignored for
    Python+selenium之疑难点解决之去除readonly的限制
  • 原文地址:https://www.cnblogs.com/yaowen/p/7416885.html
Copyright © 2011-2022 走看看