zoukankan      html  css  js  c++  java
  • init 的父类 和 子类的初始化

     设置可变传参的初始化方法

             -(instancetype) initwithHour :(int)h  and Minute :(int)m and second :(int) s;

            然后在实现部分

             -(instancetype) initwithHour :(int)h  and Minute :(int)m and second :(int) s;

            {

                self=[super init];

                if (self !=nil ) {

                     Hour=h;

                    Minute=m;

                    Second=s;

                }

            }

        然后下方主函数 main 里面进行直接赋值

            Time*tm2=[[Time alloc ]initwithHour :13  and Minute :30  and second :0 ];

            后台直接显示13:30:00

            

            

            

             重写 init  只需要在实现部分直接写 不需要在声明的.h文件重新声明

            init是 NSObject 的一个方法

            对于继承 于 NSObject 的类

            在为内存开辟空间的时候 只是初始化父类的元素 子类的元素需要重新初始化 初始化如下

            先初始化父类的部分

            self=[ super init ];

            //然后初始化自己的部分 先判断self 是否为nil nil 说明 父类初始化失败

            

            -(id) init  //id 是指向任意“对象”的类型  也可以填写instancetype 他只用在初始化里面进行

            {

                if (self=[super init]) {//super 是初始化父类的部分 如果父类初始化失败 那么self 是nil   self只是代表当前对象的一个指针 

                    {

                        m_M=10;

                        m_s=10;

                        m_H=20;

                    }

                    return  self;

                }

            

            }

        }

    }

  • 相关阅读:
    SGU 456 Annuity Payment Scheme
    SPOJ AMR10F Cookies Piles
    poj 2823 Sliding Window (单调队列)
    (bc #45) A
    cf 442C. Artem and Array
    cf 442B Andrey and Problem
    cf 443B Kolya and Tandem Repeat
    (BC 一周年) hdu 5312 Sequence
    (BC 一周年)hdu 5311 Hidden String
    (BC 一周年)hdu 5310 Souvenir
  • 原文地址:https://www.cnblogs.com/xzz5211314/p/5138363.html
Copyright © 2011-2022 走看看