OC基础第一天

FJStudent.h

/**定义一个学生类。属性有姓名和年龄*/

@interface FJStudent : NSObject{

NSString *_name;

int _age;

}

/**初始化方法*/

- (instancetype) initWithName:(NSString *) name age :(int) age{

if (self = [super init]){

_name = name;

age = age;

}

/**学习方法*/

- (void) study:(NSString *):courseName;

/**打游戏方法*/

- (void) playGame:(NSString *):gameName;

/**看电影方法*/

- (void) watchMovie:(NSString *):movieName;

@end

FJStudent.m

/**这是学生类的实现部分,就是将FJStuden.h中定义的方法进行具体的实现*/

#import "FJStudent.h"

@implementation FJStudent

+ (instancetype) studentWithName:(NNString *)name age:(int)age{

return [[self alloc]initWithName:(NNString *)name age:(int)age];

}

- (instancetype) initWithName:(NNString *)name age:(int)age{

if(self = [super init]){

_name = name;

_age = age;

}

return self;

}

- (void) study:(NSString *) courseName{

NSLog(@"%@正在玩%@",_name,courseName);

}

- (void) playGame:(NSString *)gameName{

NSLog(@"%@正在玩%@",_name,gameName);

}

- (void) watchMovie{

if (_age<18){

NSLog(@"%@不能看%@");

}else{

NSLog(@"%@可以看%@");

}

}

@end

main.m

/**以下部分就是初始化一个类的对象。然后调用实现部分FJStuden的方法实现我们预期的动作!*/

// 写程序的终极原则: 高内聚 低耦合

// High cohesion low coupling


#import <Foundation/Foundation.h>

#import "FJStudent.h"


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        FJStudent *s1 = [CDStudent studentWithName:@"王大锤" age:24];

//类是对象的模板,具体实现动作必须要创建对象。


        [s1 study:@"C语言"];

//调用对象的具体方法格式为[对象名 方法名:参数]

        [s1 play:@"LOL"];

        [s1 watchJapaneseAV];

        

        FJStudent *s2 = [[CDStudent alloc] initWithName:@"李狗蛋" age:15];

        [s2 study:@"高中物理"];

        [s2 play:@"斗地主"];

        [s2 watchJapaneseAV];

    }

    return 0;

}




你可能感兴趣的:(OC面向对象入门)