자바 클래스 또는 유형 만들기

Android 스튜디오에서 제공하는 Create New Class 대화상자 및 파일 템플릿을 사용하여 다음과 같은 새 클래스 및 유형을 빠르게 생성할 수 있습니다.

  • 자바 클래스
  • 열거형 및 단일 클래스
  • 인터페이스 및 주석 유형

Create New Class 대화상자 필드에 입력한 후 OK를 클릭하면 Android 스튜디오에서 패키지 문, 필요한 모든 가져오기, 헤더, 클래스 또는 유형 선언 등의 골격 코드가 포함된 .java 파일이 생성됩니다. 그다음에 생성된 파일에 코드를 추가할 수 있습니다.

파일 템플릿에서는 Android 스튜디오가 골격 코드를 생성하는 방식을 지정합니다. Android 스튜디오와 함께 제공된 파일 템플릿을 그대로 사용하거나 개발 프로세스에 적합하게 맞춤설정할 수 있습니다.

파일 템플릿 보기 및 맞춤설정

Android 스튜디오에서는 Create New Class 대화상자를 사용해 새 자바 클래스 및 유형 생성 방식을 결정하는 파일 템플릿을 제공합니다. 이 템플릿은 맞춤설정할 수 있습니다.

Create New Class 대화상자

그림 1. Create New Class 대화상자

Android 스튜디오 파일 템플릿에는 Velocity Template Language(VTL) 코드와 이러한 추가 옵션을 처리하는 변수가 포함되어 있습니다. Create New Class 대화상자에서는 AnnotationType, Class, Enum, InterfaceSingleton 파일 템플릿을 사용합니다.

템플릿을 보고, 맞춤설정을 검색하고, 템플릿을 수정하려면 다음 단계를 따르세요.

  1. 다음 중 하나를 실행합니다.

    • Windows 또는 Linux의 경우 File > Settings > Editor > File and Code Templates > Files를 선택합니다.
    • macOS의 경우 Android Studio > Preferences > Editor > File and Code Templates > Files를 선택합니다.

    템플릿 목록에서 내부 템플릿 이름은 굵은 글꼴로 되어 있습니다. 맞춤설정된 템플릿 이름은 파란색과 같은 강조 색상으로 표시됩니다.

  2. 필요에 따라 파일 템플릿을 맞춤설정합니다.

    Create New Class 대화상자 필드를 사용하려면 변경사항이 Android 스튜디오 파일 템플릿 코드를 준수하는지 확인하세요.

VTL을 포함한 파일 템플릿에 관한 자세한 내용은 파일 및 코드 템플릿파일 및 코드 템플릿 대화상자를 참고하세요.

자바 클래스 또는 유형 만들기

Android 스튜디오를 사용해 새로운 자바 클래스, 열거형 및 싱글톤 클래스, 파일 템플릿에 기반한 인터페이스 및 주석 유형을 만들 수 있습니다.

새 자바 클래스 또는 유형을 만들려면 다음 단계를 따르세요.

  1. Project 창에서 자바 파일 또는 폴더를 마우스 오른쪽 버튼으로 클릭하고 New > Java Class를 선택합니다.
  2. 또는 Project 창에서 자바 파일 또는 폴더를 선택하거나 코드 편집기에서 자바 파일을 클릭합니다. 그런 다음 File > New > Java Class를 선택합니다.

    선택하는 항목에 따라 새 클래스 또는 유형의 기본 패키지가 결정됩니다.

  3. Create New Class 대화상자에서 다음 필드를 작성합니다.
    • Name - 새 클래스 또는 유형의 이름으로서 자바 이름 요구사항을 준수해야 합니다. 파일 이름 확장자는 입력하지 마세요.
    • Kind - 클래스 또는 유형의 카테고리를 선택합니다.
    • Superclass - 새 클래스가 상속하는 클래스입니다. 패키지 및 클래스 이름을 직접 입력할 수 있습니다. 또는 클래스 이름만 입력한 다음 드롭다운 목록에서 항목을 더블클릭하여 자동 완성할 수도 있습니다.
    • Interface(s) - 새 클래스 또는 유형에서 구현하는 하나 이상의 인터페이스입니다. 여러 개의 인터페이스는 쉼표로 구분되어야 하고 쉼표 다음에는 공백(선택사항)이 올 수 있습니다. 패키지 및 인터페이스 이름을 직접 입력하거나, 인터페이스 이름만 입력한 다음 드롭다운 목록에서 항목을 더블클릭하여 자동 완성하세요.
    • 자동 완성 기능은 최초에 입력하는 인터페이스 이름에만 실행됩니다. 쉼표와 뒤이어 나오는 인터페이스 이름으로 인해 도움말 오류가 발생할 수 있지만 생성된 코드에 영향을 미치지 않으므로 오류를 무시해도 됩니다.

    • Package - 클래스 또는 유형이 상주할 패키지입니다. 필드에 기본값이 자동으로 표시됩니다. 필드에 패키지 이름을 입력하면 존재하지 않는 패키지 식별자 부분이 빨간색으로 강조표시됩니다. 이 경우 OK를 클릭하면 Android 스튜디오에서 패키지가 생성됩니다. 이 필드에는 값이 포함되어야 합니다. 그러지 않으면 자바 파일에 package 문이 포함되지 않고 클래스나 유형이 프로젝트의 패키지 내에 배치되지 않습니다.
    • 기본값은 Create New Class 대화상자를 시작한 방법에 따라 달라집니다. 처음에 Project 창에서 자바 파일 또는 폴더를 선택한 경우 기본값은 선택한 항목의 패키지입니다. 처음에 코드 편집기에서 자바 파일을 클릭한 경우 기본값은 이 파일이 포함된 패키지입니다.

    • Visibility - 클래스 또는 유형이 모든 클래스에 표시되게 할지, 아니면 자체 패키지의 클래스에만 표시되게 할지 선택합니다.
    • Modifiers - ClassAbstract 수정자 또는 Final 수정자를 선택하거나 둘 다 선택하지 않습니다.
    • Show Select Overrides Dialog - ClassKind의 경우 OK를 클릭한 후 이 옵션을 선택하여 Select Methods to Override/Implement 대화상자를 엽니다. 이 대화상자에서 재정의하거나 구현하려는 메서드를 선택하면 Android 스튜디오에서 이러한 메서드의 골격 코드가 생성됩니다.

    Kind에 해당하지 않는 필드는 숨겨집니다.

  4. OK를 클릭합니다.
  5. Android 스튜디오에서는 수정할 수 있는 골격 코드로 자바 파일을 만들고 코드 편집기에서 이 파일을 엽니다.

