对于简单的构造函数和setter ,Java中的参数是否有标准的可接受约定?
(我已经看到了C++的答案,但两个社区的实践经常不同)
假设我有一个带有foo字段的C类.
我经常看到以下三个选项:
public C(Type foo_)
{
foo = foo_;
}
public void setFoo(Type foo_)
{
foo = foo_;
}
Run Code Online (Sandbox Code Playgroud)
public C(Type foo)
{
this.foo = foo;
}
public void setFoo(Type foo)
{
this.foo = foo;
}
Run Code Online (Sandbox Code Playgroud)
public C(Type bar)
{
this.foo = bar;
}
public void setFoo(Type bar)
{
this.foo = bar;
}
Run Code Online (Sandbox Code Playgroud)
我倾向于使用2,但我想知道什么是正确的做法.
coo*_*ird 20
我也看到选项2是最常见的选项:
int importance;
public int getImportance()
{
return importance;
}
public void setFoo(int importance)
{
this.importance = importance;
}
Run Code Online (Sandbox Code Playgroud)
Eclipse和Netbeans等IDE将自动以上述格式编写getter和setter.
使用此方法有一些优点:
不在_字段名称中使用下划线()字符 - 不建议将非下划线用于非常量字段名称.
除了常量的标识符之外,不建议在标识符中使用下划线字符.
The Java Tutorials 的Variables页面提到了关于下划线的以下内容:
如果您的变量存储一个常量值,例如
static final intNUM_GEARS = 6,约定会略有变化,将每个字母大写并用后突字符分隔后续单词.按照惯例,下划线字符从未在别处使用过.
(重点补充.)
由于字段名称不是常量,根据该页面上的内容,不应在非常量字段中使用下划线.
IDE可以根据方法参数的名称自动添加Javadoc注释,因此在参数列表中使用该字段的名称将是有益的.
以下是自动生成的Javadoc的示例:
/**
*
* @param importance <-- Parameter name in Javadoc matches
* the parameter name in the code.
*/
public void setImportance(int importance)
{
this.importance = importance;
}
Run Code Online (Sandbox Code Playgroud)
让Javadoc反映字段的名称还有另一个好处 - 具有代码完成功能的IDE可以使用Javadoc中的字段名称来自动填写参数名称:
// Code completion gives the following:
this.getImportance(importance);
Run Code Online (Sandbox Code Playgroud)
赋予字段名称和参数名称含义将使您更容易理解参数实际表示的内容.
这些是我目前可以提出的一些优点,我相信它很可能是在Java中命名参数的最常用方法.
| 归档时间: |
|
| 查看次数: |
23252 次 |
| 最近记录: |