黑马程序员技术交流社区

标题: OC练习题(二) [打印本页]

作者: CcrazyOne    时间: 2015-10-14 00:01
标题: OC练习题(二)
/*

  设计一个”学生“类
  1> 属性
  * 姓名
  * 生日


  用结构体作为类的实例变量(生日)


*/


#import <Foundation/Foundation.h>

//定义一个结构体
typedef struct d1 {

    //年
    int year;
    //月
    int month;
    //日
    int day;

}MyDate;

//学生类的声明
@interface Student :NSObject
{
    @public
    //姓名
    NSString *_name;
    //生日
    // 1999-02-01
    MyDate _birthday;
}

@end


//学生类的实现部分
@implementation Student

@end


int main(int argc, const char * argv[]) {
    @autoreleasepool {

        //创建一个学生对象
        Student *stu = [Student new];
        stu->_name = @"小明";

        //生日
        // 1992-11-11
        //stu->_birthday 在对象 创建的时候,已经被初始化了
        //1)错误写法
//        stu->_birthday = {1992,11,11};

        //正确写法:
        //1) 强制类型转换
//        stu->_birthday = (MyDate){1992,11,11};
        //2) 先定义一个结构体变量,并且初始化,然后赋值给 实例变量
//          MyDate d1 = {1999,11,11};
//          stu->_birthday = d1;
        //3) 逐个赋值
        stu->_birthday.year = 1992;
        stu->_birthday.month = 11;
        stu->_birthday.day = 11;


        NSLog(@"--->%d,%d,%d",stu->_birthday.year,stu->_birthday.month,stu->_birthday.day);
//        
//        MyDate d1 = {1992,11,11};
//        NSLog(@"%d,%d,%d",d1.year,d1.month,d1.day);  //结构体变量通过.的方式访问结构体成员

//        MyDate d2;  //定义了一个结构体的变量
        //系统并不知道 d2 到底是结构体还是 数组
//        int a[3]={1,2,3};
//        d2 = (MyDate){1992,11,11};



    }
    return 0;
}



作者: wx_D3aDvzRw    时间: 2015-10-14 00:13
强制转化那里干的漂亮




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