Com a caixa de diálogo Create New Class e os modelos de arquivo correspondentes, o Android Studio ajuda a criar rapidamente os seguintes novos tipos e classes:
- Classes Java
- Classes de enumeração e singleton
- Tipos de interface e anotação
Depois que você preencher os campos da caixa de diálogo Create New Class e clicar
em OK, o Android Studio criará um arquivo .java contendo
o código de esqueleto, incluindo uma declaração package, todas as importações necessárias, um cabeçalho
e uma declaração de classe ou tipo. Em seguida, você pode adicionar seu código a esse arquivo.
Modelos de arquivo especificam como o Android Studio gera o código do esqueleto. Com o Android Studio você pode usar os modelos de arquivo como estão ou personalizá-los para que se adequem ao seu processo de desenvolvimento.
Ver e personalizar modelos de arquivo
O Android Studio oferece modelos de arquivo que determinam como novas classes e tipos Java são criados com a caixa de diálogo Create New Class. Você pode personalizar esses modelos.
 
Figura 1. Caixa de diálogo Create New Class.
Os modelos de arquivo do Android Studio incluem o código Velocity Template Language (VTL, em inglês) e variáveis que processam essas outras opções. A caixa de diálogo Create New Class usa os modelos de arquivo AnnotationType, Class, Enum, Interface e Singleton.
Para ver e modificar os modelos e encontrar personalizações, siga estas etapas:
- Siga uma das seguintes ações: - Para Windows ou Linux, selecione File > Settings > Editor > File and Code Templates > Files.
- Para macOS, selecione Android Studio > Preferences > Editor > File and Code Templates > Files.
 - Na lista de modelos, os nomes dos modelos internos estão em negrito. Os nomes de modelos personalizados são mostrados com uma cor de destaque, como azul. 
- Personalize os modelos de arquivo conforme necessário. - Se você quiser usar os campos da caixa de diálogo Create New Class, verifique se as mudanças estão de acordo com o código do modelo de arquivo do Android Studio. 
Para ver mais informações sobre modelos de arquivo, incluindo VTL, consulte Modelos de arquivo e código e Caixa de diálogo File and Code templates (links em inglês).
Criar uma classe ou um tipo Java
O Android Studio ajuda a criar novas classes Java, classes de enumeração e singleton e tipos de interface e anotação com base em modelos de arquivo.
Para criar uma nova classe ou tipo Java, siga estas etapas:
- Na janela Project, clique com o botão direito do mouse em um arquivo ou pasta Java e selecione New > Java Class.
- Na caixa de diálogo Create New Class, preencha os campos:
- Name: o nome da nova classe ou tipo. Ele precisa obedecer aos requisitos de nome Java. Não digite uma extensão de nome de arquivo.
- Kind: selecione a categoria da classe ou do tipo.
- Superclass: a classe da qual a nova classe herda. Você pode digitar o nome do pacote e da classe ou apenas o nome da classe e, em seguida, clicar duas vezes em um item da lista suspensa para preencher automaticamente.
- Interface(s): uma ou mais interfaces que a nova classe ou tipo implementa. As interfaces precisam ficar separadas por uma vírgula seguida por um espaço opcional. Você pode digitar o nome do pacote e da interface ou apenas o nome da interface e, em seguida, clicar duas vezes em um item da lista suspensa para preencher automaticamente.
- Package: o pacote em que a classe ou o tipo
residirá. O padrão aparecerá automaticamente no campo. Se você digitar um nome de pacote
no campo, as partes do identificador de pacote que não existirem serão
destacadas em vermelho. Nesse caso, o Android Studio criará o pacote depois que você
clicar em OK. Esse campo precisa conter um valor. Caso contrário, o arquivo
Java não incluirá uma instrução package, e a classe ou o tipo não será colocado em um pacote no projeto.
- Visibility: selecione se a classe ou o tipo ficará visível para todas as classes ou apenas para as que estão no mesmo pacote.
- Modifiers: selecione o modificador Abstract ou Final para uma Class. Também é possível não selecionar nenhum.
- Show Select Overrides Dialog: para um Tipo de Classe, marque essa opção para abrir a caixa de diálogo Select Methods to Override/Implement após clicar em OK. Nessa caixa de diálogo, você pode selecionar métodos que gostaria de substituir ou implementar, e o Android Studio irá gerar um código de esqueleto para esses métodos.
- Clique em OK.
Como alternativa, selecione um arquivo ou pasta Java na janela Project ou clique em um arquivo Java no editor de código. Em seguida, selecione File > New > Java Class.
O item selecionado determina o pacote padrão para a nova classe ou tipo.
O preenchimento automático funciona apenas para o nome da primeira interface. Embora a vírgula e o nome da interface a seguir possam gerar uma dica errada, você pode ignorá-la, porque isso não afeta o código gerado.
O padrão depende a forma como a caixa de diálogo Create New Class foi iniciada. Se você selecionou um arquivo ou pasta Java na janela Project, o padrão será o pacote para o item selecionado. Se você clicou em um arquivo Java no editor de código, o padrão será o pacote que contém esse arquivo.
Todos os campos que não se aplicam ao Kind ficam ocultos.
O Android Studio cria um arquivo Java com código de esqueleto que você pode modificar. O arquivo abrirá no editor de código.
Observação: você pode criar uma classe singleton selecionando File > New > Singleton ou File > New > Java Class. A segunda técnica oferece mais opções.
Modelos de arquivos do Android Studio
Esta seção lista o código do modelo de arquivo do Android Studio escrito na linguagem de script VTL, seguido
pelas definições das variáveis. Os valores fornecidos na caixa de diálogo
Create New Class passam a ser os valores das variáveis do modelo.
As linhas que começam com
#if (${VISIBILITY} se estendem até a chave aberta (
{).
Modelo de arquivo 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 {
}
Modelo de arquivo 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 {
}
Modelo de arquivo 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 {
}
Modelo de arquivo 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 {
}
Modelo de arquivo 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}() {
    }
}
Variáveis de modelo de arquivo
O Android Studio substitui as variáveis do modelo de arquivo pelos valores do arquivo Java gerado. Você pode inserir os valores na caixa de diálogo Create New Class. O modelo tem as seguintes variáveis que você pode usar:
- IMPORT_BLOCK: uma lista delimitada por nova linha de declarações- importJava necessárias para oferecer compatibilidade com qualquer superclasse ou interface ou uma string vazia (- ""). Por exemplo, se você implementar apenas a interface- Runnablee não estender nada, essa variável será- "import java.lang.Runnable;\n". Se você implementar a interface- Runnablee estender a classe- Activity, ela será- "import android.app.Activity;\nimportjava.lang.Runnable;\n".
- VISIBILITY: se a classe terá acesso público ou não. Pode ter o valor- PUBLICou- PACKAGE_PRIVATE.
- SUPERCLASS: um nome de classe único ou vazio. Se presente, haverá uma cláusula- extends ${SUPERCLASS}após o novo nome de classe.
- INTERFACES: uma lista de interfaces separadas por vírgulas ou vazia. Se presente, haverá uma cláusula- implements ${INTERFACES}após a superclasse ou após o nome de classe, caso não haja uma superclasse. Para tipos de interface e anotação, as interfaces têm a palavra-chave- extends.
- ABSTRACT: se a classe precisa ser abstrata ou não. Pode ter um valor- TRUEou- FALSE.
- FINAL: se a classe precisa ser final ou não. Pode ter um valor- TRUEou- FALSE.
