OC 方法 继承 多态

来源:互联网 发布:mysql分页是什么 编辑:程序博客网 时间:2024/05/21 10:09
#import <Foundation/Foundation.h>#import "Human.h"#import "Person.h"#import "Student.h"int main(int argc, const char * argv[]) {    @autoreleasepool {    Human *human = [[Human alloc] init];//    [human buyWater];    /*     -:实例方法     1.调用方式     [对象  方法名]     2.格式     - (返回值类型)方法名;     - (返回值类型)方法名参数描述名1:(参数类型)参数名;     - (返回值类型)方法名参数描述名1:(参数类型)参数名1 参数描述名2:(参数类型)参数名2 .....     *///        //无返回值,无参数        [human sayHi];//        //无返回值,有一个参数        [human lentOfMoney:100];        //无返回值,传两个参数        [human drinkOfWater:@"农夫山泉" tea:@"铁观音"];        //有返回值,有一个参数        NSString *tea = [human drinkTea];        NSLog(@"tea:%@",tea);        //有返回值,有多个参数        NSString *newString = [human drinkOfOtherWater:@"矿泉水" tea:@"绿茶"];        NSLog(@"new:%@",newString);     NSInteger sum = [human sumOfNumber:100 otherNumber:200];        NSLog(@"sum = %ld",sum);//        /*//         +:类方法//         1.调用方式//         [类名 方法名]//         *///                [Human test];//         Human *human1 = [Human human];////         Human *human2 = [Human humanWithName:@"lili" age:22];        Human *human1 = [[Human alloc] init];        [human1 setName:@"lili"];       // NSLog(@"%@",[human1 name]);        [human1 setAge:11];        //点语法        human1.name = @"lili";        NSLog(@"%@",human1.name);        human1.age = 11;       // NSLog(@"%ld",human1.age);        NSLog(@"human1 = %@",human1);////          Student *student = [[Student alloc] init];        student.name = @"tom";        [student hello];        [student test];        [Student test];//        Student *student = [[Student alloc]//        init];//        Person *person = [[Student alloc] init];        [person hello];         }    return 0;}
#import <Foundation/Foundation.h>@interface Human : NSObject{/*    @protected(默认):本类和他的子类的方法可以访问    @private:本类的方法可以访问    @public */    //成员变量    NSString *_name;    NSInteger _age;}- (instancetype)initWithName:(NSString *)name age:(NSInteger)age;+ (Human *)humanWithName:(NSString *)name age:(NSInteger)age;//行为动作- (void)buyWater;//实例方法//无返回值,无参数//打招呼- (void)sayHi;//无返回值,有一个参数- (void)lentOfMoney:(NSInteger)money;//无返回值,有2个参数- (void)drinkOfWater:(NSString *)water tea:(NSString *)tea;//有返回值,无参数- (NSString *)drinkTea;//有返回值,有多个参数- (NSString *)drinkOfOtherWater:(NSString *)water tea:(NSString *)tea;- (NSInteger)sumOfNumber:(NSInteger)number otherNumber:(NSInteger)otherNumber;//类方法+ (void)test;+ (Human *)human;//setter,getter- (void)setName:(NSString *)name;- (NSString *)name;- (void)setAge:(NSInteger)age;- (NSInteger)age;@end
#import "Human.h"@implementation Human- (instancetype)initWithName:(NSString *)name age:(NSInteger)age{    self = [super init];    if (self) {        _name = name;        _age = age;    }    return self;}- (void)buyWater{    NSLog(@"我想喝水,你帮我买!");}- (void)sayHi{    NSLog(@"早上好");}- (void)lentOfMoney:(NSInteger)money{    NSLog(@"请你借%ld",money);}- (void)drinkOfWater:(NSString *)water tea:(NSString *)tea{    NSLog(@"我想喝%@泡的%@茶",water,tea);}- (NSString *)drinkTea{  return @"红茶";}- (NSString *)drinkOfOtherWater:(NSString *)water tea:(NSString *)tea{    NSString *string = [NSString stringWithFormat:@"我想喝%@泡的%@茶",water,tea];    return string;}- (NSInteger)sumOfNumber:(NSInteger)number otherNumber:(NSInteger)otherNumber{    return number + otherNumber;}+ (void)test{    NSLog(@"类方法test");}+ (Human *)human{    Human *human1 = [[Human alloc] init];    return human1;}+ (Human *)humanWithName:(NSString *)name age:(NSInteger)age{    Human *human = [[Human alloc] initWithName:name age:age];    return human;}//setter,getter- (void)setName:(NSString *)name{    _name = name;    NSLog(@"_____%@",_name);}- (NSString *)name{    return _name;}- (void)setAge:(NSInteger)age{    if (age < 0) {        _age = 18;        return;    }else{    _age = age;    }}- (NSInteger)age{    return _age;}- (NSString *)description{    NSString *string = [NSString stringWithFormat:@"name:%@,age = %ld",_name,_age];    return string;}@end
#import <Foundation/Foundation.h>@interface Person : NSObject{    NSString *_name;    NSInteger _age;}- (void)setName:(NSString *)name;- (NSString *)name;- (void)setAge:(NSInteger)age;- (NSInteger)age;- (void)hello;@end
#import "Person.h"@implementation Person- (void)setName:(NSString *)name{    _name = name;}- (NSString *)name{    return _name;}- (void)setAge:(NSInteger)age{    _age = age;}- (NSInteger)age{    return _age;}- (void)hello{    NSLog(@"person hello");}@end
#import <Foundation/Foundation.h>#import "Person.h"@interface Student : Person{//    NSString *_name;//    NSInteger _age;    NSString *_code;}- (void)setName:(NSString *)name;- (NSString *)name;- (void)setAge:(NSInteger)age;- (NSInteger)age;- (void)setCode:(NSString *)code;- (NSString *)code;+ (void)test;- (void)test;- (void)hello;@end
#import "Student.h"@implementation Student- (void)setName:(NSString *)name{    _name = name;}- (NSString *)name{    return _name;}- (void)setAge:(NSInteger)age{    _age = age;}- (NSInteger)age{    return _age;}//- (void)setCode:(NSString *)code{    _code = code;}- (NSString *)code{    return _code;}- (void)hello{    NSLog(@"student hello");}- (void)test{    NSLog(@"---:%@",self);}+ (void)test{    NSLog(@"+++++:%@",self);}@end
0 0
原创粉丝点击