30 agosto 2008

Constructores en Java: ¡adaptados para todo!

Hace unos cuantos posts, hablé de algunas características de la programación orientada a objetos que lo hacen único, particularmente del polimorfismo (bueno, ese es el aspecto del que quiero hablar hoy).

Como dije en aquél post, el polimorfismo le permite a una comportarse de diferentes maneras según el contexto en el que se encuentra. Vamos a hablar de un ejemplo de la vida real: yo. Aunque soy el mismo en muchos lugares, me comporto de manera diferentes cuando estoy en misa, que cuando estoy con mi esposa, que cuando estoy dando clases o que cuando hablo con algún empresario. De la misma manera, puedo hacer una sobrecarga de operadores (cosa del que hablaré en otra ocasión) que significa que un operador (por ejemplo el +) funcione diferente si se le aplica a cadenas o a números u otra cosa, sobrecargar funciones. El día de hoy, vamos a sobrecargar (u overload en inglés) un constructor (si tienes dudas sobre constructores, revisa este post que publiqué que habla de ellos).

Voy a comenzar creando una clase que se encargue de hacer operaciones entre 2 números enteros. Que contenga dos datos de tipo entero (en este caso se van a llamar x y y) y varios constructores: uno que funciones cuando no se inicialice ningún valor, otro cuando se le dan valores para x y y, otro cuando solo se inicialice x.

Aunque el propósito es mostrar la manera en que se pueden sobrecargar el constructor (palabra dominguera para decir que puedo tener una función que se comporte de manera diferente según el contexto en que se use), le voy a agregar otros métodos para que sirva para algo: uno que sume los numeritos, otro que los reste, otro que multiplique y otro que divida.

El código de la clase es esta (estoy usando un programa llamado Editra, que estuve probando aunque ahora puedo decir que prefiero el Notepad++). Incluí comentarios para que se entendiera mejor:


Aquí puedes ver mi ventana cuando compilé y corrí el programa:


En este caso, estoy haciendo varias versiones del constructor, pero lo mismo podría hacer para cualquier función. Por ejemplo, voy a alterar el código para agregarle otra función suma que sume x y y con otro valor proporcionado por el usuario. El código se ve así (ahora sí con el Notepad++):


Aquí puedes ver mi ventana cuando compilé y corrí el programa:



Ahora sí, los dejo. ¡Hasta la próxima!
Publicar un comentario
Related Posts Plugin for WordPress, Blogger...