Namensgebung

jason23

Grünschnabel
Hallo,
für was steht das kleine "f" vor den Variablennamen, bzw. das "_" dahinter ?

public class ProductsTable extends ULCTable
{
private SortedTableModel fSortedTableModel;
private ProductsTableModel fProductsTableModel;
private OnlineShop fOnlineShop;
...
..
.
}

bzw.

public ReportingPanel(Mediator appMediator)
{
super(true);

mediator_ = appMediator;
...
..
.
}

Gruss jason23
 
Das mußt du den Programmierer fragen der die Software geschrieben hat ... :p

Normalerweise, zumindest versuche ich das, werden Variablen mit sprechenden Namen ausgestattet. Ich persönlich vermeide Zeichen wie "_" für meine lokalen Variablen (Ausnahmen sind statische Variablen).

Gruß
TOM
 
Hmm.... Also in grösseren Projekten/Klassen benenne ich die Instanzvariablen meistens zu Beginn mit einem _

Somit gibt's keine Verwechslungen mit den lokalen Variablen... Aber das underscore hinten an die Variable anzuhängen habe ich auch noch nie gesehen...

Oft bezeichnet der erste Buchstabe einer Variable auch ihr Typ. Also z.B. s für ein String, i für ein int, f für ein float usw. -> sName, iAlter...

In diesem Beispiel sehe ich nicht für was das f steht.

Wie Tom schon gesagt hat: das weiss wohl nur der Entwickler selber...

Gruss
ben
 
Hallo,
In C++ werden oft die Attribute einer Klasse mit einem Untertrich davor versehen: "_intTest"
Das haben ich jetzt auch schon oft in Java gesehen.
Dann kann man die Attribute schön über set-Methoden setzen!
set ( int intTest){
_intTest = intTest }

Ich habe es aber auch schon genau umgekehrt herum gesehen! (Beispiel: wenn man mit Poseidon aus einem Klassendiagramm Code generiert)
set (int _intTest) {
intTest = _intTest}

Ich weiss aber nicht ob es einen Standart in Java gibt (ich verwende die 1. Methode)
Viele Grüsse munuel
 
>In C++ werden oft die Attribute einer Klasse mit einem Untertrich davor versehen: "_intTest"
>Das haben ich jetzt auch schon oft in Java gesehen.


Höchstens von Programmierern, die aus der C/C++ Schiene kommen. Es entspricht eigentlich nicht den Konventionen.


>Dann kann man die Attribute schön über set-Methoden setzen!
>set ( int intTest){
>_intTest = intTest }


Das kann man auch anders. Auch anders, als ich z.B. immer wieder sehe
Code:
public void setValue(int value){
 this.value = value;
}

Da bevorzuge ich z.B.
Code:
public void setValue(int newValue){
 value = newValue;
}

>Ich habe es aber auch schon genau umgekehrt herum gesehen!
>(Beispiel: wenn man mit Poseidon aus einem Klassendiagramm Code generiert)
set (int _intTest) {
intTest = _intTest}


Aua!


>Ich weiss aber nicht ob es einen Standart in Java gibt (ich verwende die 1. Methode)


Es gibt Code Conventions. Wer unbedingt Membervariablen kennzeichnen will, kann das ja z.B. mit einem m_ als Prefix erledigen und dann evtl. wie oben bereits erkannt mit einem Indikator fortsetzen:

m_bHasError -> member-boolean (b)
m_sName -> member-String (s)
m_iCounter -> member-int (i)
m_cMyObject -> member-Class (c) für Fälle/Objekte, die sich nach dem obigen Schema nicht abbilden lassen.
 
Hallo!

Ich denke, mit den heutigen modernen IDE's (Eclipse, Netbeans, IntelliJ IDEA, etc.) hat die ungarische Notation ausgedient. Ungarische Notation hat man frueher dazu verwendet um z.Bsp. den Typ (int, double, String, ...) oder den Scope (...lokale Variable, member Variable) zu annotieren. Heut zu Tage bieten die verschiedenen IDE's an diesen Stellen umfangreiche Unterstuetzung, so dass diese umstaendliche und Teilweise sehr verwirrende Notation in der Regel nicht mehr notwendig ist.

Hierzu vielleicht interessant:
How to write unmaintainable Code: http://mindprod.com/jgloss/unmain.html
Siehe auch hier: http://www.joelonsoftware.com/articles/Wrong.html

Da bevorzuge ich z.B.
Code:
Code:
  public void setValue(int newValue){
    value = newValue;
   }
... wer schreibt denn heute noch solch naiven getter/setter Methoden selber?
(Eclipse -> source -> Generate Getter and Setter ?! oder alt+shift+s, r).
Damit siehts wenigstens ueberall gleich aus.

Btw. was machst du denn wenn du ein Attribut namens newestEntry (okay latestEntry wäre vielleicht besser) hast?

Schreibst du dann
Code:
  public void setNewestEntry(Object newestEntryNew) {
  		newestEntry = newestEntryNew;
  	}
Pfui...

da finde ich doch das gute alte (natürlich generierte) Konstrukt
Code:
  	public void setNewestEntry(Object newestEntry) {
  		this.newestEntry = newestEntry;
  	}
viel angenehmer zu lesen und auf jeden Fall konform zu dem Coding Standards der meisten anderen Java Entwicklern dieser Welt... ;-)


Gruss Tom
 
Zurück