참고: File > New > Singleton 또는 File > New > Java Class를 선택하여 싱글톤 클래스를 만들 수 있습니다. 후자의 방법이 더 많은 옵션을 제공합니다.

Android 스튜디오 파일 템플릿

이 섹션에는 VTL 스크립트 언어로 작성된 Android 스튜디오 파일 템플릿 코드에 이어 변수를 정의한 내용이 나열되어 있습니다. Create New Class 대화상자에서 입력하는 값은 템플릿에서 변숫값이 됩니다. #if (${VISIBILITY}로 시작하는 줄은 열린 중괄호({)까지 확장됩니다.

AnnotationType 파일 템플릿

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end @interface ${NAME} #if (${INTERFACES} != "")extends ${INTERFACES} #end {
}

Class 파일 템플릿

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end #if (${ABSTRACT} == "TRUE")abstract #end #if (${FINAL} == "TRUE")final #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}

Enum 파일 템플릿

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}

Interface 파일 템플릿

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
#end {
}

Singleton 파일 템플릿

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
    private static final ${NAME} ourInstance = new ${NAME}();

    #if (${VISIBILITY} == "PUBLIC")public #end static ${NAME} getInstance() {
        return ourInstance;
    }

    private ${NAME}() {
    }
}

파일 템플릿 변수

Android 스튜디오가 파일 템플릿 변수를 생성된 자바 파일에 있는 값으로 바꿉니다. Create New Class 대화상자에 값을 입력하세요. 템플릿에서는 다음과 같은 변수를 사용할 수 있습니다.

  • IMPORT_BLOCK - 슈퍼클래스나 인터페이스 또는 빈 문자열("")을 지원하는 데 필요한 자바 import 문을 나열한 줄바꿈으로 구분되는 목록입니다. 예를 들어 Runnable 인터페이스만 구현하고 아무것도 확장하지 않는 경우 이 변수는 "import java.lang.Runnable;\n"입니다. Runnable 인터페이스를 구현하고 Activity 클래스를 확장하면 변수는 "import android.app.Activity;\nimportjava.lang.Runnable;\n"입니다.
  • VISIBILITY - 클래스에 공개 액세스 권한이 있는지 여부를 나타냅니다. 값은 PUBLIC 또는 PACKAGE_PRIVATE일 수 있습니다.
  • SUPERCLASS - 단일 클래스 이름이 있거나 비어 있습니다. 이름이 있는 경우 새로운 클래스 이름 뒤에 extends ${SUPERCLASS} 절이 있습니다.
  • INTERFACES - 쉼표로 구분된 인터페이스 목록이 있거나 비어 있습니다. 목록이 있는 경우 슈퍼클래스 뒤에(슈퍼클래스가 없는 경우 클래스 이름 뒤에) implements ${INTERFACES} 절이 있습니다. 인터페이스 및 주석 유형의 경우 인터페이스에는 extends 키워드가 있습니다.
  • ABSTRACT - 클래스가 추상 클래스여야 하는지 여부를 나타냅니다. 값은 TRUE 또는 FALSE일 수 있습니다.
  • FINAL - 클래스가 최종 클래스여야 하는지 여부를 나타냅니다. 값은 TRUE 또는 FALSE일 수 있습니다.