Welcher Name? paintsXY(), isPaintXY(), isPaintingXY() .

Status
Nicht offen für weitere Antworten.

-frank

Bekanntes Mitglied
ich habe ein problem bei der namenswahl bei methoden. dazu habe ich mal etwas gegooglet:

This is the naming convention for boolean methods and variables used by Sun for the Java core packages.
Using the is prefix solves a common problem of choosing bad boolean names like status or flag. isStatus or isFlag simply doesn't fit, and the programmer is forced to chose more meaningful names.

Setter methods for boolean variables must have set prefix as in:

void setFound(boolean isFound);
There are a few alternatives to the is prefix that fits better in some situations. These are has, can and should prefixes:

boolean hasLicense();
boolean canEvaluate();
boolean shouldAbort = false;

quelle: http://geosoft.no/development/javastyle.html#General

Use the prefixes get and set for getter and setter methods. Getter methods merely return the value of a instance variable; setter methods change the value of a instance variable. For example, use the method names getBalance and setBalance to access or change the instance variable balance.

If the method returns a boolean value, use is or has as the prefix for the method name. For example, use isOverdrawn or hasCreditLeft for methods that return true or false values. Avoid the use of the word not in the boolean method name, use the ! operator instead.
For example, use !isOverdrawn instead of isNotOverdrawn.

quelle: http://www.cwu.edu/~gellenbe/javastyle/method.html

---

mir ist nun weiterhin nicht ganz klar, wie ich getter methoden für boolean variablen benennen sollen, wenn diese keinen zustand à la "isReady()" oder "isVisible()" beschreiben, sondern etwas, was die Klasse tut.

angenommen ihr habet ein speziellen GUI objekt, das ein fussball-feld darstellt und ihr wollt ein/auschalten können, ob das spielfeld gezeichnet wird.

paintsField()?
isPaintField()?
isPaintingField()?
...

und nennt ihr dann die variable und die setter Methode entsprechend?

oder würdet ihr die methode ganz umbenennen? etwa in setVisibleField() und hasVisibleField() oder sowas wie
setFieldIsVisible() und isFieldVisible()?

stoße auf auf solche bze. ähnliche situationen, wo mir dann nicht ganz klar ist, wie ich die methode am besten nennen sollte.
 

kleiner_held

