最近在看java注解这块的东西,一直不明白target中field的说明,我看完下边这篇文章以及其他的帖子之后觉得这里注解里边的field说的是类的成员变量。不知道对不对,反正现在是这样理解的,如果有错误还望指正。
下面是我看到的文章,贴出来,虽然跟我理解的有点不一样,但是觉得说的也在理。
尊重人家的辛勤劳作,我转载的地址:http://blog.csdn.net/iaiti/article/details/38794007
多态在域的问题上是特殊的。我理解不了中文版的书直接叫域,看了英文原版,原版写的是fields,直接翻译虽然没错,但是出问题的变量不是域。特地查了what is the meaning of field in Java?很多人把它看成是由花括号括起来的一个范围。其实框架里面也有一种东西——domain model,这个也叫域,域模型。
然后找到这篇文章
What is a field in java?
A field is an attribute. A field may be a class's variable, an object's variable, an object's method's variable, or a parameter of a function.
'bikes' is a class's variable (class variable) (static field).
'gear' and 'cadence' could be an object's variables (instance variables) (non-static fields).
'speed' is an object's method's variable (local variable).
'newGear' and 'newCadence' are parameters of a function (parameters).
field,域是一种属性,可以是一个类变量,一个对象变量,一个对象方法变量或者是一个函数的参数。(补充,class‘s variables,类的实例变量和静态变量称为class's variables,类属变量,也称类变量或数据域,其实翻译成属性也可以,类属性,听起来不会怪怪的,来自百度百科)。
bikes是一个类变量(静态域)。
gear 和 cadence 是对象变量(实例变量)(非静态域)。
(这里有一点点小矛盾,其实这样照百科这样说,那么bikes、gear和cadence都是类变量,bikes是类变量中的静态变量,而gear和cadence是类变量中的实例变量。)
speed是对象方法的变量(局部变量)。
(看到没有,local variable,java没有出现gobal variable,全局变量,要说的话类变量的作用范围和全局变量一样,只不过不那样叫)。
newGear和newCadence是函数(方法)的参数(参数)。