zoukankan      html  css  js  c++  java
  • OC基础--结构体 枚举做类成员属性

    结构体  枚举作类的成员属性:

      定义一个学生类

      性别 -- 枚举

      生日 入学日期  毕业日期  --  结构体

    代码示例:

    声明文件 Student.h:

    #import <Foundation/Foundation.h>
    typedef struct {
        int year;
        int month;
        int day;
    } Date; 
    typedef
    enum { kGenderGirl = 0, kGenderBoy = 1, kGenderChunGe = 2 } Gender; @interface Student : NSObject { @public int _age; NSString* _name; Gender _gender; // 生日 Date _birthday; // 入学时间 Date _entranceTime; // 毕业时间 Date _graduation; } // 自我介绍 - (void) selfIntroduce; // 枚举值转换为性别 + (NSString*) getGenderByEnumValue:(Gender) gender; @end

    实现文件 Student.m:      

    #import "Student.h"
    
    @implementation Student
    // 输出信息
    - (void)selfIntroduce{
        // 实例方法中调用类方法
        NSString* gender = [[self class] getGenderByEnumValue:_gender]; 
        // 实例方法访问成员变量
    
        NSLog(@"大家好,我是:%@, 性别:%@, 年龄:%i, 我是 %i年%i月%i号 破壳的  上天安排我在 %i年%i月%i号 进入本校来虐死你们  哈哈  %i年%i月%i号 虐死你们后  哥就走了", _name, gender, _age, _birthday.year, _birthday.month, _birthday.day, _entranceTime.year, _entranceTime.month, _entranceTime.day, _graduation.year, _graduation.month, _graduation.day);
    }
    // 性别枚举值转换为字符串
    + (NSString *)getGenderByEnumValue:(Gender)gender{
        NSString* sex;
        switch (gender) {
            case 0:
                sex = @"";
                break;
            case 1:
                sex = @"";
    break; case 2: sex = @"春哥"; break; default: sex = @"我是妖"; break; } return sex; } @end

    Main.m:                    

    #import <Foundation/Foundation.h>
    #import "Student.h" 
    
    int main(int argc, const char * argv[]) {   
        Student * stu = [Student new];
        stu->_name = @"小马";
        stu->_age = 30;
        stu->_gender = kGenderChunGe;   
        // 结构体成员赋值  方式一
        stu->_birthday = (Date){1985, 11, 11};
    // 方式二
    stu->_entranceTime.year = 2000; stu->_entranceTime.month = 9; stu->_entranceTime.day = 23; // 方式三 Date date = {.year = 2004, .month = 9, .day = 21}; stu->_graduation = date; [stu selfIntroduce]; return 0; }

    /*

      2015-08-27 23:58:16.727 结构体  枚举做类成员[938:44544] 大家好,我是:小马, 性别:春哥, 年龄:30, 我是 19851111 破壳的  上天安排我在 2000923 进入本校来虐死你们  哈哈  2004921 虐死你们后  哥就走了

    */

     

     

     

     

     

     

  • 相关阅读:
    在 Anaconda下解决国内安装tensorflow等下载慢和中断,出错,异常问题的一点思路
    关于指针和结构体的一点教训
    ARM cortexM4中断优先级的一点理解。
    ubuntu16下的/etc/resolv.conf重置的解决方案
    linux安装dpkg安装缺少依赖项的解决
    莲藕的简单凉菜制作总结
    单片机一种简便的printf调试方案。
    usart下位机输出使用printf的格式化技巧
    关于xp操作系统下使用VC6++编写的上位机软件在win10中运行的问题
    百度面试两板斧:手写算法问基础
  • 原文地址:https://www.cnblogs.com/dx-230/p/4765172.html
Copyright © 2011-2022 走看看