美文网首页iOS基础学习
Objective-C基础学习之结构体成员变量

Objective-C基础学习之结构体成员变量

作者: WenJim | 来源:发表于2017-09-08 15:26 被阅读10次

1.结构体成员变量

设计一个”学生“类 
1> 属性
* 姓名
* 生日
用结构体作为类的实例变量(生日)
//
//  main.m
//  结构体作为对象的属性
//
//  Created by wenjim on 17/9/7.
//  Copyright  2017年 WenJim. All rights reserved.
//

#import <Foundation/Foundation.h>

/*
 合理的设计一个“学生”类
 学生有* 姓名 * 生日 两个属性和说出自己姓名生日的方法
 要求利用设计的学生类创建学生对象,并说出自己的性命和年龄
 
 描述学生类
 
 事物名称:学生(Student)
 属性:姓名(name),生日(birthday)
 行为:说出自己的性命和生日(say)
 
 */

typedef struct  {
    int year;
    int month;
    int day;
} Date;

/*
struct Date {
    int year;
    int month;
    int day;
};
 */

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

-(void)say;

@end

@implementation Student

-(void)say
{
    NSLog(@"名字:%@, 生日: %i-%i-%i",_name,_birthday.year,_birthday.month,_birthday.day);
}



@end

int main(int argc, const char * argv[]) {
    
    // 1.创建学生对象
    Student * student = [Student new];
    // 2.设置学生对象的属性
    student -> _name = @"CWJ";
    // 2.1 结构体只能在定义的时候初始化
    // 2.2 系统并不清楚它是数组还是结构体
//因为结构体已经初始化为0了,在次初始化就报错了,但是可以逐个赋值。
//    student -> _birthday = (Date){1992,2,22};
    
    student -> _birthday.year = 1993;
    student -> _birthday.month = 2;
    student -> _birthday.day = 22;
    
//也可以整体赋值
    Datedate={1993,11,11};
    student ->_birthday = date;

    // 3.让学生说出自己的姓名和生日
    [student say];
    

    
    Date d1 = {1993,10,17};
    Date d2;
    d2 = d1; // 本质是将d1所有的属性的值都拷贝一份赋值给d2
    
    d2.year = 1995;
    printf("d1 = year = %i\n",d1.year);
    printf("d2 = year = %i\n",d2.year);
    
    
    return 0;
}

相关文章

网友评论

    本文标题:Objective-C基础学习之结构体成员变量

    本文链接:https://www.haomeiwen.com/subject/onagjxtx.html