main.m
//
// main.m
// -OC-5
//
// Created by lanqs on 14/12/23.
// Copyright (c) 2014年 . All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Student.h"
#import "Teacher.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
#pragma mark - 1、创建一个Student类,包含姓名(name)、性别(gender)、年龄(age),另外还包含一个数组类型的课程内容(NSArray * lessons);
Student *student1 = [[Student alloc]initWithName:@"xiaowang" gender:@"man" age:18];
Student *student2 = [Student studentWithName:@"xiaoli" gender:@"man" age:20];
Student *student3 = [Student studentWithName:@"xiaoguang" gender:@"man" age:20];
student1.lessons = [NSArray arrayWithObjects:@"ios",@"math", nil];
student2.lessons = [NSArray arrayWithObjects:@"ios",@"math", nil];
student3.lessons = [NSArray arrayWithObjects:@"ios",@"math", nil];
[student1 release];
#pragma mark - 2、创建一个Teacher类,包含姓名(name)、多名学生(NSArray * students);
Teacher *teacher = [[Teacher alloc]init];
teacher.name = @"张老师";
teacher.students = [NSArray arrayWithObjects:student2,student3, nil];
[teacher print];
NSLog(@"%lu",[teacher retainCount]);
[teacher release];
}
return 0;
}
teacher.m
//
// Teacher.m
// -OC-5
//
// Created by lanqs on 14/12/23.
// Copyright (c) 2014年 . All rights reserved.
//
#import "Teacher.h"
@implementation Teacher
- (void)dealloc{
NSLog(@"%s",__FUNCTION__);
[_name release];
[_students release];
[super dealloc];
}
- (void)setName:(NSString *)name{
if (_name != name) {
[_name release];
_name = [name retain];
}
}
- (void)setStudents:(NSArray *)students{
if (_students != students) {
[_students release];
_students = [students retain];
}
}
- (NSString *)name{
return _name;
}
- (NSArray *)students{
return _students;
}
- (void)print{
NSLog(@"name = %@,shudentname = %@",_name,_students);
}
@end
teacher.h
#import <Foundation/Foundation.h>
#import "Student.h"
@interface Teacher : NSObject{
NSString *_name;
NSArray *_students;
}
- (void)setName:(NSString *)name;
- (void)setStudents:(NSArray *)students;
- (NSString *)name;
- (NSArray *)students;
- (void)print;
@end
student.h
#import <Foundation/Foundation.h>
@interface Student : NSObject{
NSString *_name; //姓名
NSString *_gender; //性别
NSInteger _age; //年龄
NSArray *_lessons; //课程内容
}
- (id)initWithName:(NSString *)name
gender:(NSString *)gender
age:(NSInteger)age;
+ (Student *)studentWithName:(NSString *)name
gender:(NSString *)gender
age:(NSInteger)age;
- (void)setLessons:(NSArray *)lessons;
@end
student.m
//
// Student.m
// -OC-5
//
// Created by lanqs on 14/12/23.
// Copyright (c) 2014年 . All rights reserved.
//
#import "Student.h"
@implementation Student
- (id)initWithName:(NSString *)name
gender:(NSString *)gender
age:(NSInteger)age{
self = [super init];
if (self) {
_name = [name retain];
_gender = [gender retain];
_age = age;
}
return self;
}
+ (Student *)studentWithName:(NSString *)name
gender:(NSString *)gender
age:(NSInteger)age{
Student * student = [[Student alloc]initWithName:name gender:gender age:age];
return [student autorelease];
}
- (void)dealloc{
NSLog(@"%s",__FUNCTION__);
[_name release];
[_gender release];
[_lessons release];
[super dealloc];
}
- (void)setLessons:(NSArray *)lessons{
if (_lessons != lessons) {
[_lessons release];
_lessons = [lessons retain];
}
}
- (NSArray *)lessons{
return _lessons;
}
- (NSString *)description{
return [NSString stringWithFormat:@"name = %@, gender = %@, age = %ld,lesson = %@",_name,_gender,_age,_lessons];
}
@end