面向对象 - 结构体作为对象属性

本文介绍了Objective-C中如何使用结构体和类进行数据封装,包括结构体的定义与使用,以及类的定义、实例化和方法调用,通过一个具体的Student类实例展示了如何将结构体作为类的成员变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#import <Foundation/Foundation.h>

// typedef 给结构体添加别名
typedef struct {
    int year;
    int month;
    int day;
} Date;

// 定义Student类
@interface Student : NSObject
{
    @public
    NSString *_name;
    Date _birthday;	// 使用结构体类型Date
}

- (void)printName;
- (void)printBirthday;
@end

// 声明Student类
@implementation Student
- (void)printName {
    NSLog(@"我的姓名是:%@", _name);
}

- (void)printBirthday {
    NSLog(@"我的出生日期是:%i-%i-%i", _birthday.year, _birthday.month, _birthday.day);
}

@end

int main(int argc, const char * argv[]) {
	// 实例化类赋值给对象指针stu1
    Student *stu1 = [Student new];

    // 调用对象的属性
    stu1->_name = @"张三";
    // _birthday是一个结构体类型,赋值也需要传递一个结构体的值
    stu1->_birthday = (Date){1982, 10, 2};
    
    // 调用对象的方法
    [stu1 printName];
    [stu1 printBirthday];

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值