Java getters和setter只是方法吗?

时间:2016-04-13 15:06:43

标签: java

以下是真的:Java getter和setter只是方法。

我知道它们被实现为操纵或获取私有...属性/字段的值。但是可以称之为方法吗?

6 个答案:

答案 0 :(得分:2)

是的,没关系,他们只是方法!

答案 1 :(得分:1)

从技术上讲,从语言和VM的角度来看,是的,它们只是方法。

然而,一些图书馆和框架认识到它们的特殊性。例如,JPA可用于通过注释字段或方法来映射“属性”。 Beans Binding库使用它们来访问属性,所以如果你在某个对象上有var chart = document.getElementById("chart-canvas-id"); var bmp = new createjs.Bitmap(chart); stage.addChild(bmp); stage.update(); 对,那么你可以将“text”属性绑定到某个其他对象的其他属性(你仍然必须这样做)虽然getText() / setText()魔术。但这只是一种“配置约定”现象与反思的力量相结合。

答案 2 :(得分:0)

根据JLS

  

方法声明可以调用的可执行代码,将固定数量的值作为参数传递。

这个标准也满足于吸气者和制定者;所以我们可以说是java语言中的“方法”。

答案 3 :(得分:0)

幸运的是,我能够在谷歌中推送Craig Larman的“应用UML和模式”book部分。如引用

Accessing methods retrieve(accessor method) or set(mutator method)
attributes. In some languages such as Java it is a common idiom to 
have an accessor and mutator for each attribute, and to declare all
attributes private(to enforce data encapsulation). The methods are 
excluded in the class diagram because of the high noise-to-value ratio
they generate."

答案 4 :(得分:0)

Java Getters和Setters是访问器方法。所以,是的,它们是方法。

许多程序员(Java或其他程序员)可能会为所有私有字段不断编写getXXX()setXXX(type t)而感到恼火,特别是如果它们基本上只是一行方法。对于这种情况,有一些注释库(如Lombak)通过元编程和Java注释和反射的力量生成这些库。

但是,明确编写getter / setter的原因有很多。可以找到一个好的列表here。但我也非常喜欢this answer

答案 5 :(得分:0)

是的,基本上他们是方法。 Java方法的标准定义如下:

  

方法是一组代码,通过名称引用,只需使用方法名称即可在程序中的任何位置调用(调用)。

     

- https://mathbits.com/MathBits/Java/Methods/Lesson1.htm

因此,您可以将方法视为类本身中的小程序,这些方法允许我们完成特定任务,这也正是getter和setter所做的。