OC2

来源:互联网 发布:centos 6.3升级 内核 编辑:程序博客网 时间:2024/06/05 02:04
#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];

/*
-:实例方法
1、调用方法
[对象 方法名]
2、格式
-(返回类型)方法名
-(返回类型)方法名参数描述名1:(参数类型)参数名
-(返回类型)方法名参数描述名1:(参数类型)参数名1 参数描述名2:(参数类型)参数名2 .....
*//*
// 无返回值 ,无参数
[human buywater];
[human sayHi];
//无返回,有一个参数
// [human lentOfMoney:500000000000];
// 无返回值,传两个参数
// [human drinkOfwater:@"农夫山泉" tea:@"铁观音"];
//有返回值,无参数
NSString *tea = [human drinktea];
NSLog(@"tea:%@",tea);
// 有返回值,传两个参数
NSString *newstring = [human drinkOfOtherWater:@"矿泉水" tea:@"绿茶"];
NSLog(@"new:%@",newstring);

NSInteger sum = [human sunOfNumber:1000 otherNumber:2000];
NSLog(@"sum= : %ld",sum);
*/


/*
+:类方法
1、调用方法
[类名 方法名]
*/
// [Human test];
// Human *human1 = [Human human];
// NSLog(@"human1 :%@",human1);
// Human *human2 = [Human humanWithName:@"lili" age:22];
// NSLog(@"%@" ,human2);
//
// //setter getter
// Human *human3 = [[Human alloc]init];
// [human3 setName:@"xiaoli"];
// [human3 setAge:22];
// NSLog(@"姓名:%@ 年龄:%ld",[human3 name],(long)[human3 age]);
//// 点语法
// human3.name = @"tom";
// human3.age = 23;
// NSLog(@"姓名:%@ 年龄:%ld",[human3 name],(long)[human3 age]);
Student *student = [[Student alloc]init];
student.name = @"tom";
[student hello];

[student test];

[Student test];

Person *person = [[Student alloc] init];
[person hello];

}
return 0;

}


创建 Cocoa Touch Class文件  类名Human

.h

#import <Foundation/Foundation.h>

@interface Human : NSObject
{   //成员变量
    /*@protected(默认):本类和他的子类的方法可以访问
      @private:本类的方法可以访问
      @public:公开
     */
    NSString *_name;
    NSInteger _age;
}
//行为动作
-(void)buywater;
//实例方法
//无返回值,无参数
//打招呼
-(void)sayHi;
//无返回,有一个参数
- (void)lentOfMoney:(NSInteger)money;
//无返回值,传两个参数
- (void)drinkOfwater:(NSString *)water tea:(NSString *)tea;
//有返回值,无参数
- (NSString *)drinktea;
//有返回值,传两个参数
- (NSString *)drinkOfOtherWater:(NSString *)water tea:(NSString *)tea;

- (NSInteger)sunOfNumber:(NSInteger)number otherNumber:(NSInteger)otherNumber;
-(instancetype)initWithName:(NSString *)name age:(NSInteger)age;


//类方法
+(void)test;
//便利构造方法
+(Human *)human;
+(Human *)humanWithName:(NSString *)name age:(NSInteger)age;
-(NSString*)description; //打印对象的方式


//setter getter//存取
-(void)setName:(NSString *)name;
-(NSString*)name;
-(void)setAge:(NSInteger)age;
-(NSInteger)age;
@end


.m

#import "Human.h"

@implementation Human
-(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)sunOfNumber:(NSInteger)number otherNumber:(NSInteger)otherNumber{
    return number + otherNumber;
}

-(instancetype)initWithName:(NSString *)name age:(NSInteger)age{
    self = [super init];
    if (self) {
        _name = name;
        _age = age;
    }
    return self;
}


+(void)test{
    NSLog(@"类方法测试");
}

+(Human *)human{
    Human *human1 = [[Human alloc]init];
    return  human1;
}

+(Human *)humanWithName:(NSString *)name age:(NSInteger)age{
    Human *human2 = [[Human alloc]initWithName:name age:age];
    return human2;
}

-(NSString *)description{
    NSString *string = [NSString stringWithFormat:@"name: %@,age:%ld",_name,_age];
    return string;
}





//setter getter的目的 给成员变量赋值
-(void)setName:(NSString *)name{
    _name = name;  //赋值
}
-(NSString*)name{
    return _name;  //返回去
}

-(void)setAge:(NSInteger)age{
    if (age < 0) {
        _age = 18;
        return;
    }else{
        _age = age;
    }
}
-(NSInteger)age{
    return _age;
}

@end


//继承   Student继承Person

创建 Cocoa Touch Class文件  类名Person
.h

#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

.m
#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


创建 Cocoa Touch Class文件  类名Student

.m

#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

.h

#import "Person.h"
#import <Foundation/Foundation.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

0 0
原创粉丝点击