Diferencia entre revisiones de «Constructor (informática)»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Varios pequeños cambios
Línea 8: Línea 8:


Posee el mismo nombre de la clase a la cual pertenece y no puede devolver ningún valor (ni siquiera se puede especificar la palabra reservada <code>void</code>). Por ejemplo, si añadiéramos a la clase <code>SSuma</code> un constructor, tendríamos que llamarlo también <code>SSuma</code>. Cuando en una [[Clase (informática)|clase]] no se escribe propiamente un constructor, Java asume uno por defecto.
Posee el mismo nombre de la clase a la cual pertenece y no puede devolver ningún valor (ni siquiera se puede especificar la palabra reservada <code>void</code>). Por ejemplo, si añadiéramos a la clase <code>SSuma</code> un constructor, tendríamos que llamarlo también <code>SSuma</code>. Cuando en una [[Clase (informática)|clase]] no se escribe propiamente un constructor, Java asume uno por defecto.

=== Constructor por defecto ===

Un constructor por defecto es un constructor sin parámetros que no hace nada. Sin embargo será invocado cada vez que se construya un objeto sin especificar ningún argumento, en cuyo caso el objeto será iniciado con los valores predeterminados por el sistema (los atributos [[Número|numéricos]] a cero, los [[alfanumérico]]s a [[Cero|nuloPeq]], y las referencias a objetos a <code>null</code>).


=== Ejemplo ===
=== Ejemplo ===

Revisión del 02:36 12 abr 2017

En programación orientada a objetos (POO), un constructor es una subrutina cuya misión es inicializar un objeto de una clase. En el constructor se asignan los valores iniciales del nuevo objeto.

Se utiliza para crear tablas de clases virtuales y poder así desarrollar el polimorfismo, una de las herramientas de la programación orientada a objetos. Al utilizar un constructor, el compilador determina cual de los objetos va a responder al mensaje (virtual) que hemos creado. Tiene un tipo de acceso, un nombre y un paréntesis.

Java

En Java es un método especial dentro de una clase, que se llama automáticamente cada vez que se crea un objeto de esa clase.

Posee el mismo nombre de la clase a la cual pertenece y no puede devolver ningún valor (ni siquiera se puede especificar la palabra reservada void). Por ejemplo, si añadiéramos a la clase SSuma un constructor, tendríamos que llamarlo también SSuma. Cuando en una clase no se escribe propiamente un constructor, Java asume uno por defecto.

Ejemplo

Un constructor por defecto para la clase SSuma quedaría así:

   public SSuma() {}

Como se observa el constructor no posee ningún parámetro, ya que como no ha sido definido propiamente por el programador, Java lo hace por default.

Si se define un constructor con parámetros (definido explícitamente) el constructor por default se reemplaza por este.

A continuación se creará un constructor explícito para una clase simple, utilizando una clase Persona con una serie de atributos.

Primero se declara la clase con sus atributos:

 class Persona
 {
   //ATRIBUTOS
   private String nombre;
   private int edad;
   private String empleo;
   private double salario;
  
   //CONSTRUCTORES
   public Persona() {} //CONSTRUCTOR SIN PARÁMETROS
   public Persona(String nombre, int edad, String empleo, double salario)
   {
       asignarNombre(nombre);
       asignarEdad(edad);
       asignarEmpleo(empleo);
       asignarSalario(salario);
   }
   //...
 }

El constructor sin parámetros es reemplazado por el constructor explícito. En este ejemplo se puede observar que los constructores preferentemente se declaran públicos para que puedan ser invocados desde cualquier parte.

Una línea como esta invocará al constructor sin parámetros:

   Persona pers01 = new Persona();// invoca al constructor Persona

El operador new crea un nuevo objeto, en este caso de la clase Persona, y a continuación se invoca al constructor de la clase para realizar las operaciones de iniciación que estén programadas.

A continuación se invocará al constructor con parámetros, que se introducirán en el orden especificado en el constructor.

Persona pers02 = new Persona("Pepe Pérez", 30, "Programador", 25000);