从0开始学习OC程序-第11天

setter 和 getter方法的简写
类中: @property 类型 属性名
实现中: @synthesize 方法名 = 成员变量名

//
// Person.h
// Test_简写getter和setter方法
//
// Created by 北国 on 16/3/15.
// Copyright © 2016年 beiguo. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    //可以不写成员变量
    int _age;
    double _weight;
    NSString *_name;
}

@property int age;
@property double weight;
@property NSString *name;
@end


//
// Person.m
// Test_简写getter和setter方法
//
// Created by 北国 on 16/3/15.
// Copyright © 2016年 beiguo. All rights reserved.
//

#import "Person.h"

@implementation Person


@synthesize age = _age;

@synthesize name = _name;

@synthesize weight = _weight;

@end

new 方法替换  [[类 alloc]init]
初始化 init方法
构造器 initWithAge 等等
self代表当前对象

//
// Person.h
// OC_new方法替换
//
// Created by 北国 on 16/3/15.
// Copyright © 2016年 beiguo. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property int age;
@property NSString *name;
@property double weight;

-(void)initWithNameAndAge:(int) ageNum name2 : (NSString *) nameNum;

@end


//
// Person.m
// OC_new方法替换
//
// Created by 北国 on 16/3/15.
// Copyright © 2016年 beiguo. All rights reserved.
//

#import "Person.h"

@implementation Person
@synthesize age = _age;
@synthesize name = _name;
@synthesize weight = _weight;

//重新父类init方法
- (instancetype)init
{
    self = [super init];
    if (self) {
        _age = 10;
    }
    return self;
}

//构造器

-(void)initWithNameAndAge:(int)ageNum name2:(NSString *)nameNum{

    _age = ageNum;
    _name = nameNum;
}

@end


//
// main.m
// OC_new方法替换
//
// Created by 北国 on 16/3/15.
// Copyright © 2016年 beiguo. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "Person.h"

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

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

        person.age = 10;

        NSLog(@"person age is %d",person.age);

        //重写父类的初始化方法
        Person *person1 = [[Person alloc]init];
        NSLog(@"person1 age is %d",person1.age);

        //构造器
        [person1 initWithNameAndAge:100 name2:@"beiguo111"];
        NSLog(@"person1 age is %d ,name is %@",person1.age,person1.name);

    }
    return 0;
}

Description的重写  类似于java中的toString()方法
//
// Person.h
// OC_Description方法的重写
//
// Created by 北国 on 16/3/15.
// Copyright © 2016年 beiguo. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property int age;

@property NSString *name;

@end


//
// Person.m
// OC_Description方法的重写
//
// Created by 北国 on 16/3/15.
// Copyright © 2016年 beiguo. All rights reserved.
//

#import "Person.h"

@implementation Person

@synthesize age = _age;

@synthesize name = _name;

- (NSString *)description
{
    return [NSString stringWithFormat:@"person age is %d , name is %@", _age,_name];
}

@end


//
// main.m
// OC_Description方法的重写
//
// Created by 北国 on 16/3/15.
// Copyright © 2016年 beiguo. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {

        Person *person = [[Person alloc]init];
        [person setAge:10];
        [person setName:@"beiguo"];

        NSLog(@"%@",[person description]);
    }
    return 0;
}

你可能感兴趣的:(Object-C)