首页技术property属性 position属性

property属性 position属性

编程之家2026-06-28868次浏览

大家好,今天来为大家解答property属性这个问题的一些问题点,包括position属性也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

property属性 position属性

Attribute和Property的区别

property是指类向外提供的数据区域。

而attribute则是描述对象在编译时或运行时属性的,分为固有型和用户自定义型,其中用户自定义型可以利用Reflection在运行期获取。

这两者是有本质区别的。

资料上说二者一个是service的属性,而另一个是interface的。

第一种好象更准确,摘要如下:

在很多人的脑海中,Attribute就是类的属性,Property呢?好像也是类的属性?因此有很多人不加区别的统一称为类的属性,尤其是在写中文文章的时候。这种心理是典型的鸵鸟心态,眼不见为净。其实稍微用脚想一下就知道,事实肯定不是这样的,UML中既然发明了这两个术语,显然不是用来冗余的。它们之间肯定有着千丝万缕的联系与区别。

property属性 position属性

各种各样的面向对象语言、各种组件技术、模板技术、Web Service技术,其中大部分涉及到了“属性”这个概念,而其英文术语则常常是Attribute、Property或者Field。很多人一概称之为“属性”,有的地方确实可以不加区分,但有的地方却是差之毫厘、谬以千里。我对于这些纷纷扰扰的技术和术语也很苦恼,但是我们至少可以通过UML中的这两个术语的解释找到一个可以参考的标准。无论如何,UML是面向对象技术的集大成者和事实上的标准。

很客观的说,UML1.4中对于这两个术语并没有很清晰的定义,但是其区别还是显而易见的。Attribute应该是UML1.4中的宠儿,而Property连一个单独的术语都没有捞到。谁也没想到在UML2.0中风云突变,Attribute从类图中消失了,而Property堂而皇之入主中原。

1。4中 Attribute是与Classifier相关联的术语,它比Property的影响范围要小。Class是Classifier的子类,因此Attribute也可以表示Class的属性。从上面的定义还可以看出,Attribute可以是Classifier的实例的命名的槽。对于Class来说,其实例就是Object,Object的槽就是对象的属性值槽。因此,Attribute是可以作为对象的属性的。而Property似乎没有这一层的含义。按MOF(元对象设施,OMG的另一个规范,后面会有详细解释)的模型层次划分,Attribute涉及的模型层从M2到M0,而Property似乎只是M2层的概念。

2。0中 Attribute这里仅仅指一个类元的结构特征,可以将类元的实例联系到一个或者一组具体值。而没有提到实例的槽(slot)等等。我猜想,这是因为UML2.0中已经把Attribute作为Property的一个子集了,所以关于实例的槽(slot)等等的具体赋值方法,都归结到Property的定义中解释了。

另外一点值得注意的是,Attribute的定义来自于术语表,而没有在元模型图中出现。而Property出现在元模型图中,并且都做了详细而具体的解释。这一点可以看出,UML强化Property,弱化Attribute的决心。

Attribute和Property的总结

property属性 position属性

这一节对Attribute和Property作一个小结,基于目前最新的UML2.0规范:

l总体上来说,Attribute是Property的子集,Property会在适当的时机表现为Attribute;

l Property出现在类图的元模型中,代表了Class的所有结构化特征;Attribute没有出现在元模型中,它仅仅在Class的概念中存在,没有相应的语法了;

l Property有详细的定义和约束,而Attribute没有详细的定义,因此也不能用OCL写出其约束。

l Property和Attribute都是M2层的概念。在M1层,它们的实例是具体类的属性;在M0层,它们的实例的实例是具体对象的槽中存储的值。

对于property和attribute这两个名词都叫“属性”的问题,来源于国内it书籍翻译界的疏忽。

其实它们来源于两个不同的领域,attribute属于OOA/OOD的概念,而property属于编程语言中的概念。下面我们来说明它们的异同。

Attribute

Attributes是Microsoft.NET Framework文件的元数据,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。

Property

属性是面向对象编程的基本概念,提供了对私有字段的访问封装,在C#中以get和set访问器方法实现对可读可写属性的操作,提供了安全和灵活的数据访问封装。关于属性的概念,不是本文的重点,而且相信大部分的技术人员应该对属性有清晰的概念。以下是简单的属性

区别

可以说两者没有可比性,只不过我们国家的语言特点才引起的歧异,其实只要记住Attribute是派生于System,Attribute类之下,它的主要作用是描述,比如某为了描述某个方法是来自与外部的dll,

可以写如下代码,这就是一个Attribute,他是一个描述(或者说声明)

[DllImport("User32.dll")]

Attribute也有很多系统的“默认”属性,见下表

预定义的属性

有效目标

说明

