2016-06-09 4 views
1

Ich frage mich, ob es eine Namenskonvention für Variablen gibt, die ein reserviertes Wort darstellen. Zum Beispiel habe ich eine Klasse namens Video und dieses Video muss einen booleschen Wert enthalten, der definiert, ob es privat ist oder nicht. Da private boolean private; nicht funktionieren würde, frage ich mich, was die beste Option war.Namenskonvention für Variablen, um die Verwendung reservierter Wörter zu vermeiden

  • mPrivate
  • _private
  • IsPrivate
  • notPublic
  • ...

Irgendwelche Vorschläge?

+0

Ich habe für einen Variablennamen clazz für Klasse gesehen –

+1

Warum es nicht nennen 'restricted'? Ansonsten würde ich mit 'nonPublic' gehen. – hotzst

+0

Alles außer ungarische Notation. – Kayaman

Antwort

3

Wenn Sie einen Zwei-Wort-Namen denken, Sie sind frei von jedem Konflikt:

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

plus, werden sie oft besser lesbar sein.

Der einzige häufige Namenskonflikt, den ich regelmäßig sehe, ist der oben erwähnte class ->clazz.

0

Setzen Sie einfach, was die Instanzvariable darstellt. Das heißt, Ihre Klasse ist Video und die Instanzvariable, die Sie haben wollen, ist "privat", was Sie nicht verwenden können, also nennen Sie es einfach so wie privateVideo. Also Ihr Getter und Setter wären so etwas wie isPrivateVideo sein, setPrivateVideo

2

isPrivate klingt gut genug für Ihre Situation. Ich neige dazu, immer meine boolean Variablen so zu nennen:

isSomething

hasSomething

etc ..

1

Da es ein boolean ist ich denke, mit isPrivate ist die beste Option, da es bedeutet, dass Die Variable hat einen booleschen Wert. Es ist auch besser als notPublic, da der "wahre" Wert den Namen besser widerspiegelt.

mPrivate sieht wie ein Name von etwas Private Objekt aus, das Sie haben, also würde ich davon weg bleiben. So zum Schluss denke ich isPrivate ist Ihre beste Wahl

1

In diesem Fall könnte es Overkill sein, eine Enum einzuführen, wenn True/False die einzigen Entscheidungen sind. (Im folgenden Beispiel das Problem mit reservierten Worten wird durch die Verwendung Großbuchstaben Wörter im Enum vermieden.)

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); 
} 
} 
Verwandte Themen