Warum beginnen die meisten Felder (Klassenmitglieder) im Android-Tutorial mit `m`?


Answers

Viele Codierungsrichtlinien verwenden m für 'Mitglieder' einer Klasse. Wenn Sie also programmieren, können Sie den Unterschied zwischen lokalen und Membervariablen erkennen.

Question

Ich kenne die Regeln für Kamelfälle, aber ich bin mit dieser Regel verwechselt. Für was steht das? Ich bin ein PHP-Entwickler. "Wir" verwenden erste Buchstaben von Variablen als Angabe des Typs, wie "b" für boolesche Werte, "i" für ganze Zahlen und so weiter.

Ist 'm' eine Java-Sache? Steht es für mobil? gemischt?




Wenn es sich um Membervariablen in Klassen handelt, bedeutet das 'm' 'member'. Viele Java-Programmierer machen das, obwohl sie bei modernen IDEs nicht benötigt werden, da Sie Hervorhebungen haben, mit der Maus über Tooltips fahren usw.




Ich denke, es ist sehr individuell, welche Code-Konventionen verwendet werden. Ich bevorzuge es, meine Variablen mit den folgenden Präfixen zu benennen:

  • m - Methodenvariablen
  • c - Klassenvariablen
  • p - Parametervariablen

Aber ich denke, dass jeder Programmierer seinen eigenen Stil hat.




Es scheint eine persönliche Präferenz einiger früherer Android / Google-Ingenieure gewesen zu sein, Member-Variablen mit 'm' zu starten, und so empfahlen sie es.

Jetzt wird diese Regel von Entwicklern in Unternehmen, die keine AOSP-Mitarbeiter sind, in den Kot getrieben, einfach weil diese Seite als Android Code Style-Regeln gilt. Es gibt wenig oder gar keinen Vorteil in dieser Regel. Google sollte es entfernen. Ansonsten geben Sie bitte für Android Apps an, welche der Code-Style-Regeln optional sind.

Bitte fügen Sie Ihrer Petition einen Support-Kommentar hinzu, um die Regel https://code.google.com/p/android/issues/detail?id=226814 zu entfernen.




Es kann auch gesagt werden, dass es für "meins" steht, wie in der Klasse / Instanz sagt: "Diese Variable gehört mir und niemand kann sie erreichen." Anders als statisch, obwohl es nur für die Klasse verfügbar ist, wird es von allen Instanzen dieser Klasse geteilt. Wenn Sie Kreise zeichnen, müssen Sie wissen, wie groß der Radius jedes Kreises ist.

    private double mRadius;

aber gleichzeitig möchten Sie einen Zähler, um alle Kreise zu verfolgen, innerhalb der Kreisklasse, die Sie haben könnten

    private static int sCircleCount;

und dann haben Sie nur statische Mitglieder, um die Anzahl der Kreise, die Sie gerade haben, zu erhöhen und zu verringern.