Constructores

  • Un constructor es un tipo especial de método que coincide con el nombre de la clase, y no tiene tipo de retorno, ni siquiera void
    • public class Coche {
      public Coche() {
      System.out.println(“constructor”);
      }
      }
  • Los constructores se usan cuando se crea un nuevo objeto. El proceso se llama instanciado porque se crea una nueva instancia de la clase. Se le llama cuando se escribe new seguido del nombre de la clase que se quiere instanciar
  • Cuando Java ve la palabra new, localiza memoria para el nuevo objeto, busca su constructor y lo llama
  • El constructor normalmente se utiliza para inicializar variables de instancia.
  • La palabra this le dice a Java que se refiere a la variable de instancia. Normalmente es opcional, se utiliza cuando hay 2 variables con el mismo nombre, por ejemplo, cuando una es parámetro del constructor y la otra es una variable de instancia. Si no se especifica this, Java coge la variable con alcance más granular, es decir, el parámetro.
  • Toda clase en Java tiene un constructor, aunque no se defina. Si no se codifica el constructor, Java creará uno sin parámetros. A este constructor se le llama constructor por defecto. Tiene una lista vacía de parámetros, y un cuerpo vacío.
  • Si la clase tiene un constructor private, se le dice a Java que no se quiere que cree un contructor por defecto. Esto evita que otras clases instancien dicha clase. Esto es util cuando todos sus métodos son estáticos, o se pretende tener control sobre todas las llamadas a la misma.
  • Se pueden sobrecargar los constructores, ofreciendo distintas firmas de método.
  • Si desde un constructor se quiere llamar a otro de la misma instancia (que facilite más parámetros, por ejemplo), se debe usar el método this(). En caso de utilizarse, debe ser la primera orden no comentada del constructor.
    • public class Coche {
      private String color;
      private int potencia;
      public Coche(int potencia, String color) {
      this.potencia = potencia;
      this.color = color;
      }
      public Coche(int potencia) {
      this(potencia, “Rojo”);
      }
  • A las variables de instancia final se les puede asignar valor exactamente una vez. Esto se puede hacer en la linea de la declaración, o en el inicializador de instancia. También pueden inicializarse en el constructor. Una vez que la ejecución del constructor se complete, todas las variables de instancia final deben haber sido establecidas.
  • Orden de inicialización:
    1. Si existe una superclase, primero se inicializa ésta
    2. Declaración estática de variables e inicializadores estáticos, en el orden en que aparecen en el fichero
    3. Declaraciones de variables de instancia e inicializadores de instancia, en el orden en que aparecen en el fichero (ojo: una vez que se instancien las clases)
    4. Constructor

 

void
  • public class Coche {
    public Coche() {
    System.out.println(“constructor”);
    }
    }
  • Los constructores se usan cuando se crea un nuevo objeto. El proceso se llama instanciado porque se crea una nueva instancia de la clase." data-share-imageurl="" style="position:fixed;bottom:0px;left:0px;">