Почему большинство полей (членов класса) в руководстве по Android начинаются с `m`? - PullRequest
419 голосов
/ 19 января 2010

Я знаю о правилах использования верблюдов, но меня смущает это правило.Что это значит?Я разработчик PHP.«Мы» используем первые буквы переменных для обозначения типа, например, «b» для логического значения, «i» для целого числа и т. Д.

Является ли «m» элементом Java?Это стоит для мобильного телефона?смешанный

Ответы [ 14 ]

2 голосов
/ 02 ноября 2016

Кажется, что некоторые ранние инженеры Android / Google предпочитали начинать переменные-члены с «m», и поэтому они рекомендовали это.

Теперь это правило заставляет разработчиков задуматьсякомпании, которые не являются ни участниками AOSP, просто потому, что эта страница считается правилами стиля кода Android.В этом правиле мало пользы.Google должен рассмотреть возможность его удаления.В противном случае, укажите, что для Android-приложений какие из Правил стиля кода являются необязательными.

Пожалуйста, добавьте свой комментарий поддержки в эту петицию, чтобы удалить правило https://code.google.com/p/android/issues/detail?id=226814

1 голос
/ 31 августа 2018

Ниже приведены соглашения об именах,

  • Непубличные, нестатические имена полей начинаются с m.
  • Статические имена полей начинаются с s.
  • Другие поля начинаются со строчной буквы.
  • Открытые статические конечные поля (константы): ALL_CAPS_WITH_UNDERSCORES.

Пример:

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;
}
1 голос
/ 03 октября 2016

Можно также сказать, что оно означает «мое», как в классе / экземпляре говорится: «Эта переменная моя, и никто другой не может получить к ней доступ».В отличие от статического, который, хотя он может быть доступен только классу, используется всеми экземплярами этого класса.Например, если вы рисуете круги, вам нужно знать, насколько велик радиус каждого круга

    private double mRadius;

, но в то же время вы хотите, чтобы счетчик отслеживал все круги внутри класса кругов.Вы можете иметь

    private static int sCircleCount;

, а затем просто иметь статические элементы для увеличения и уменьшения количества кругов, которые у вас есть в данный момент.

1 голос
/ 14 марта 2016

Для удобства чтения соглашение m для переменных-членов и s для статических полей больше не должно использоваться, если вы используете современную IDE, например Android Studio.Android Studio может различать их без добавления m или s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...