点语法

 

 

.h--》.m--》.m

——————————————————————分割———————————————————————————————

#import <Foundation/Foundation.h>

 

@interface Dog : NSObject

{

    NSString *_name;

    NSInteger _age;

}

 

- (id)initWithName:(NSString *)name andAge:(NSInteger)age;

 

//setter方法

 

- (void)setName:(NSString *)name;

- (void)setAge:(NSInteger)age;

 

//getter方法

 

- (NSString *)name;

- (NSInteger)age;

 

@end

 

 

 

#import "Dog.h"

 

@implementation Dog

 

- (id)initWithName:(NSString *)name andAge:(NSInteger)age

{

    if (self = [super init]) {

        _name = name;

        _age = age;

    }

    return self;

}

 

- (void)setName:(NSString *)name

{

    _name = name;

}

 

- (void)setAge:(NSInteger)age

{

    _age = age;

}

 

- (NSString *)name

{

    return _name;

}

 

- (NSInteger)age

{

    return _age;

}

 

@end

 

 

 

#import <Foundation/Foundation.h>

#import "Dog.h"

//点语法

//方便别的程序员转到ios开发行业

//struct stu

//{

//    char name[20];

//    int age;

//};

//struct stu student;

//student.age;

//student.name;

 

//点语法是编译层次的概念

//程序在编译后, 自动展开成经典调用方式

 

 

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

    @autoreleasepool {

        Dog *xiaoHei = [[Dog alloc] initWithName:@"小黑" andAge:12];

        //NSLog(@"name = %@ , age = %ld", [xiaoHei name], [xiaoHei age]);

        //xiaoHei.name xiaoHei.age

        //展开成 ==>[xiaoHei name] [xiaoHei age];

        NSLog(@"name = %@ , age = %ld", xiaoHei.name, xiaoHei.age);

        //xiaoHei.name = @"小白"

        //xiaoHei.age = 13;

        //==> [xiaoHei setName:@"小白"];

        //==> [xiaoHei setAge:13];

        

        xiaoHei.name = @"小白";

        xiaoHei.age = 13;

        NSLog(@"name = %@ , age = %ld", xiaoHei.name, xiaoHei.age);

        

    }

    return 0;

}

 

 

 

.h--》.m--》.m

——————————————————————分割———————————————————————————————

#import <Foundation/Foundation.h>

 

@interface Person : NSObject

//{

//    NSString *_name;

//    NSInteger _age;

//}

 

//- (void)setName:(NSString *)name;

//- (void)setAge:(NSInteger)age;

//

//- (NSString *)name;

//- (NSInteger)age;

 

//@property 自动帮我们展开方法的声明

@property NSString *name;

@property NSInteger age;

 

@end

 

 

#import "Person.h"

 

@implementation Person

 

//- (void)setName:(NSString *)name

//{

//    _name = name;

//}

//- (void)setAge:(NSInteger)age

//{

//    _age = age;

//}

//

//- (NSString *)name

//{

//    return _name;

//}

//- (NSInteger)age

//{

//    return _age;

//}

//@synthesize 展开setter 及 getter方法的实现

 

//@synthesize name=_name;

//@synthesize age=_age;

 

@end

 

 

#import <Foundation/Foundation.h>

#import "Person.h"

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

    @autoreleasepool {

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

        //调用setter 方法

        xiaoHong.name = @"小红";

        xiaoHong.age = 12;

        //

        //NSLog(@"name = %@ age = %ld", xiaoHong.name, xiaoHong.age);

        NSLog(@"name = %@ age = %ld", [xiaoHong name], [xiaoHong age]);

        

    }

    return 0;

}

 

 

 

.h--》.m--》.m

——————————————————————分割———————————————————————————————

 

#import <Foundation/Foundation.h>

 

//readonly

//只展开getter方法, 不展开setter方法

//readwrite(缺省)

//既展开了getter方法, 又展开了setter方法

 

//内存管理中讲

//retain(缺省) //setter方法的实现不同

//copy

 

//atomic(缺省) 原子性的

//nonatomic 非原子性

 

//setter getter

//方法名不能以 new copy alloc mulCopy开头

//setter给setter方法命名

//getter给getter方法命名

 

@interface Dog : NSObject

 

@property (readwrite,copy)NSString *name;

 

@property (setter=masName:,getter=getName)NSString *masterName;

 

@property (nonatomic)NSInteger age;

 

//@property (getter=newPlace)NSString *place;

 

@end

 

#import "Dog.h"

 

@implementation Dog

 

@end

 

#import <Foundation/Foundation.h>

#import "Dog.h"

 

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

    @autoreleasepool {

        Dog *xiaoHei = [[Dog alloc] init];

        xiaoHei.name = @"小黑";

        xiaoHei.age = 12;

        NSLog(@"name = %@ age = %ld", xiaoHei.name, xiaoHei.age);

        

        [xiaoHei masName:@"小飞"];

        //[xiaoHei setMasterName:@"小飞"];

        xiaoHei.masterName = @"小红";

        

        NSLog(@"masterName = %@", xiaoHei.masterName);

        NSLog(@"masterName = %@", [xiaoHei getName]);

        

    }

    return 0;

}

 

 

转载于:https://www.cnblogs.com/-yun/p/4320426.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值