Hasta ahora un objeto se ha definido con una clase. Una clase es definida como un conjunto de propiedades y metodos. Cada propiedad tiene un tipo de dato, escalar o compuesto Cada metodo es una rutina que contiene codigo para manipular las propiedades y generar nueva informacion. Si se desea "prestar" a cualquier programador una propiedad o metodo, se antepone un prefijo (la palabra public) Constructores. Una o varias rutinas para iniciar el contenido del objeto. En esta rutina se escriben las reglas de inicialización y se encarga de retornar al objeto creado. El constructor es invocado al momento de aplicar la operacion de creacion del objeto. El constructor NO se debe escribir necesariamente, el programador de la clase decide indicarlo o no. Si no existe un constructor codificado, por omision se proporciona un constructor. Por ejemplo: class A { int p1, p2; A() { p1 =1 ; p2 = 2; } } + El constructor se declara con el mismo nombre que la clase. + El constructor es una rutina que NO necesita declaracion sobre el valor de retorno + El constructor SOLO es invocado al momento de aplicar la operacion de construcción (aplicar el operador new sobre una clase) ..... A aa1; aa1 = new A(); .... Si un constructor NO es declarado, el ambiente de objetos se encarga de proporcionar un constructor por omision. Si la propiedad es de tipo escalar (int, byte, double, long,float, boolean, char) les indica valor cero (o su equivalente) En caso contrario (por ejemplo una propiedad de tipo String), el valor de la propiedad es null Un constructor puede llevar varios parametros (dado que es una rutina). En caso de que lleve parametros, se deben declar dentro del constructor y se pueden usar en el mismo Por ejemplo: class A { int p1, p2; A(int par1,int par2) { p1 = par1 ; p2 = par2; } } Y al usar la clase A aa1 ; aa1 = new A(2,3); Necesario notar que no es valido ya: A aa1; aa1 = new A(); dado que el constructor A() fue anulado (es decir, no esta declarado dentro de la clase) Si se desea tener los dos constructores, se deben indicar sus declaraciones, de hecho es valido declar dos o mas constructores class A { int p1, p2; A() { p1 = p2 = 0; } A(int par1,int par2) { p1 = par1 ; p2 = par2; } } Y un programa puede hacer: A aa1; aa1 = new A(); A aa2 ; aa2 = new A(2,3); Sin embargo no es valido aa3 = new A(1); dado que el constructor de un parametro no ha sido declarado No es valido aa4 = new A(,2); aa5 = new A(2,); dado que esto es un error de sintaxis