안드로이드 변수 네이밍이 궁금합니다

조회수 5383회
LayoutInflater mLayoutInflater;

안드로이드 오픈 소스를 보던 중에 궁금한 게 있어요.

많은 사람들이 위와 같이 변수 앞부분에 m을 붙이던데 이유가 궁금합니다.

2 답변

  • 좋아요

    6

    싫어요
    채택 취소하기

    안드로이드 오픈소스는 아래와 같은 Naming Convention 을 따릅니다.

    Follow Field Naming Conventions

    • Non-public, non-static field names start with m. (public, static이 아닌 것에는 m을 붙여라.(m은 멤버변수의 m입니다.))
    • Static field names start with s. (static에는 s를 붙여라)
    • Other fields start with a lower case letter. (나머지 모든 필드에는 소문자로 시작한다.)
    • Public static final fields (constants) are ALL_CAPS_WITH_UNDERSCORES. (public static final fields 에는 _를 붙히고 모든 문자를 대문자로 써라)
    //example
    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;
    }
    

    http://source.android.com/source/code-style.html#follow-field-naming-conventions 위주소에 들어가보시면 더 자세한 규칙들을 보실 수 있어요.

    위의 규칙들은 안드로이드 오픈 소스프로젝트만 그런것이고 개인 안드로이드 앱만들때는 자유입니다. 안드로이드 앱만들때 저같은 경우는 자바코드 convention을 그대로 따랐습니다. ;
    참고로 자바코드스타일은 헝가리언표기법을 사용하지 않습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 이제 C/C++ 도 더이상 헝가리언 명명법(표기법)을 고수하지는 않는 것 같네요. 안드로이드 처럼 convention을 제공하면 따르면 되고, 그렇지 않더라도, 공동 개발자 간의 협의대로 하면되겠지요. 허대영(소프트웨어융합대학) 2016.3.19 23:52
    • 주연님이 언급하신 부분이지만 안드로이드 애플리케이션 개발을 위한 컨벤션은 없습니다. 우리가 `mLayoutInflater`와 같은 컨벤션을 사용하는 것은 안드로이드 그 자체의 소스코드, 안드로이드 오픈소스 프로젝트(Android Open Source Project)가 위와 같은 컨벤션을 사용하고 있고 그것이 안드로이드 앱 개발자에게도 영향을 주는 것이지요. 알 수 없는 사용자 2016.3.20 12:11
    • 안드로이드 오픈 소스의 컨벤션의 일부분이었군요. 감사합니다! 김선우 2016.3.20 19:12
  • 가독성을 좋게 하기 위해서, 프로그램을 개발할 때 헝가리안 명명법에 따라 변수이름 앞에 특별한 약자를 붙이는 경우가 있습니다. 언어적인 특징이나 그런 것은 아니므로 꼭 위와 같이해야할 필요는 없으나 개발 언어나 프로젝트 개발 팀에 따라 여러가지 이름 규칙을 사용하는 경우가 있는데 해당 규칙에 따르면 됩니다.

    질문하신 접두 m은 member(클래스 변수 혹은 클래스 멤버 변수라는 의미)의 약자입니다.

    보통 접두에 멤버(m)/글로벌(g)/Static(s) 등을 뜻하는 것과, 타입을 뜻하는 약자를 순서대로 씁니다.

    타입의 경우 다음과 같은 접두어를 씁니다

    • b : bool or boolean
    • c : char
    • i : integer
    • n : number
    • l(L) : long
    • w: word (2byte)
    • dw : double word (4byte)
    • d : double
    • f : float
    • ... 등

    포인터의 경우에는 타입 앞에 p 접두어를 더 붙입니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)