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 虐死你们后  哥就走了

    */

     

     

     

     

     

     

  • 相关阅读:
    oracle 添加用户
    oracle---存储结构及其之间的关系和创建数据库
    oracle---临时表空间
    对字符串进行加密解密知识
    面向对象---函数重复---原型
    Ajax
    sqlHelper+app.config
    sqlHelper ---转载
    web.config中的连接字符串 ---关于 providerName 特性---转载
    SQL中的cast()函数--转载
  • 原文地址:https://www.cnblogs.com/dx-230/p/4765172.html
Copyright © 2011-2022 走看看