2012-04-27 15 views
10

Avevo iniziato a programmare in Java 2 anni fa. Gli anziani del nostro progetto in quel momento mi avevano consigliato di aggiungere "obj" al nome dell'oggetto che si sta creando.Convenzione di denominazione per oggetti in java

Es:

Car objCar = new Car("Ferrari"); 

Ecco objCar è quello che sto parlando. Ma molti a Overflow di Stack si erano opposti e ora trovo che questo non dovrebbe essere il modo in cui dovrebbe essere fatto il naming di un oggetto. Sono chiaro con le convenzioni di denominazione quando vengono utilizzate le raccolte, ma sono confuso quando vengono creati oggetti di classi generali.

Qualcuno può far luce su di esso?

+2

Tutto in Java tranne i tipi primitivi sono oggetti. Preferiresti 'obj' su ogni nome di variabile? – Gabe

+0

questa roba 'obj ...' se dai vecchi tempi. –

+1

se per te è più semplice identificare il tuo attributo ... perché no con "obj" – Neifen

risposta

25

Basta chiamarlo car. Hungarian notation non viene utilizzato da Sun/Oracle.

Nome le variabili in un modo che descrive il loro utilizzare. Ma non è necessario indicare il tipo nel nome della variabile. Hai già specificato il tipo nella dichiarazione della variabile. Gli IDE ti mostreranno il tipo di variabile se tieni il mouse sopra di loro in modo che le informazioni siano sempre prontamente disponibili.

È necessario utilizzare lowercaseStartingCamelCase per nomi di variabili e nomi di metodi e UppercaseStartingCamelCase per i nomi di classe.

Se si desidera leggere come Sun/Oracle fa qualcosa, è possibile leggere il proprio Code Conventions for the Java Programming Language.

+0

Quali sono gli standard seguiti nella denominazione degli oggetti? Solo il nome della classe con una piccola lettera maiuscola all'inizio? –

+0

@ Ajj Considera di nominarlo qualcosa di significativo, come quello per cui viene utilizzato /. Questo è lo "standard". Se intendi standard grammaticali, i nomi delle variabili iniziano con una lettera minuscola e usano camelCase. –

+0

Funziona bene con la denominazione dei metodi di accesso e dei mutatori. Sono semplicemente confuso con classi generali come "Car", "Studente", "Macchina", ecc. –

2

Assegna agli oggetti quello che sono, facilita la lettura e il refactoring.

1

le convenzioni di denominazione per oggetti in java sono solo nomi. Per esempio

Car car = new Car("Ferrari"); 

I resti della notazione ungherese sono stati abbandonati soprattutto a causa della aggiunto il supporto della IDE hanno fornito per la navigazione.

+0

Ok. Quindi questo è come è fatto per lo più? –

-1

Essendo anziano, dopo tutto, posso suggerirvi di nominare la convenzione relativa ai vostri dubbi. Come sappiamo, tutti i nomi di classe sono iniziati con la prima lettera maiuscola, supponiamo la classe "MyTest" quando l'oggetto che dobbiamo creare di questa classe dovrebbe essere "mytest". Il nome dell'oggetto deve essere in questo formato. Secondo il jakarta progetto menifesto ho trovato questo tipo di convezione e sono seguito. Oltre a jakarta, Sun API incluso IDE per lo sviluppo anche loro stanno usando questo. Spero, ti aiuterà. Sì, sono nuovo. Grazie per le tue informazioni utili.

+0

Manoj, sembra che tu sia nuovo di SO. Gentile ecc., I termini non supportati in SO e la risposta non devono essere formattati in codice. – kosa

+0

Grazie per le tue informazioni utili. –

0

nome classe in lettere minuscole è standard Sun/Oracle.

quando si lavora per una società,

a seconda delle convenzioni di denominazione del progetto che potrebbe essere diversa.

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

se è Singleton pattern, si può dare un nome come sotto

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

I single non devono essere identificati nel nome del campo. Il fatto che siano singleton dovrebbe essere visibile solo quando il campo è inizializzato. Se è necessario qualcos'altro, allora è un segnale che qualcosa viene fatto male. Nel tuo esempio, la cosa sbagliata è che autorizzi più di un'istanza del tuo Car-singleton. – Torben

+0

modificato. Esistono molti modi per creare un singleton, è uno di questi. Questo tipo di convenzione di denominazione viene mantenuto solo per la leggibilità. –

+1

L'idea di singleton è che è possibile inizializzare solo un'istanza dell'oggetto. Un campo finale non ti impedisce di creare due oggetti Car. Devi costruire la restrizione nell'oggetto Car stesso. L'inizializzazione dei singleton è abbastanza ben documentata. Si prega di Google. Una volta che hai acquisito un riferimento a un singleton, non dovrebbe esserci alcuna necessità di etichettarlo come un singleton nel nome del campo. Il singleton dovrebbe essere implementato in modo così robusto che l'utente non deve saperlo dopo l'inizializzazione. Dovrebbe agire come qualsiasi altro oggetto condiviso da molti thread. – Torben

4

Il vostro esempio è un po 'troppo banale.In realtà non nomineresti mai un campo di tipo oggetto "Car" come "auto". Allo stesso modo non nominerai mai un tipo "Integer" come "intero".

Invece, i nomi di uso che dicono al lettore per che campo è usato. Alcuni esempi:

private Transport preferredTransportMethod; 

private int invoiceCounter; 

Il tipo di campo di prefisso non viene utilizzato comunemente è Java. Tuttavia, i membri della classe sono talvolta preceduti dalla lettera "m" minuscola per impedire assegnazioni accidentali di sé nei metodi setter.

private long mTripDurationMillis; 
Problemi correlati