CONSTRUCTOR EN JAVA - VASQUEZBRYAN/f-algoritmos-17 GitHub Wiki

FECHA: 25/10/2017

TITULO: CONSTRUCTOR EN JAVA

  • Un constructor es un método especial de una clase que se llama automáticamente siempre que se declara un objeto de esa clase.
  • Su función es inicializar el objeto y sirve para asegurarnos que los objetos siempre contengan valores válidos.

Si un constructor tiene parámetros, el funcionamiento es análogo al que ya hemos visto para métodos. Cuando vayamos a crear el objeto con BlueJ, se nos pedirá además del nombre que va a tener el objeto, el valor o contenido de los parámetros requeridos. Un parámetro con frecuencia sirve para inicializar el objeto como hemos visto, y en ese caso el objeto tendrá el valor pasado como parámetro como atributo “para siempre”, a no ser que lo cambiemos por otra vía como puede ser un método modificador del atributo. No obstante, en algunos casos los parámetros que recibe un constructor no se incorporarán directamente como atributos del objeto sino que servirán para realizar operaciones de diversa índole. Escribe y compila el siguiente código:

Cuando se crea un objeto en Java se realizan las siguientes operaciones de forma automática:

  1. Se asigna memoria para el objeto.
  2. Se inicializan los atributos de ese objeto con los valores predeterminados por el sistema.
  3. Se llama al constructor de la clase que puede ser uno entre varios.

El constructor de una clase tiene las siguientes características:

  • Tiene el mismo nombre que la clase a la que pertenece.
  • En una clase puede haber varios constructores con el mismo nombre y distinto número de argumentos (se puede sobrecargar)
  • No se hereda.
  • No puede devolver ningún valor (incluyendo void).
  • Debe declararse público (salvo casos excepcionales) para que pueda ser invocado desde cualquier parte donde se desee crear un objeto de su clase.

MÉTODO CONSTRUCTOR POR DEFECTO

  • Si para una clase no se define ningún método constructor se crea uno automáticamente por defecto.
  • El constructor por defecto es un constructor sin parámetros que no hace nada. Los atributos del objeto son iniciados con los valores predeterminados por el sistema.

CONSTRUCTOR

Java crea un constructor por defecto si no hemos definido ninguno en la clase, pero si en una clase definimos un constructor ya no se crea automáticamente el constructor por defecto, por lo tanto si queremos usarlo deberemos escribirlo expresamente dentro de la clase.

INVOCAR A UN MÉTODO CONSTRUCTOR

Un constructor se invoca cuando se crea un objeto de la clase mediante el operador new. Si es necesario invocarlo en otras situaciones, la llamada a un constructor solo puede realizarse desde dentro de otro constructor de su misma clase y debe ser siempre la primera instrucción. Si tenemos varios métodos constructores en la clase, podemos llamar a un constructor desde otro utilizando this. Por ejemplo, si en el constructor con parámetros de la clase Fecha fuese necesario llamar al constructor sin parámetros de la misma clase escribimos:

METODO

CONSTRUCTOR COPIA

Se puede crear un objeto a partir de otro de su misma clase escribiendo un constructor llamado constructor copia. Este constructor copia los atributos de un objeto existente al objeto que se está creando. Los constructores copia tiene un solo argumento, el cual es una referencia a un objeto de la misma clase que será desde el que queremos copiar.

C.COPIA

El constructor copia recibe una referencia al objeto a copiar y asigna sus atributos uno a uno a cada atributo del objeto creado. Declarar el parámetro como final no es necesario pero protege al objeto a copiar de cualquier modificación accidental que se pudiera realizar sobre él.

Para definir los constructores se emplea la siguiente sintaxis:

     [modifVisibilidad] nombreConstructor (listaParámetros) [throws listaExcepciones]
     {
     }

Para modifVisibilidad se aplica las mismas normas que para atributos y métodos:

  • public: indica que es un método accesible a través de una instancia del objeto.
  • private: indica que a través de una instancia no es accesible el método. Al heredar el método se convierte en inaccesible.
  • protected: indica que a través de una instancia no es accesible el método. Al heredar si se puede usar desde la clase derivada.
  • Sin especificar: indica visibilidad de paquete, se puede acceder a través de una instancia, pero sólo de clases que se encuentren en el mismo paquete.

MÉTODOS EN JAVA CON Y SIN PARÁMETROS

Al igual que hicimos con distrito, continúa invocando los métodos del objeto taxi1 para establecer sus valores de matrícula a “BFG-7452” y tipo de motor a 2. Los métodos que hemos definido en la clase Taxi podemos clasificarlos de otra manera

Métodos que solicitan parámetros:

son métodos que nos piden algo (uno o varios datos u objetos). Es decir, el método para ejecutarse necesita que se le envíe un parámetro de un tipo concreto. Los métodos que solicitan parámetros se identifican porque en los paréntesis finales incluyen uno o varios términos, por ejemplo (String valorMatricula) nos indica que el método requiere un parámetro de tipo String. Fíjate que en este caso el parámetro es un objeto tipo String. En cambio la expresión (int valorTipoMotor) nos indica que el parámetro es un tipo primitivo int. Un método podría requerir varios parámetros para lo cual se indican separados por comas. Por ejemplo public int costeVivienda (int superficiem2, String zonaCiudad, int calidadesMedias).

Métodos sin parámetros:

son métodos que no piden ningún dato u objeto para ejecutarse. Un método sin parámetros se identifica porque sus paréntesis finales están vacíos. Estos métodos no necesitan recibir información para ejecutarse.

Una cuestión importante en los métodos con parámetros es el tipo requerido. Prueba a introducir un dato erróneo. Por ejemplo, introduce el texto “gasolina” cuando te pida el tipo de motor de un taxi. El resultado es que se produce un error porque el tipo recibido no coincide con el tipo esperado. El correcto manejo de tipos es un aspecto importante en la mayor parte de lenguajes de programación, incluido Java, y será algo a lo que debamos prestar especial atención siempre que estemos desarrollando código.

Los constructores funcionan en buena medida de forma similar a los métodos y también podemos definir constructores con parámetros y constructores sin parámetros. El sentido de que un constructor pida uno o varios parámetros es tener en cuenta esos parámetros a la hora de crear un objeto. Abordaremos los constructores con más detenimiento un poco más adelante.

CONCLUSIONES.

  • Tomar en cuenta los atributos que debe llevar un constructor, para que no exista errores al rato de llamarlos o poderlos hacer funcionar, dentro de un metido principal.
  • Saber declarar, las variables dentro del constructor dependiendo, del tipo de dato que sea.

RECOMENDACIONES

  • Saber cuando construir un constructor, para que no te ocupe demasiado espacio dentro del programa.
  • Saber distinguir los atributos que te dan dentro del constructor.

BIBLIOGRÁFICA

https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=436:tipos-de-metodos-y-constructores-en-java-metodos-con-parametros-y-metodos-sin-parametros-cu00625b&catid=68&Itemid=188

http://www.mundojava.net/definicion-de-constructores-de-una-clase.html?Pg=java_inicial_4_4_5.html

http://puntocomnoesunlenguaje.blogspot.com/2012/07/normal-0-21-false-false-false_103.html