Criar um tipo ou classe Java

Com a caixa de diálogo Create New Class e os modelos de arquivo correspondentes, o Android Studio ajuda a criar rapidamente os novos tipos e classes a seguir:

  • 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 do 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. Você pode usar os modelos de arquivo fornecidos com o Android Studio como estão ou personalizá-los para adequar 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.

A caixa de diálogo "Create New Class".

Figura 1. A caixa de diálogo Create New Class.

Os modelos de arquivo do Android Studio incluem o código Velocity Template Language (VTL) e variáveis que lidam com essas opções adicionais. 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, bem como para localizar personalizações, siga estas etapas:

  1. Realize 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 exibidos com uma cor de destaque, como azul.

  2. 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 alterações estão de acordo com o código do modelo de arquivo do Android Studio.

Para 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 baseados em modelos de arquivo.

Para criar uma nova classe ou tipo Java, siga estas etapas:

  1. Na janela Project, clique com o botão direito do mouse em um arquivo ou pasta Java e selecione New > Java Class.
  2. Como alternativa, selecione um arquivo ou pasta Java na janela Project ou clique em um arquivo Java no Code Editor. Em seguida, selecione File > New > Java Class.

    O item selecionado determina o pacote padrão para a nova classe ou tipo.

  3. 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 da classe e, em seguida, clicar duas vezes em um item da lista suspensa para preenchê-lo automaticamente.
    • Interface(s): uma ou mais interfaces que a nova classe ou tipo implementa. As interfaces devem ser separadas por uma vírgula seguida por um espaço opcional. Você pode digitar o nome do pacote e da interface ou apenas da interface e, em seguida, clicar duas vezes em um item da lista suspensa para preenchê-lo automaticamente.
    • O preenchimento automático funciona apenas para o nome da primeira interface. Observe que, embora a vírgula e o nome da interface a seguir possam gerar um erro de dica, você pode ignorá-lo porque ele não afeta o código gerado.

    • 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 cria o pacote depois que você clica em OK. Esse campo precisa conter um valor. Caso contrário, o arquivo Java não conterá uma declaração package, e a classe ou o tipo não será colocado em um pacote no projeto.
    • O padrão depende de como você iniciar a caixa de diálogo Create New Class. Se você selecionar um arquivo ou pasta Java na janela Project, o padrão será o pacote para o item selecionado. Se você clicar em um arquivo Java no Code Editor, o padrão será o pacote que contém esse arquivo.

    • Visibility: selecione se a classe ou o tipo ficará visível para todas as classes ou apenas para aquelas no próprio pacote.
    • Modifiers: selecione o modificador Abstract ou Final para uma Class ou nenhum.
    • Show Select Overrides Dialog: para um Kind de Class, 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 quer substituir ou implementar, e o Android Studio gerará um código de esqueleto para esses métodos.

    Todos os campos que não se aplicam ao Kind ficam ocultos.

  4. Clique em OK.
  5. O Android Studio cria um arquivo Java com código de esqueleto que você pode modificar. Ele abre o arquivo no Code Editor.

Observação: você pode criar uma classe singleton selecionando File > New > Singleton ou File > New > Java Class. A última 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 tornam-se os valores das variáveis do modelo. Observe que 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 import Java necessárias para oferecer compatibilidade com qualquer superclasse ou interfaces, ou uma string vazia (""). Por exemplo, se você implementar apenas a interface Runnable e não estender nada, essa variável será "import java.lang.Runnable;\n". Se você implementar a interface Runnable e 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 PUBLIC ou 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, se não houver 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 o valor TRUE ou FALSE.
  • FINAL: se a classe precisa ser final ou não. Pode ter o valor TRUE ou FALSE.