AttributeUsage

Class

指定另一个属性类的有效使用方式

CLSCompliant

全部

指出程序元素是否与CLS兼容

Conditional

Method

指出如果没有定义相关联的字符串,编译器就可以忽略对这个方法的任何调用

DllImport

Method

指定包含外部方法的实现的DLL位置

STAThread

Method(Main)

指出程序的默认线程模型为STA

MTAThread

Method(Main)

指出程序的默认模型为多线程(MTA)

Obsolete

除了Assembly、Module、Parameter和Return

将一个元素标示为不可用,通知用户此元素将被从未来的产品

ParamArray

Parameter

允许单个参数被隐式地当作params(数组)参数对待

Serializable

Class、Struct、enum、delegate

指定这种类型的所有公共和私有字段可以被串行化

NonSerialized

Field

应用于被标示为可串行化的类的字段,指出这些字段将不可被串行化

StructLayout

Class、struct

指定类或结构的数据布局的性质,比如Auto、Explicit或sequential

ThreadStatic

Field(静态)

实现线程局部存储(TLS)。不能跨多个线程共享给定的静态字段,每个线程拥有这个静态字段的副本

而Property是指编程过程中的字段,也即类的成员。

如:

private int hour;//定义私有变量表示"小时",外部是访问不到的.}

public int Hour//定义Hour程序接口

{

set{ hour=value;}

get{ return hour;}

ios property 属性有哪些修饰符 有什么作用

1.读写性修饰符:readwrite readonly readwrite:表明这个属性是可读可写的,系统为我们创建这个属性的setter和getter方法。 readonly:表明这个属性只能读不能写,系统只为我们创建一个getter方法,不会创建setter方法 2.setter相关修饰符:assign retain copy setter相关的修饰符表明setter方法应该如何实现 assign:表示直接赋值,用于基本数据类型(NSInteger和CGFloat)和C数据类型(如int, float, double, char等)另外还有id类型,这个修饰符不会牵涉到内存管理。但是如果是对象类型,使用此修饰符则可能会导致内存泄漏或EXC_BAD_ACCESS错误 retain:针对对象类型进行内存管理。如果对基本数据类型使用,则Xcode会直接报错。当给对象类型使用此修饰符时,setter方法会先将旧的对象属性release掉,再对新的对象进行一次赋值并进行一次retain操作 copy:主要用在NSString类型,表示复制内容。系统默认属性是assign。retain是指针的复制,copy是内容的复制 3.原子性修饰符:atomic nonatomic atomic:表示是线程安全的。 nonatomic:表示是非线程安全的,使用此属性性能会提高一些。系统默认是atomic 4.getter和setter修饰符@property(getter= getMethodName, setter= setMethodName) Object*obj;这两个属性修饰符用于设置自定义生成的getter和setter方法名,使用之后将不再使用系统默认的setter和getter方法名。在@property修饰符中可以出现多个修饰符,分别用逗号分隔,但是,在上述修饰符中,1,2,3组中的属性分别之恩那个出现一个,只有4中可以同时出现。 Xcode4.2(iOS sdk4.3和以下版本)和以前的版本用retain和assign Xcode4.3(iOS 5和以上版本)或之后有了ARC用strong和weak assign:用于非指针变量。用于基础数据类型(如NSInteger, CGFloat)和C数据类型(int, float, double, char等),另外还有id类型。记住:前面不需要加*的就用assign retain:用于指针变量。一般用于字符串(NSString, NSMutableString),数组(NSMutableArray, NSArray),字典对象,视图对象(UIView),控制器对象(UIViewController)等 strong类似于retain,weak类似于assign最简单的记忆:使用assign:对基础数据类型(如NSInteger, CGFloat)和C数据类型(int, float, double, char等),另外还有id类型使用copy:对NSString类型使用retain:对其它NSObject和其子类

property什么时候是可数名词,什么时候是不可数名词

property

KK: []

DJ: []

n.

1.财产,资产;所有物[U]

This small house is my only property.

这所小房子是我的唯一财产。

2.房产,地产,房地产[C][U]

He has several properties in this street.

他在这条街上有几笔地产。

With the city developing rapidly, property in the center is becoming more expensive.

这个城市发展迅速,市中心的房地产愈来愈贵。

He has a large property in the county.

他在这个县有一大宗地产。

3.花园住宅[C]

4.特性,性能,属性[C]

He is studying the medicinal properties of wild plants.

他正在研究野生植物的药物特性。

5.道具[P1]

6.所有权,财产权[U]

There is no property in the seashore.

海岸非任何人私有。

property属性的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于position属性、property属性的信息别忘了在本站进行查找哦。

substr函数怎么用(substr函数从后往前截取)什么是函数?初中函数的概念