El método del constructor de Java
Crear un objeto con un constructor Java
Emilija Manevska / Getty Images
Un constructor de Java crea una nueva instancia de un objeto ya definido. Este artículo explica cómo utilizar los métodos de construcción de Java para crear un objeto Person.
Nota: Debe crear dos archivos en la misma carpeta para este ejemplo: Person.java define la clase Person, y PersonExample.java contiene la método principal que crea objetos Person.
El método del constructor
Comencemos por crear una clase de persona que tenga cuatro campos privados: nombre, apellido, dirección y nombre de usuario. Estos campos son variables privadas y juntos sus valores conforman el estado de un objeto. También hemos agregado el más simple de los métodos constructores:
|_+_||_+_|El método constructor es similar a cualquier otro método público, excepto que comparte el mismo nombre que la clase y no puede devolver un valor. Puede tener ninguno, uno o muchos parámetros.
Actualmente, nuestro método constructor no hace nada y es un buen momento para considerar lo que esto significa para el estado inicial del objeto Person. Si dejamos las cosas como están o no incluimos un método constructor en nuestra clase Persona (en Java puede definir una clase sin uno), entonces los campos no tendrían valores, y ciertamente queremos que nuestra persona tenga un nombre y una dirección, así como otras características. Si cree que existe la posibilidad de que su objeto no se use como esperaba y que los campos no se inicialicen cuando se crea el objeto, defínalos siempre con un valor predeterminado:
|_+_||_+_|Normalmente, para garantizar que un método constructor sea útil, lo diseñaríamos para esperar parámetros. Los valores pasados a través de estos parámetros se pueden utilizar para establecer los valores de los campos privados:
|_+_||_+_|Nuestro método constructor ahora espera que se le pasen los valores de cuatro cadenas. Luego se utilizan para establecer el estado inicial del objeto. También hemos agregado un nuevo método llamado mostrarDetallesPersona() para permitirnos ver el estado del objeto después de que se haya creado.
Llamar al método del constructor
A diferencia de otros métodos de un objeto, el método constructor debe llamarse usando la palabra clave 'nuevo':
|_+_||_+_|
Esto es lo que hicimos:
- Para crear la nueva instancia del objeto Persona, primero definimos una variable de tipo Persona que contendrá el objeto. En este ejemplo, lo hemos llamado dave .
- En el otro lado del signo igual, llamamos al método constructor de nuestra clase Persona y le pasamos cuatro valores de cadena. Nuestro método constructor tomará esos cuatro valores y establecerá el estado inicial del objeto Persona en: nombre = 'Dave', apellido = 'Davidson', dirección = '12 Main St', nombre de usuario = 'DDavidson'.
Observe cómo hemos cambiado a la clase principal de Java para llamar al objeto Persona. Cuando trabaja con objetos, los programas abarcarán varios archivos .java . Asegúrate de guardarlos en la misma carpeta. Para compilar y ejecutar el programa, simplemente compile y ejecute Java clase principal archivo (es decir, PersonExample.java ). El compilador de Java es lo suficientemente inteligente como para darse cuenta de que desea compilar el Person.java archivo también porque puede ver que lo ha usado en la clase PersonExample.
Denominación de parámetros
El compilador de Java se confunde si los parámetros del método constructor tienen los mismos nombres que los campos privados. En este ejemplo, puede ver que los hemos distinguido anteponiendo los parámetros con la palabra 'persona'. Vale la pena mencionar que hay otra manera. Podemos usar la palabra clave 'esto' en su lugar:
|_+_||_+_|La palabra clave 'this' le dice al compilador de Java que la variable a la que se le asigna el valor es la definida por la clase, no el parámetro. Es una cuestión de estilo de programación, pero este método nos ayuda a definir los parámetros del constructor sin tener que usar varios nombres.
Método de más de un constructor
Al diseñar sus clases de objetos, no está limitado a usar solo un método constructor. Puede decidir que hay un par de formas en que se puede inicializar un objeto. La única restricción para usar más de un método constructor es que los parámetros deben diferir.
Imagine que en el momento en que creamos el objeto Persona, es posible que no sepamos el nombre de usuario. Agreguemos un nuevo método constructor que establece el estado del objeto Persona usando solo el nombre, el apellido y la dirección:
|_+_||_+_|
Tenga en cuenta que el segundo método constructor también se llama 'Persona' y tampoco devuelve un valor. La única diferencia entre este y el primer método constructor son los parámetros; esta vez solo espera Tres valores de cadena: nombre, apellido y dirección.
Ahora podemos crear objetos Person de dos maneras diferentes:
|_+_||_+_|Persona dave se creará con un nombre, un apellido, una dirección y un nombre de usuario. Persona jim, sin embargo, no obtendrá un nombre de usuario, es decir, el nombre de usuario será la cadena vacía: nombre de usuario = ''.
Un resumen rápido
Los métodos constructores se llaman solo cuando se crea una nueva instancia de un objeto. Ellos:
- Debe tener el mismo nombre que la clase.
- No devolver un valor
- Puede tener ninguno, uno o muchos parámetros
- Puede enumerar más de uno siempre que cada método constructor tenga un conjunto diferente de parámetros
- Puede tener nombres de parámetros lo mismo que los campos privados siempre que se use la palabra clave 'esto'
- Se llaman usando la palabra clave 'nuevo'