您的位置:首页 > 编程语言 > C语言/C++

第02天OC语言(04):结构体作为对象属性

2017-07-11 00:00 323 查看
#####一、概念
#####二、代码

#import <Foundation/Foundation.h>
#pragma mark 类
/*
    合理设计一个'学生'类
    学生有 姓名 生日 两个属性 和 说出自己姓名 生日方法
    要求利用设计的学生类 创建学生对象, 并说出自己的姓名 和年龄
    
    描述学生类
    事物名称 : 学生(Student)
    属性 : 姓名(name) 生日(birthday)
    行为 : 说出自己的姓名 和 生日(say)
 */
typedef struct
{
    int year;
    int month;
    int day;
}Date;

@interface Student : NSObject
{
    @public
    NSString *_name;
    Date _birthday;
}

- (void)say;
@end
@implementation Student

- (void)say
{
    NSLog(@"我的姓名 = %@,year = %i, month = %i, day = %i",_name,_birthday.year,_birthday.month,_birthday.day);
}
@end

#pragma mark main函数
int main(int argc, const char * argv[])
{
    // 1.创建学生对象
    Student *stu = [Student new];
    // 2.设置学生对象的属性
    stu->_name = @"lyh";
    // 1.结构体只能在定义的时候初始化
    // 2.系统并不清楚 它是数组 还是结构体
//    stu->_birthday = {1992,4,11};
#pragma 1.结构体一次性赋值(推荐使用,快捷方便,只需要转换一下就行了)
//    stu->_birthday = (Date){1992,4,11};
#pragma 2.结构体逐个赋值
//    stu->_birthday.year = 1992;
//    stu->_birthday.month = 2;
//    stu->_birthday.day = 1;
#pragma 3.其他方式
    Date d = {19992,9,1}; // 0开头是八进制,不要随便写09 ,直接写9
    stu->_birthday = d;

    // 3.学生说出自己的姓名 和 生日
    [stu say];
    
    
    Date d1 = {1992,2,2};
    Date d2;
    d2 = d1; // 本质是将 d1所有的属性的值 都拷贝了 一份给d2;
    
    d2.year = 2000;
    printf("d1 year = %i\n",d1.year);
    printf("d2 year = %i\n",d2.year);

    return 0;
}

![Uploading image_816804.png . . .]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OC语言