Top Contributor
Code:
private boolean fieldVisible;
public boolean isFieldVisible() {...
public void setFieldVisible(boolean fieldVisible) {...

// oder

private boolean fieldPainted;
public boolean isFieldPainted() {...
public void setFieldPainted(boolean fieldPainted) {...

Ich halte es fuer wichtig, dass die Namenskonventioen der JavaBeans eingehalten werden, damit man dann, wenn man mal ein Framework ala BeanUtils verwendet, nicht in Verlegenheit kommt alles wieder umzubenennen.

PS: an sich finde ich es absolut besch**, dass Sun bei den Bean Konventionen fuer boolean eine Extrawurst eingefuehrt hat.
 

Campino

Top Contributor
setFieldVisible() und isFieldVisible(). Wobei ich annehme, dass die Klasse das Field ist, man also mit isVisible() bzw. setVisible() auskommen würde. Da die Methode zur Spielfeld-Klasse gehört, ist klar, dass es sich auf das Field bezieht.
 

-frank

Bekanntes Mitglied
danke euch beiden!

Campino hat gesagt.:
setFieldVisible() und isFieldVisible(). Wobei ich annehme, dass die Klasse das Field ist, man also mit isVisible() bzw. setVisible() auskommen würde. Da die Methode zur Spielfeld-Klasse gehört, ist klar, dass es sich auf das Field bezieht.

ja, in dem fall hätte man sicher eine eigene klasse für das feld. es könnte aber für andere objekte trotzdem interessant sein, ob das feld angezeigt wird (warum auch immer - ist ja nur ein beispiel) und dann hätte man eine methode wie

Code:
public boolean isFieldVisible() {
    return getField().isVisible();
}

okay, also is + subjekt + verb bzw. eigenschaft. und keine -ing form.

also würdet ihr sagen, dass es generell besser ist, wenn man sich an ein schema hält als wenn man nur drauf schaut, dass es gut klingt, oder? (ich persönlich hätte ja auch nix dagegen, wenn alles nach get/set-schema benannt wäre...)
 

kleiner_held

Top Contributor
Ein einheitliches Schema im Projekt sollte man schon einhalten - ansonsten ist die Namenswahl allgemein ein Ausdruck des persönlichen Stils. Man sollte versuchen aussagekräftige Namen zu finden, aber naja da gibt es auch unterschiedliche Prioritäten. Ich verwende bei Klassen lieber lange Bezeichner um kein Missverständniss aufkommen zu lassen, andere sagen, dass sie mit einem 40 Zeichen langen Klassennamen nix anfangen können. Bei Variablen- und Methodennamen ist das entsprechend.
Das isXYZ() Schema wurde auch nur deswegen eingeführt, weil boolean Attribute oft in einer Bedingung abgefragt werden und ein if(frame.isVisible()) ist halt eingängiger als if(frame.getVisible()). Ich finde es trotzdem blöd :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
B Welcher Datentyp für sehr große Zahlenbereiche? Allgemeine Java-Themen 1
B Scanner erkennt keinen Text in Textdatei, obwohl welcher drinsteht Allgemeine Java-Themen 10
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
O Java-Obfuscator, welcher einzelne Methoden, Klassen und Ordnerstrukturen ausnehmen kann. Allgemeine Java-Themen 1
S Welcher Schleifen type für eine Berechnung Allgemeine Java-Themen 7
M Erkennen, in welcher Methode sich die VM befindet Allgemeine Java-Themen 6
F Verschlüsseln, aber welcher Algo Allgemeine Java-Themen 29
L Entscheiden, welcher Code ausgeführt werden soll Allgemeine Java-Themen 7
O Thread beenden egal welcher Zustand? Allgemeine Java-Themen 8
S HTML => DOM - Welcher Parser für meine Zwecke? Allgemeine Java-Themen 3
J Drei Bedingungen -> 9 Fällen, welcher Ansatz besser Allgemeine Java-Themen 4
X Welcher Java Decompiler? JAD, JD-GUI?? Allgemeine Java-Themen 14
H2SO3- welcher writer kann fileencoding UND append? Allgemeine Java-Themen 2
G Reportgenerator: Welcher? Allgemeine Java-Themen 16
T Welcher Server? JSP und Client-Anwendung Allgemeine Java-Themen 4
G java als dienst, welcher auf tastatureingaben reagiert Allgemeine Java-Themen 6
G Auslesen mit welcher Java-Version Anwendung kompiliert wurde Allgemeine Java-Themen 2
B Java Buch zu welcher Version empfehlenswert? Allgemeine Java-Themen 6
V Neues Objekt anlegen, welcher Typ? Allgemeine Java-Themen 2
E In welcher Datei wird classpath gesetzt? Allgemeine Java-Themen 9
F Welcher Datentyp in welchen casten? Allgemeine Java-Themen 11
D Debugging? an welcher Stelle? Allgemeine Java-Themen 3
G Ab welcher Dateigrösse lohnt Kompression? Allgemeine Java-Themen 2
G 2 Mäuse angeschlossen, aber von welcher kam der Klick? Allgemeine Java-Themen 5
G Aus welcher Klasse wurde Methode aufgerufen Allgemeine Java-Themen 24
G Name des aktuellen Programms Allgemeine Java-Themen 7
L Ist ein string ein erlaubter variabel name? Allgemeine Java-Themen 2
S Variable als Objekt Name Allgemeine Java-Themen 3
J Apache POI - No external workbook with name Allgemeine Java-Themen 5
Neumi5694 Task-Name unter Windows Allgemeine Java-Themen 4
1 Name Generator für Videos Allgemeine Java-Themen 1
E Webservice zur Konvertierung IBAN/BIC -> Bank Name Allgemeine Java-Themen 1
P Name der Parent Klasse abfragen Allgemeine Java-Themen 8
D Name eines Nicht-String Objekts ausgeben Allgemeine Java-Themen 4
S Name einer Musikdatei auslesen und ändern Allgemeine Java-Themen 8
J IMDB Name und Bewertung auslesen Allgemeine Java-Themen 10
J .txt erstellen, nach name der vorhergehenden txt Allgemeine Java-Themen 7
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
P ActionListener / Label Name auslesen Allgemeine Java-Themen 2
S java -jar name.war. Wie Extraktionspfad umbiegen? Allgemeine Java-Themen 2
S [JUnit] Name von TestCase bekommen Allgemeine Java-Themen 4
D Passende Name für Methoden finden Allgemeine Java-Themen 3
Dit_ Registry, Preferences | Name des Knotens ändern. Allgemeine Java-Themen 2
E String name in class convertieren Allgemeine Java-Themen 4
E Variablen anderer Klassen auslesen (nur Name bekannt) Allgemeine Java-Themen 4
S Konstrukt Sinn, Zewck und Name Allgemeine Java-Themen 6
Ark Name für Funktion gesucht Allgemeine Java-Themen 5
D variabler Listen name Allgemeine Java-Themen 3
M Name der Swing Komponente Allgemeine Java-Themen 3
C Name einlesen und Programm starten Allgemeine Java-Themen 2
S "Guessed User name" bei Tomcat belegen Allgemeine Java-Themen 2
J Name eines Strings durch einen String festlegbar? Allgemeine Java-Themen 2
M Name von Wochentagen vergleichen Allgemeine Java-Themen 3
M Zugriff auf Objekt, Name in Variable Allgemeine Java-Themen 3
V Objekt einer Klasse, deren Name nur als String vorhanden Allgemeine Java-Themen 4
D Name der Java-Applikation Allgemeine Java-Themen 2
A Class File zur Laufzeit laden ohne den Binary Name zu kennen Allgemeine Java-Themen 11
G jar-Name einer Klasse Allgemeine Java-Themen 9
O String übergeben ist name eines JTextField wie zugreifen Allgemeine Java-Themen 9
S Name der ausführenden jar-Datei abfragen Allgemeine Java-Themen 11
Y fehler: wrong name serverA Allgemeine Java-Themen 3
F Parameter Name herausfinden Allgemeine Java-Themen 25
H Package name aus Class-File auslesen Allgemeine Java-Themen 11
P Duplicate name in Manifest Allgemeine Java-Themen 6
J Name des aktuell aktiven Windows-Fensters abfragen? Allgemeine Java-Themen 4
T JUSB - Name des USB Endgerätes zurückgeben Allgemeine Java-Themen 2
L Systeminformationen (PC-Name und Kennwort) auslesen Allgemeine Java-Themen 9
B Name eines komischen Klassenkonstruktes Allgemeine Java-Themen 14
S Sortierung einer Collection nach dem Attribut "name&quo Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben