黑马程序员技术交流社区

标题: 结构体作为类的属性 [打印本页]

作者: 403295277    时间: 2015-8-27 21:26
标题: 结构体作为类的属性
/*
    设计一个"学生"类
    1>属性
    *姓名
    *生日(用结构体作为类的实例变量---生日)

*/


#import <Foundation/Foundation.h>
typedef struct {
   
    int year;
    int month;
    int day;
}myDate;

@interface Student:NSObject
{
    @public
    NSString *_name;
    //只有属性,没有方法,最好选择---->结构体 (这样节约内存空间)
    //如果不仅有属性还有方法,只能选择定义成---->类
    myDate _birthday;
}

@end
@implementation Student
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Student *studentOne = [Student new];
        studentOne->_name = @"张三丰";
        
        // 注意结构体的初始化方法
        studentOne->_birthday = (myDate){1989,9,9};
        /*
         结构体的初始化方法
         1、定义时直接初始化
                 typedef struct {
                 
                 int year;
                 int month;
                 int day;
                 }myDate = {1989,1,1};
         2、定义结构体变量的同时进行初始化
                myDate day1 = {1989,1,1};
         3、把已经初始化的结构体变量赋值没有初始化的结构体变量
                myDate day1 = {1989,1,1};
                myDate day2 = day1
         4、结构体变量一个一个的进行初始化
                 studentOne->_birthday.year = 1989;
                 studentOne->_birthday.month = 1;
                 studentOne->_birthday.day= 1;
         
         */
//        studentOne->_birthday.year = 1989;
//        studentOne->_birthday.month = 1;
//        studentOne->_birthday.day= 1;
        NSLog(@"姓:名%@,生日:%d,%d,%d",studentOne->_name,studentOne->_birthday.year,studentOne->_birthday.month,studentOne->_birthday.day);
        
    }
    return 0;
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2