2012-04-27 14 views
10

Ich hatte vor 2 Jahren mit der Programmierung in Java begonnen. Senioren in unserem Projekt hatten mir damals geraten, 'obj' an den Namen des Objekts anzuhängen, das gerade erstellt wird.Namenskonvention für Objekte in Java

Ex:

Car objCar = new Car("Ferrari"); 

Hier objCar ist was spreche. Aber viele bei Stack Overflow hatten dagegen gestimmt und jetzt finde ich, dass dies nicht die Art und Weise sein sollte, wie ein Objekt benannt werden sollte. Ich bin mit Namenskonventionen klar, wenn Sammlungen verwendet werden, bin aber verwirrt, wenn Objekte allgemeiner Klassen erstellt werden.

Kann jemand etwas Licht darauf werfen?

+2

Alles in Java außer primitiven Typen sind Objekte. Würden Sie 'obj' jedem Variablennamen voranstellen? – Gabe

+0

dieses 'obj ...' Zeug wenn aus alten Zeiten. –

+1

Wenn es für Sie einfacher ist, Ihr Attribut zu identifizieren ... Warum nicht mit "obj" – Neifen

Antwort

25

Rufen Sie einfach car. Hungarian notation wird nicht von Sun/Oracle verwendet.

Benennen Sie Ihre Variablen in einer Weise, die ihre Verwendung beschreibt. Sie müssen den Typ im Variablennamen jedoch nicht angeben. Sie haben den Typ bereits in der Variablendeklaration angegeben. IDEs zeigen Ihnen den Typ der Variablen an, wenn Sie mit der Maus darüber gehen, damit Informationen immer verfügbar sind.

Sie sollten lowercaseStartingCamelCase für Variablennamen und Methodennamen und UppercaseStartingCamelCase für Klassennamen verwenden.

Wenn Sie lesen möchten, wie Sun/Oracle Dinge tun, können Sie ihre Code Conventions for the Java Programming Language lesen.

+0

Welche Standards werden bei der Benennung der Objekte eingehalten? Nur der Klassenname mit kleinem versenkten Buchstaben am Anfang? –

+0

@Ajj Erwägen Sie es, etwas Bedeutungsvolles zu nennen, so wie es verwendet wird. Das ist der "Standard". Wenn Sie grammatische Standards meinen, beginnen Variablennamen mit einem Kleinbuchstaben und verwenden camelCase. –

+0

Bin gut mit Accessoren und Mutator Methoden Benennung. Ich bin nur verwirrt mit allgemeinen Klassen wie "Car", "Student", "Machine", etc .. –

2

Benennen Sie Ihre Objekte, was sie sind, es erleichtert das Lesen und Refactoring.

1

Namenskonventionen für Objekte in Java sind nur Namen. Zum Beispiel

Car car = new Car("Ferrari"); 

Die Reste der ungarischen Notation haben wegen der zusätzlichen verlassen hauptsächlich worden, um die IDE unterstützt haben für die Navigation zur Verfügung gestellt.

+0

Ok. So ist es meistens gemacht? –

-1

Als Sie sind Senior, schließlich kann ich Ihnen vorschlagen, einige Namensgebung Konvention in Bezug auf Ihre Zweifel. Wie wir wissen, sind alle Klassennamen mit dem ersten Großbuchstaben begonnen, angenommen, Klasse "MyTest", wenn Objekt, das wir von dieser Klasse erstellen müssen, sollte es "mytest" sein. Der Objektname sollte in diesem Format sein. Laut der Jakarta Projekt Menifesto fand ich diese Art von Konvektion und die folgenden sind folgenden. Anders als Jakarta, Sun API einschließlich IDE für Entwicklung, die sie auch verwenden. Hoffe, es wird dir helfen. Ja, ich bin neu. Danke für deine hilfreichen Informationen.

+0

Manoj, es scheint, du bist neu in SO. Sehr geehrte Damen und Herren, nicht unterstützte Begriffe in SO und Antwort muss nicht Code-formatiert sein. – kosa

+0

Vielen Dank für Ihre hilfreichen Informationen. –

0

Klassenname in Kleinbuchstaben ist Sun/Oracle Standard.

, wenn Sie für ein Unternehmen arbeiten,

in Abhängigkeit von Konventionen Projekt Namensgebung es kann variieren.

Car car=new Car(); //good to follow 

wenn es Singleton pattern ist, können Sie einen Namen wie geben unter

private static final Car singletonCar=new Car(); 
+1

Singletons sollten nicht im Feldnamen angegeben werden. Die Tatsache, dass sie Singletons sind, sollte nur sichtbar sein, wenn das Feld initialisiert wird. Wenn etwas anderes benötigt wird, dann ist es ein Signal, dass etwas falsch gemacht wird. In Ihrem Beispiel ist es falsch, dass Sie mehr als eine Instanz Ihres Car-Singletons zulassen. – Torben

+0

edited.there gibt viele Möglichkeiten, ein Singleton zu erstellen, es ist einer von ihnen. Diese Art der Namenskonvention wird nur für die Lesbarkeit beibehalten. –

+1

Die Idee von Singleton ist, dass Sie nur eine Instanz des Objekts initialisieren können. Ein letztes Feld hindert Sie nicht daran, zwei Autoobjekte zu erstellen. Sie müssen die Einschränkung in das Auto-Objekt selbst erstellen. Die Initialisierung von Singletons ist ziemlich gut dokumentiert. Bitte Google es. Sobald Sie einen Verweis auf einen Singleton erhalten haben, sollte es nicht notwendig sein, ihn als Singleton im Feldnamen zu bezeichnen. Das Singleton sollte so robust implementiert werden, dass der Benutzer nach der Initialisierung nichts davon wissen muss. Es sollte genau wie jedes andere Objekt funktionieren, das von vielen Threads geteilt wird. – Torben

4

Ihr Beispiel ein bisschen zu trivial ist.In Wirklichkeit würden Sie niemals ein Feld des Objekttyps "Auto" als "Auto" bezeichnen. Genauso nennen Sie keinen "Integer" -Typ als "Integer".

Stattdessen verwenden die Namen, die dem Leser sagen, wofür das Feld verwendet wird. Einige Beispiele:

private Transport preferredTransportMethod; 

private int invoiceCounter; 

Präfix Feldtyp wird nicht häufig Java verwendet. Klassenmitgliedern wird jedoch manchmal das Kleinbuchstabe "m" vorangestellt, um versehentliche Eigenzuweisungen in Setter-Methoden zu verhindern.

private long mTripDurationMillis; 
Verwandte Themen