第02天OC语言(04):结构体作为对象属性
第02天OC语言(04):结构体作为对象属性
lyh2017iOS 发表于5个月前
第02天OC语言(04):结构体作为对象属性
  • 发表于 5个月前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

#####一、概念 #####二、代码

#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语言
共有 人打赏支持
粉丝 2
博文 354
码字总数 137380
×
lyh2017iOS
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: