类封装

#import <Foundation/Foundation.h>
#import "Teacher.h"
#import "Student.h"
#import "OurClass.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
    //在MRC手动释放环境下(注意, 属性一般写成copy, 不可改变; (1)retain是可变属性的修饰词;(2) copy, retain 要重写dealloc方法, 以及description方法 (3)便利构造器的自动释放池)
        //实现班级信息程序
        //1、定义3个类:OurClass、Teacher、Student。
        //2、Teacher类,属性:姓名、年龄、班级,方法:考试(exam:)。
        //3、Student类,属性:姓名、年龄、学号、成绩,⽅法:比较年龄。
        //4、OurClass类,属性:老师、学生,方法:添加学生和移除学生。
        //提⽰:
        //1、Person类作为Student、Teacher类的父类,公共属性和方法写在Person类中。
        //2、Student的成绩为NSMutableDictionary类型,存储课程名称和成绩。
        //3、Teacher的考试内部实现随机为班级每个学生的某⼀一科赋值。
        //4、OurClass的学⽣为NSMutableArray类型,内部存Student的对象。

        //先有老师(注意: 初始化的时候, super initWithName:name age:age, 就是调用父类的方法)
        Teacher *teacher = [[Teacher alloc] initWithName:@"辉哥" age:18];
        //再有学生, 注意: 学生中的成绩字典不写, 但是相应的三门成绩都初始化为0
        Student *stu1 = [[Student alloc] initWithName:@"小明" age:30 number:1024];//number设置成了整型
        Student *stu2 = [[Student alloc] initWithName:@"朱岩" age:5 number:1007];
        Student *stu3 = [[Student alloc] initWithName:@"程磊" age:2 number:1234];
        //形成班级, 里面有类@class 其他类
        OurClass *ourClass = [[OurClass alloc] initWithTeacher:teacher];

        [ourClass addStudent:stu1];
        [ourClass addStudent:stu2];
        [ourClass addStudent:stu3];

        [stu1 release];
        [stu2 release];
        [stu3 release];

        teacher.ourClass = ourClass;//这句不能省
        [teacher exam:@"English"];//传进来的某门课成绩

        [teacher release];
        [ourClass release];

    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值