避免使用保留字的变量命名约定

Naming convention for variables to avoid using reserved words

我想知道是否有代表保留字的变量的命名约定。例如,我将 class 称为 Video,并且该视频必须包含一个布尔值来定义它是否是私有的。 由于 private boolean private; 行不通,我想知道最好的选择是什么。

有什么建议吗?

只要把实例变量代表什么就行了。即您的 class 是视频,您想要的实例变量是 "private",您不能使用它,所以只需将其命名为 privateVideo。所以你的 getter 和 setter 会像 isPrivateVideo, setPrivateVideo

如果你能想到一个两个单词的名字,你就不会发生任何冲突:

  • private -> isPrivate
  • new -> newItem
  • ...

此外,它通常更具可读性。

我经常看到的唯一常见名称冲突是上面提到的 class -> clazz

isPrivate 听起来足以满足您的情况。我总是倾向于这样命名我的布尔变量:

是某事

有东西

等..

因为它是 boolean 我认为使用 isPrivate 是最好的选择,因为它意味着变量是布尔值。它也比 notPublic 更好,因为 "true" 值更好地反映了名称。

mPrivate 看起来像是您拥有的某个 Private 对象的名称,所以我会远离它。 所以总而言之我认为isPrivate是你最好的选择

在这种情况下,如果 true/false 是唯一的选择,那么引入枚举可能有点矫枉过正。 (在下面的例子中,保留字的问题通过在枚举中使用大写字来避免。)

public class Video {
public enum Access {
    PRIVATE, RESTRICTED, PUBLIC;
}

private String name;
private Access access;

public Video(String name, Access access) {
    this.name = name;
    this.access = access;
}

public static void main(String[] args) {
    new Video("Alien", Access.PUBLIC);
    new Video("Home movie", Access.PRIVATE);
}
}