Programación en Java/Convenciones

De Wikilibros, la colección de libros de texto de contenido libre.

Convenciones de nomenclatura[editar]

Las convenciones de nomenclatura en Java fueron establecidas por Oracle en su documento sobre convenciones para codificación. Estas convenciones precisan que el usuario utilice camel case al definir clases, métodos y variables. Para los nombres de clases se recomienda utilizar sustantivos con la primera letra en mayúscula, como en CalendarDialogView. Para los métodos, en cambio, se utilizarán verbos con la primera letra en minúscula. En inglés, se utiliza la forma imperativa del verbo, como en getBrakeSystemType, mientras en español se prefiere el infinitivo (retornarTipoDeFreno) o el presente de indicativo en tercera persona singular (retornaTipoDeFreno).

Es importante familiarizarse y respetar las convenciones de codificación para que cualquier código escrito por distintos programadores se vea uniforme. No obstante, en un proyecto se pueden redefinir las convenciones estándares a fin de ajustarlas según sus necesidades. Por ejemplo, es posible incluir una lista de abreviaturas permitidas, pues con frecuencia dificultan la lectura del código a otros diseñadores. El código siempre debe estar acompañado de su documentación.

Otro ejemplo de estas convenciones de nomenclatura es la forma de definir una constante. Estas se escriben con letras mayúsculas, separando las palabras con un guión bajo («_»). En Java, una constante es un campo static final de una clase.

El motivo de estas distinciones es que Java no es un lenguaje puramente orientado a objetos y distingue tipos «simples» de «compuestos». Esto se verá en detalle en las siguientes secciones. Un ejemplo de tipo «simple» es el tipo byte. Un ejemplo de tipo «complejo» es una clase. Un subconjunto de los tipos «complejos» son las clases inmutables, como un String, que consiste en una concatenación de carácteres.

A modo de ejemplo, considere las siguientes constantes:

public class Vehiculo {
  /** Cantidad de motores */
  private static final int MOTORES = 1;

  /** Nombre del motor */
  private static final String NOMBRE_MOTOR = "Mercedes V8";

  /** Objeto «el motor» */
  private static final Motor EL_MOTOR = new MercedesMotor();

  /**
   * Constructor
   */
  public Vehiculo (){
    MOTORES = 2;                     // Genera un error de sintaxis pues ya se asignó un valor a MOTORES.
    EL_MOTOR = new ToshibaMotor(); // Genera un error de sintaxis pues ya se asignó un valor a EL_MOTOR.
    NOMBRE_MOTOR.toLowercase();       // No produce errores de sintaxis porque retorna un nuevo String en lugar de modificar la variable EL_MOTOR.
    EL_MOTOR.cargarCombustible(20.5);       // No produce errores de sintaxis porque modifica una variable del objeto motor, no la variable en sí.
  }
}