20150616属性@property

//
//  Dog.h
//  IOS150616_ObjectiveCDotProperty
//
//  Created by Peng Junlong on 15/6/16.
//  Copyright (c) 2015年 Peng Junlong. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Dog : NSObject

//属性关键字:
//retain,copy,assign:同时只能用一个;
//assign(缺省),直接赋值,将传入的值直接赋值给实例变量(如:_name = name);
//assign    用在基本类型,代理对象指针(***);
//copy      用在字符串对象;
//除了基本类型,字符串类型以及代理对象,剩下的通常用retain;
//retain    先release再retain;
//copy      先release再copy;

//atomic(缺省),nonatomic
//atomic        原子性的,不能单独拆开来实现,即在.m文件中不能重写setter和getter方法
//nonatomic     非原子性的,可以单独拆开重写setter和getter方法,但同时也要在.m文件中
                //使用@synthesize来展开对应的带"_"的实例变量

//readwrite(缺省),readonly
//readwrite:展开对应的setter方法和getter方法,可读可写
//readonly :只展开对应的getter方法,不展开对应的setter方法,只能读,不能写


@property (assign,atomic)NSInteger age;
@property (assign,nonatomic,readwrite)float weight;
@property (copy,nonatomic)NSString *name;

//setter getter修改setter和getter方法的方法名
//点语法访问不受影响,可以继续使用编译器生成的默认方法
//经典语法(即使用[])访问需使用新的方法,不能使用编译器默认展开的方法,
@property (assign,setter=setNewNumber:,getter=getNumber)NSInteger number;
@end

<span style="font-family: Helvetica; font-size: 14px;">//在.h文件中使用了@property对setter和getter方法及@synthesize进行了展开,所以在.m文件中没有任何实现</span>
<span style="font-family: Helvetica; font-size: 14px;"></span><pre name="code" class="objc">//  Dog.m
//  IOS150616_ObjectiveCDotProperty
//
//  Created by Peng Junlong on 15/6/16.
//  Copyright (c) 2015年 Peng Junlong. All rights reserved.
//

#import "Dog.h"

@implementation Dog


@end


 
<span style="font-family: Helvetica; font-size: 14px;"></span><pre name="code" class="objc">//
//  main.m
//  IOS150616_ObjectiveCDotProperty
//
//  Created by Peng Junlong on 15/6/16.
//  Copyright (c) 2015年 Peng Junlong. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Dog.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Dog *dog = [[Dog alloc] init];
        dog.name = @"小黑";       //点语法
        dog.age = 232;
        dog.weight = 23.32;
        NSLog(@"name = %@,age = %ld,weight = %.3f",dog.name,dog.age,dog.weight);
        
        dog.number = 444;
        NSLog(@"name = %@,age = %ld,weight = %.3f,number = %ld",dog.name,dog.age,dog.weight,dog.number);    //也可以dog.getNumber;点语法很强大
        
         NSLog(@"name = %@,age = %ld,weight = %.3f,number = %ld",[dog name],[dog age],[dog weight],[dog getNumber]);   //  经典语法,必须使用修改后的新的方法
        
    }
    return 0;
}


 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值