Cómo crear una clase o un tipo de Java

Con el diálogo Create New Class y las plantillas de archivo, Android Studio te ayuda a crear rápidamente los siguientes tipos y clases nuevos:

  • Clases de Java
  • Clases singleton y de enumeración
  • Tipos de interfaces y de anotaciones

Una vez que completes los campos del diálogo Create New Class y hagas clic en OK, Android Studio creará un archivo .java que contenga el código base, el cual incluye una declaración del paquete, las importaciones necesarias, un encabezado y una declaración de tipo o clase. Luego, podrás agregar tu código en este archivo.

En las plantillas de archivo, se especifica la manera en que Android Studio genera el código base. Puedes usar las plantillas de archivo que ofrece Android Studio como están o personalizarlas para que se adapten a tu proceso de desarrollo.

Cómo ver y personalizar plantillas de archivo

Android Studio ofrece plantillas de archivo que determinan cómo se crean los nuevos tipos y clases de Java con el diálogo Create New Class. Estas se pueden personalizar.

Diálogo Create New Class

Figura 1: Diálogo Create New Class

En las plantillas de archivo de Android Studio, se incluyen variables y código Velocity Template Language (VTL) que controlan estas opciones adicionales. El diálogo Create New Class usa las plantillas de archivo AnnotationType, Class, Enum, Interface y Singleton.

Para ver, personalizar y modificar las plantillas, sigue estos pasos:

  1. Realiza alguna de las siguientes acciones:

    • En Windows o Linux, selecciona File > Settings > Editor > File and Code Templates > Files.
    • En Mac OS, selecciona Android Studio > Preferences > Editor > File and Code Templates > Files.

    En la lista de plantillas, los nombres de las plantillas internas se muestran en negrita. En cambio, los nombres de las plantillas personalizadas se muestran en un color de resaltado, como el azul.

  2. Personaliza las plantillas según sea necesario.

    Si quieres usar los campos del diálogo Create New Class, asegúrate de que tus cambios cumplan con el código de plantillas de archivo de Android Studio.

Para obtener más información sobre las plantillas de archivo, incluido VTL, consulta Plantillas de código y archivo y Diálogo de plantillas de código y archivo.

Cómo crear un tipo o una clase de Java

Android Studio te ayuda a crear nuevas clases de Java; clases singleton y de enumeración; y tipos de interfaces y anotaciones basadas en plantillas de archivo.

