OC-5

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值