Cuando se crea un objeto (se instancia una clase) es posible
definir un proceso de inicializacin que prepare el objeto para ser usado. Esta inicializacin se lleva a cabo invocando un mtodo especial denominado constructor. Esta invocacin es implcita y se realiza automticamente cuando se utiliza el operador new. os constructores tienen al!unas caractersticas especiales"
El nombre del constructor tiene que se i!ual al de la clase.
#uede recibir cualquier n$mero de ar!umentos de cualquier
tipo% como cualquier otro mtodo.
&o devuelve nin!$n valor (en su declaracin no se declara ni
siquiera void).
Constructores El constructor no es un miembro ms de una clase. 'lo es invocado cuando se crea el objeto (con el operador new). &o puede invocarse e(plcitamente en nin!$n otro momento. 'e podra escribir un constructor para la clase #unto% de la si!uiente forma" class #unto ) int ( % y * #unto ( int a % int b ) ) ( + a * y + b * , , Con este constructor se creara un objeto de la clase #unto de la si!uiente forma" #unto p + ne- #unto ( . % / )*
'obrecar!a de constructores. 0na clase puede definir varios constructores (un objeto puede inicializarse de varias formas). #ara cada instanciacin se usa el que coincide en n$mero y tipo de ar!umentos. 'i no 1ay nin!uno coincidente se produce un error en tiempo de compilacin. #or ejemplo" class #unto ) int ( % y * #unto ( int a % int b ) ) ( + a * y + b * , #unto () ) ( + 2 * y + 2* , , En el ejemplo se definen dos constructores. El citado en el ejemplo anterior y un se!undo que no recibe ar!umentos e inicializa las variables miembro a 2. (&ota" veremos ms adelante que este tipo de inicializacin es innecesario% pero para nuestro ejemplo sirve).
'obrecar!a de constructores. 3esde un constructor puede invocarse e(plcitamente a otro constructor utilizando la palabra reservada this. this es una referencia al propio objeto. Cuando this es se!uido por parntesis se entiende que se est invocando al constructor del objeto en cuestin. El ejemplo anterior puede reescribirse de la si!uiente forma" class #unto ) int ( % y * #unto ( int a % int b ) ) ( + a * y + b * , #unto () ) t1is (2%2)* , , Cuando se declaran varios constructores para una misma clase estos deben distin!uirse en la lista de ar!umentos% bien en el n$mero% bien en el tipo. Esta caracterstica de definir mtodos con el mismo nombre se denomina sobrecar!a y es aplicable a cualquier mtodo miembro de una clase