一、概念
二、代码
#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 . . .]