Para crear un nuevo tipo o clase de Java, sigue esos pasos:

  1. En la ventana Project, haz clic con el botón derecho en una carpeta o un archivo Java y selecciona New > Java Class.
  2. De manera alternativa, puedes seleccionar una carpeta o un archivo Java en la ventana Project, o bien hacer clic en un archivo Java desde el editor de código. Luego, selecciona File > New > Java Class.

    El elemento que selecciones determinará el paquete predeterminado para el nuevo tipo o clase.

  3. En el diálogo Create New Class, completa los siguientes campos:
    • Name: Corresponde al nombre del nuevo tipo o clase, que debe cumplir con los requisitos para nombres de Java. No escribas una extensión de nombre de archivo.
    • Kind: Selecciona la categoría de la clase o del tipo.
    • Superclass: Corresponde a la clase de la cual heredas tu nueva clase. Puedes escribir el nombre de la clase y del paquete o solo el nombre de la clase y, luego, hacer doble clic en un elemento de la lista desplegable para que se complete automáticamente.
    • Interface(s): Corresponde a una o varias interfaces que implementan el nuevo tipo o clase. En caso de haber varias interfaces, estas deben separarse con una coma seguida de un espacio opcional. Puedes escribir el nombre de la interfaz y del paquete o solo el de la interfaz y, luego, hacer doble clic en un elemento de la lista desplegable para que se complete automáticamente.
    • La opción autocompletar solo funciona con el nombre de la primera interfaz. Ten en cuenta que, si bien la coma y el nombre de la interfaz siguiente pueden generar un error de información sobre la herramienta, puedes ignorarlo, ya que este no afecta al código generado.

    • Package: Corresponde al paquete en el que se alojará el tipo o la clase. El valor predeterminado aparecerá en el campo automáticamente. Si escribes el nombre de un paquete en el campo, los fragmentos del identificador del paquete que no existen se destacarán en rojo; en este caso, Android Studio creará el paquete luego de que hagas clic en OK. Este campo debe contener un valor; de lo contrario, el archivo Java no incluirá una declaración de package, y el tipo o la clase no se ubicará dentro del paquete en el proyecto.
    • El valor predeterminado depende de cómo inicies el diálogo Create New Class. Si primero seleccionaste una carpeta o un archivo Java en la ventana Project, el valor predeterminado será el paquete de ese elemento. Sin embargo, si primero hiciste clic en el archivo Java en el editor de código, el valor predeterminado será el paquete que contiene este archivo.

    • Visibility: Permite definir si la clase o el tipo será visible para todas las clases, o bien solo para las que se incluyen en su paquete.
    • Modifiers: Selecciona el modificador Abstract o Final para una Class, o bien ninguno.
    • Show Select Overrides Dialog: Para un Kind de Class, marca esta opción para abrir el diálogo SelectMethods to Override/Implement después de hacer clic en OK. En este diálogo, puedes seleccionar los métodos que desees anular o implementar, y Android Studio generará el código base para esos métodos.

    Se ocultarán los campos que no correspondan a Kind.

  4. Haz clic en OK.
  5. Android Studio creará un archivo Java con un código base que podrás modificar y, luego, lo abrirá en el editor de código.

Nota: Para crear una clase singleton, selecciona File > New > Singleton o File > Nuevo > Clase Java. Esta última técnica ofrece más opciones.

Plantillas de archivo de Android Studio

En esta sección, se enumera el código de plantillas de archivo de Android Studio escrito en el lenguaje de programación VTL, seguido de las definiciones de las variables. Los valores que proporciones en el diálogo Create New Class serán los valores de las variables en la plantilla. Ten en cuenta que las líneas que comienzan con #if (${VISIBILITY} se extienden hasta la llave de apertura ({ ).

Plantilla de archivo 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 {
}

Plantilla de archivo 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 {
}

Plantilla de archivo 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 {
}

Plantilla de archivo 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 {
}

Plantilla de archivo 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}() {
    }
}

Variables de plantilla de archivo

Android Studio reemplaza las variables de la plantilla de archivo con valores del archivo Java generado. Deberás ingresar los valores en el diálogo Create New Class. La plantilla tiene las siguientes variables que puedes usar:

  • IMPORT_BLOCK: Corresponde a una lista de las declaraciones import de Java delimitadas por un salto de línea que son necesarias para admitir cualquier superclase o interfaz, o bien a una string vacía (""). Por ejemplo, si solo implementas la interfaz Runnable y no extiendes ningún elemento, esta variable será "import java.lang.Runnable;\n". Si implementas la interfaz Runnable y extiendes la clase Activity, será "import android.app.Activity;\nimportjava.lang.Runnable;\n".
  • VISIBILITY: Determina si la clase es de acceso público o no. El valor puede ser PUBLIC o PACKAGE_PRIVATE.
  • SUPERCLASS: Corresponde a un nombre de clase único o vacío. Si está presente, verás una cláusula extends ${SUPERCLASS} después del nombre de la nueva clase.
  • INTERFACES: Corresponde a una lista de interfaces separadas por comas, o bien vacías. Si está presente, verás una cláusula implements ${INTERFACES} después de la superclase o, si no hay una superclase, después del nombre de la clase. En el caso de los tipos de anotaciones y de interfaces, las interfaces tendrán la palabra clave extends.
  • ABSTRACT: Determina si la clase debe ser abstracta o no. El valor puede ser TRUE o FALSE.
  • FINAL: Determina si la clase debe ser final o no. El valor puede ser TRUE o FALSE.