Infosintesis Solutions Group, S.L. Apéndice
Inicio | Apéndices | Archivo convenciones Java y UML

Convenciones Java y UML

Constructores explicitos e implicitos

Cuando el entorno de ejecución Java tiene que crear una instancia de una Clase lo primero que hace es llamar a una especie de Constructor que se crea internamente y que se le conoce como Constructor por defecto e inicicializa las variables de instancia a sus valores por defecto.

Las convenciones sobre declarar Constructores sin argumentos y sin contenido varían dependiendo de si se declaran o no se declaran otros Constructores sobrecargados.

No declaramos ningún otro Constructor sobrecargado

No hace falta que esté declarado en el código de la Clase ni tampoco en la Clase de Diseño de un Diagrama de Clases de Diseño UML.

Aquí tenemos una Clase de Diseño llamada Bicicleta que no tiene ningún otro Constructor sobrecargado
Clase UML sin constructor

Esta es la implementación de la Clase Bicicleta

package paqtvestandar;

public class Bicicleta {
  String marca;

  public void cambiarMarcha() {
    
// aquí tendría que haber código Java que implemente este método
  }

  public void frenar() {
    
// aquí tendría que haber código Java que implemente este método
  }

  public void setMarca(String valorMarca) {
    marca = valorMarca;
  }

  public String getMarca(){
    return marca;
  }
}


y ahora creamos una instancia de la clase Bicicleta desde cualquier otro objeto

Bicicleta b1 = new Bicicleta();


podemos observar que la Clase Bicicleta no tiene ningún Constructor declarado y todavía menos inicializado. En estos casos se dice que la Clase tiene un Constructor implícito y que el entorno de ejecución Java sólo utilizará el Constructor por defecto

Constructores con argumentos

Estos Constructores sobrecargados

Aquí tenemos una Clase de Diseño llamada Bicicleta con un Constructor sobrecargado. En UML nos podemos ahorrar la escritura del Constructor que no tiene argumentos para ahorramos un espacio muy valioso en este tipo de diagramas
Clase UML con constructor sobrecargado

Esta es la implementación de la Clase Bicicleta

package paqtvestandar;

public class Bicicleta {
  String marca;

  public Bicicleta() {
  }


  public
Bicicleta(String valorMarca) {
    marca = valorMarca()
  }

  
public void cambiarMarcha() {
    // aquí tendría que haber código Java que implemente este método
  }

  public void frenar() {
    // aquí tendría que haber código Java que implemente este método
  }

  public void setMarca(String valorMarca) {
    marca = valorMarca;
  }

  public String getMarca(){
    return marca;
  }
}

Y ahora creamos dos instancias de la clase Bicicleta desde cualquier otro objeto teniendo en cuenta que en estos momentos la Clase Bicicleta tiene declarada e inicializada de forma explícita un Constructor sobrecargado.

Bicicleta b1 = new Bicicleta();
Bicicleta b2 = new Bicicleta("Cannondale");

Página anterior
Ignasi Pérez Valls
fundador-director Infosintesis Solutions Group
asesor-formador independiente
ignasiperez[ARROBA]infosintesis[PUNTO]net
Diciembre 2008
Infosintesis Solutions Group, S.L.
Formación y asesoramiento en Tecnologías Emergentes