@property

简介:

在XCode4.5以上,写了@property之后,系统会自动生成私有_字段和实现@synthesize方法

但如果自己写了set或者get方法之后,就不会帮你产生默认的下划线字段

Student.h:

#import <Foundation/Foundation.h>  @interface Student : NSObject{     @public   //以下就是共有类型  还有@private和@protected     int _age;     int _no;      } @property int age;//自动申明getter和setter方法 @property int no; //-(int)age; //-(int)no; ////OC里面没有构造方法 //-(void)setAge:(int)newAge;  //setAge:是它的方法名(注意要带上冒号) //-(void)setNo:(int)newNo; // //-(void)setAge:(int)newAge AndNo:(int)newNo;  //setAge: AdnNo:是它方法名 -(id)initWithAge:(int)newAge andWithNo:(int)newNo; //-(NSString *)description; @end

Student.m:

#import "Student.h"  @implementation Student @synthesize age=_age,no=_no;//自动实现setter和getter方法  //#pragma mark - setter //#pragma mark 设置年龄 //-(void)setAge:(int)newAge{ //    age=newAge; //} //#pragma mark 设置学号 //-(void)setNo:(int)newNo{ //    no=newNo; //} //#pragma mark 设置年龄跟学号 //-(void)setAge:(int)newAge AndNo:(int)newNo{ //    age=newAge; //    no=newNo; //} //#pragma mark - getter //#pragma mark 获得学号 //-(int)no{ //    return no; //} //#pragma mark 获得年龄 //-(int)age{ //    return age; //} #pragma mark - 构造方法 #pragma mark 通过传入年龄和学号初始化一个构造方法 -(id)initWithAge:(int)newAge andWithNo:(int)newNo{     if(self=[super init]) //首先要初始化父类方法     {         _age=newAge;         _no=newNo;         return self;     }     return nil; } //重写父类的description方法 //-(NSString *)description{ //    NSString * str =[NSString stringWithFormat:@"age is %i and no is ",self.age,self.no]; //    return str; //} @end

main:

#import <Foundation/Foundation.h> #import "Student.h"  int main(int argc, const char * argv[]) {      @autoreleasepool {                  Student * student=[[[Student alloc] initWithAge:20 andWithNo:1] autorelease];  //自动释放         NSLog(@"this student age=%i,and no=%i",[student age],[student no]);         NSLog(@"age=%i,no=%i",student.age,student.no);         NSLog(@"%@",student);//打印内存地址         //[student release];//防止内存泄漏,要释放该对象内存     }     return 0; }

结果:

2013-08-02 15:55:34.918 @property[1396:303] this student age=20,and no=1

2013-08-02 15:55:34.919 @property[1396:303] age=20,no=1

2013-08-02 15:55:34.920 @property[1396:303] <Student: 0x100109970>
















本文转自蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366475,如需转载请自行联系原作者

相关文章
|
5天前
|
人工智能 自然语言处理 测试技术
【阿里云官方】入门用户搭建OpenClaw云端分步操作手册
阿里云官方推出的OpenClaw智能助理,基于通义千问大模型,提供六大核心场景支持:超级助理、内容创作、股票分析、一人团队、开发助手与海外运营。零代码3分钟快速部署,安全可靠、开箱即用,助力开发者等群体提效降本、加速业务增长。(239字)
|
canal 缓存 NoSQL
【后端面经】【缓存】33|缓存模式:缓存模式能不能解决缓存一致性问题?-03 Refresh Ahead + SingleFlight + 删除缓存 + 延迟双删
【5月更文挑战第11天】Refresh Ahead模式通过CDC异步刷新缓存,但面临缓存一致性问题,可借鉴Write Back策略解决。SingleFlight限制并发加载,减少数据库压力,适合热点数据。删除缓存模式在更新数据库后删除缓存,一致性问题源于读写线程冲突。延迟双删模式两次删除,理论上减少不一致,但可能降低缓存命中率。选用模式需权衡优劣,延迟双删在低并发下较优。装饰器模式可用于实现多种缓存模式,无侵入地增强现有缓存系统。
547 2
|
负载均衡 Java 调度
【Spring Cloud系列】- Ribbon详解与实战(上)
【Spring Cloud系列】- Ribbon详解与实战
410 1
|
开发框架 JavaScript 前端开发
新一代组件/库构建工具 father 4 RC 发布啦 🎈
新一代组件/库构建工具 father 4 RC 发布啦 🎈
1026 0
新一代组件/库构建工具 father 4 RC 发布啦 🎈
|
Web App开发 XML 移动开发
通过 Doctype 启用浏览器模式 【已翻译100%】(2/2)
doctype嗅探(也叫doctype转换) 现代浏览器使用doctype嗅探来决定text/html文档的引擎模式。这意味着模式的选择是基于HTML文档开始的文档类型声明(或缺少)。(这不适于使用XML文档类型的文档。
1780 0
|
5天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
8553 37
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
4天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
5天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
634 3
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图