Un constructor inicializa un objeto cuando se crea. Tiene el mismo nombre que su clase y es sintácticamente similar a un método. Sin embargo, los constructores no tienen un tipo de retorno explícito
Normalmente, utilizará un constructor para asignar valores iniciales a las variables de instancia definidas por la clase, o para realizar cualquier otro procedimiento de inicio requerido para crear un objeto con formato completo.
Todas las clases tienen constructores, ya sea que defina uno o no, porque Java proporciona automáticamente un constructor predeterminado que inicializa todas las variables miembro a cero. Sin embargo, una vez que define su propio constructor, el constructor predeterminado ya no se utiliza.
A continuación se muestra la sintaxis de un constructor:
class ClassName {
ClassName() {
}}
Java permite dos tipos de constructores a saber: No argument Constructors y Constructores parametrizados
No argument Constructors
Como el nombre especifica que no hay argumentos, los constructores de Java no aceptan ningún parámetro, al usar estos constructores, las variables de instancia de un método se inicializarán con valores fijos para todos los objetos.
Public class MyClass {
Int num;
MyClass() {
num = 100;
}}
Llamarías al constructor para inicializar objetos de la siguiente manera
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass();
MyClass t2 = new MyClass();
System.out.println(t1.num + " " + t2.num);
}}
Constructores parametrizados
La mayoría de las veces, necesitará un constructor que acepte uno o más parámetros. Los parámetros se agregan a un constructor de la misma manera en que se agregan a un método, simplemente declare dentro del paréntesis después del nombre del constructor.
Aquí hay un ejemplo simple que usa un constructor:
// Us simple constructor.
class MyClass {
int x;
// Siguiendo el constructor
MyClass(int i ) {
x = i;
}}
Llamaría al constructor para inicializar los objetos de la siguiente manera:
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass( 10 );
MyClass t2 = new MyClass( 20 );
System.out.println(t1.x + " " + t2.x);
}}