博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两个被混淆的单词property和attribute
阅读量:4587 次
发布时间:2019-06-09

本文共 974 字,大约阅读时间需要 3 分钟。

在这里,有必要把Attribute和Property这两个词仔细地辨别一下。

这两个词的混淆由来已久。混淆的主要原因就是大多数中文译本里既把Attribute译为“属性”,也把Property译为“属性”。其实,这两个词所表达的不是一个层面上的东西。
Property 属于面向对象理论范畴。在使用面向对象思想编程的时候,我们常常需要对客观事物进行抽象,再把抽象出来的结果封装成类,类中用来表示事物状态的成员就是 Property。比如我要写一个模拟赛车的游戏,那么必不可少的就是对现实汽车的抽象。现实中的汽车身上会带有很多数据,但在游戏中我可能只关心它的长 度、宽度、高度、重量、速度等有限的几个数据,同时,我还会把汽车“加速”、“减速”等一些行为也提取出来并用算法模拟——这个过程就是抽象(结果是 Car这个类)。显然,Car.Length、Car.Height、Car.Speed等表达的是汽车当前处在一个什么状态,而 Car.Accelerate()、Car.Break()表达的是汽车能做什么。因此,Car.Length、Car.Height、 Car.Speed就是Property的典型代表,将Property译为“属性”也很贴切。总结一句话就是:Property(属性)是针对对象而言 的。
 Attribute则是编程语言文法层面的东西。比如我有两个同类的语法元素A和B,为了表示A与B不完全相同或者A与B在用法上有些区 别,这时候我就要针对A和B加一些Attribute了。也就是说,Attribute只于语言层面上的东西相关——与抽象出来的对象没什么关系。因为 Attribute是为了表示“区分”的,所以我喜欢把它译为“特征”。C#中的Attribute就是这种应用的典型例子——我们可以为一个类添加 Attribute,这个类的类成员中有很多Property——显然Attribute只是用来影响类在程序中的用法而Property则对应着抽象对 象身上的性状,它们根本不是一个层面上的东西。

 

转自:http://liutiemeng.blog.51cto.com/120361/129504

转载于:https://www.cnblogs.com/Antech/archive/2013/04/20/3033145.html

你可能感兴趣的文章
JAVA array,map 转 json 字符串
查看>>
2017-12-27练习
查看>>
NET设计规范(二) 命名规范
查看>>
VMware 9.0.1安装Mac OS X Mountain Lion 10.8.2
查看>>
SSL延迟
查看>>
android新手关于左右滑动的问题,布局把<android.support.v4.view.ViewPager/><ImageView/> 放在上面就不行了。...
查看>>
深入理解DIP、IoC、DI以及IoC容器
查看>>
赋值文件
查看>>
Vue 数组 字典 template v-for 的使用
查看>>
蓝牙模块选择经验谈
查看>>
java中==和equals
查看>>
CCActionPageTurn3D
查看>>
python random
查看>>
esp32-智能语音-cli(调试交互命令)
查看>>
netty与MQ使用心得
查看>>
jquery 实现3d切割轮播图
查看>>
学习spring cloud 笔记
查看>>
字符串截取,SubString
查看>>
Android: 网络随时需要在3G和Wifi切换,网络程序需要注意
查看>>
ajax调用servlet
查看>>