#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;
}
类封装
最新推荐文章于 2023-12-07 22:09:37 发布