zoukankan      html  css  js  c++  java
  • 重写init方法

    // 重写 init方法

    当对象创建时我们通常想给对象给一定固定值,那么这时可以重写init

    // People类

     1 #import <Foundation/Foundation.h>
     2 // 性别
     3 typedef enum {
     4     SexMan,
     5     SexWoman,
     6 } Sex;
     7 
     8 @interface People : NSObject
     9 {   // 定义实例变量
    10     NSString *_name;
    11     Sex _sex;
    12     int _age;
    13 }
    14 // property set  get
    15 @property NSString *name;
    16 @property Sex sex;
    17 @property int age;
    18 
    19 
    20 - (void)introduce;
    21 @end

    //  Person类的实现

    #import "People.h"
    
    @implementation People
      // 重写initWith
    -(id)initWith:(NSString*)name andSex:(Sex)sex andAge:(int)age{
        
        if (self = [super init]) {
            _name = name;
            _age = age;
            _sex = sex;
        }
        return self;
    }
    
    @synthesize name = _name,sex=_sex,age=_age;
    - (void)introduce{
        
        NSLog(@"大家好!我叫%@ ,我是一个%d,我今年%d岁",_name,_sex,_age);
    }
    
    @end

     // Student类

    #import <Foundation/Foundation.h>
    #import "People.h"
    @interface Student :People
    
    // 专业
    @property NSString *major;
    
    // 自定义重写构造
    -(id)initWith:(NSString*)name andSex:(Sex)sex andAge:(int)age;
    @end

    // Student的实现

    #import "Student.h"
    
    @implementation Student
    
    // 自定义重写构造
    -(id)initWith:(NSString*)name andSex:(Sex)sex andAge:(int)age{
           
        if (self = [super init]) {
            _name = name;
            _age = age;
            _sex = sex;
        }
        return self;
    }
    
    // 自我介绍
    - (void)introduce{
          
         NSLog(@"大家好!我叫%@ ,我是一个%d,我今年%d岁,专业是%@",self.name,self.sex,self.age,_major);
    }
    @end

       // main()

    int main() {
    
      // 创建实例对象s1
            Student *s1 = [[Student alloc]initWith:@"小明"      andSex:SexWoman andAge:10];
            s1.major = @"美术";
            [s1 introduce];
    
        return 0;
    }

     // 在初始化时就赋初值

  • 相关阅读:
    leetcode Maximum Product Subarray
    JAVA中的泛型类型不可以直接初始化
    android里getView,inflate,listview问题
    二元查找树转换成一个排序的双向链表
    c语言函数指针
    C++初始化小问题
    ODPS中的TaskContext类里面的write函数
    Eclipse里面新建servlet 是否需要配置web.xml
    检测鼠标是否在标签上
    继承
  • 原文地址:https://www.cnblogs.com/jerry1209/p/4243120.html
Copyright © 2011-2022 走看看