当前位置: 首页 > 面试题库 >

Java构造函数和简单设置器中参数命名的最佳实践

单于越
2023-03-14
问题内容

对于直接构造函数和设置 程序的Java 参数,是否存在标准可接受的约定?

(我已经看到了C ++的答案,但是两个社区之间的实践通常有所不同)

假设我有一个带有foo字段的C类。

我通常看到以下三个选项:

1)使用带下划线的实际字段名称:

public C(Type foo_)
{
   foo = foo_;
}

public void setFoo(Type foo_)
{
   foo = foo_;
}

2)使用实际的字段名称,只需在设置中使用“ this”:

public C(Type foo)
{
   this.foo = foo;
}
public void setFoo(Type foo)
{
   this.foo = foo;
}

3)完全不一致的事情,例如:

public C(Type bar)
{
   this.foo = bar;
}
public void setFoo(Type bar)
{
   this.foo = bar;
}

我倾向于使用2,但我想知道什么是正确的做法。


问题答案:

选项二是最常见的。在Java中,使用无意义的名称前缀或后缀来区分实例变量与局部变量中的参数是不明智的做法。但是名称本身并没有约定。使用任何名称使代码最容易理解。



 类似资料:
  • 问题内容: 有一些类似的话题,但我找不到一个有足够答案的。 我想知道Java中构造函数重载的最佳实践是什么。关于这个问题我已经有了自己的想法,但我想听听更多的建议。 我指的是简单类中的构造函数重载和继承已重载类(意味着基类具有重载构造函数)时的构造函数重载。 问题答案: 虽然没有“官方指导方针”,但我遵循亲干原则。使重载构造函数尽可能简单,最简单的方法是它们只调用this(…)。只需要检查一次参数

  • 构造函数也可以像任何其他方法一样重载,我知道这一事实。由于一项任务,我决定使用具有多个构造函数的抽象超类: 抽象超类: 为了访问这些构造函数中的每一个,我还需要子类中的多个构造函数。 泡泡ort.java: 在这种情况下,子类的每个构造函数都立即调用超类的构造函数。我突然想到,我可以再次引用自己的构造函数并传递值: 这样做将允许我省略抽象超类中的3个重载构造函数,但会强制每个子类遵循相同的模式。

  • 实际上,我不明白无参数构造函数和默认构造函数的区别是什么。 在创建名为cFrame的Test对象时,是否调用此类的默认构造函数?

  • 问题内容: 其实我不明白,无参数构造函数和默认构造函数有什么区别。 创建名为cFrame的Test对象时,这是否调用此类的默认构造函数? 问题答案: 该构造函数是一个无参数的构造函数,代表您的Java编译器插入; 它包含对(not )的调用,这是默认行为。如果实现任何构造函数,则不再收到默认的构造函数。 JLS-8.8.9。默认构造函数说(部分), 如果一个类不包含构造函数声明,则隐式声明一个没有

  • Kotlin中的参数与Java中有些不同。如你所见,我们先写参数的名字再写它的类型: fun add(x: Int, y: Int) : Int { return x + y } 我们可以给参数指定一个默认值使得它们变得可选,这是非常有帮助的。这里有一个例子,在Activity中创建了一个函数用来toast一段信息: fun toast(message: String, length: I