coding-style code style - Perché la maggior parte dei campi (membri della classe) nel tutorial Android iniziano con `m`?





7 Answers

Molte linee guida di codifica usano m per 'membri' di una classe. Quindi quando stai programmando puoi vedere la differenza tra variabili locali e membri.

java naming convention

Conosco le regole del caso dei cammelli, ma sono confuso con questa regola. Cosa significa? Sono uno sviluppatore PHP. "Noi" usiamo le prime lettere di variabili come indicazione di tipo, come "b" per booleano, "i" per intero e così via.

È una cosa di Java? Sta per mobile? misto?




Se è membro delle variabili nelle classi, la 'm' significa 'membro'. Molti programmatori Java lo fanno, anche se con IDE moderni non è necessario dal momento che hai evidenziato, mouse sulle descrizioni dei comandi, ecc.




Penso che sia molto individuale utilizzare le convenzioni del codice. Preferisco nominare le mie variabili con i seguenti prefissi:

  • m - Variabili del metodo
  • c - Variabili di classe
  • p - Parametro variabili

Ma immagino che ogni programmatore abbia il proprio stile.




Per dimostrare che non dovresti assolutamente trattare questa convenzione per le variabili di denominazione nel tuo codice, passo uno screenshot da un genitore Android Studio qui di seguito.

Trova che le variabili all'interno di un oggetto siano appositamente ordinate per mettere m-variabili inferiori alle tue variabili native . Quindi nominandoli nel tuo codice con il prefisso "m" li nascondi in un mucchio da te stesso .




Sembra che sia stata una preferenza personale di alcuni dei primi ingegneri Android / Google iniziare le variabili membro con "m" e così l'hanno consigliato.

Ora questa regola viene forzata a squarciagola dagli sviluppatori di aziende che non sono né contributori AOSP, semplicemente perché quella pagina è considerata regole di stile del codice di Android. C'è poco o nessun beneficio in quella regola. Google dovrebbe prendere in considerazione la rimozione. Altrimenti, si prega di specificare che per le app Android quali delle Code Style Rules sono opzionali.

Aggiungi il tuo commento di supporto a questa petizione per rimuovere la regola code.google.com/p/android/issues/detail?id=226814




Si può anche affermare che sta per "mio", come in Class / Instance sta dicendo "Questa variabile è mia e nessun altro può arrivarci". Diverso da statico che, mentre potrebbe essere disponibile solo per la classe, è condiviso da tutte le istanze di quella classe. Come se tu stessi disegnando cerchi, avresti bisogno di sapere quanto è grande il raggio di ogni cerchio

    private double mRadius;

ma allo stesso tempo vuoi che un contatore tenga traccia di tutti i cerchi, all'interno della classe del cerchio che potresti avere

    private static int sCircleCount;

e poi hai solo membri statici per aumentare e diminuire il conteggio delle cerchie che hai attualmente.




Seguire le convenzioni di denominazione dei campi

Non-public, non-static field names start with m.

Static field names start with s.

Other fields start with a lower case letter.

Public static final fields (constants) are ALL_CAPS_WITH_UNDERSCORES.

Per esempio:

public class MyClass {
    public static final int SOME_CONSTANT = 42;
    public int publicField;
    private static MyClass sSingleton;
    int mPackagePrivate;
    private int mPrivate;
    protected int mProtected;
}



Related