Está en la página 1de 5

INGENIERA EN SISTEMAS COMPUTACIONALES POO Actividad I.

Unidad II Alejandro Resndiz Luna - 12590410

Mtodos Constructor El constructor es un tipo especfico de mtodo que siempre tiene el mismo nombre que la clase y se utiliza para construir objetos de esa clase. no tiene tipo de dato especfico de retorno, ni siquiera void. Esto se debe a que el tipo especfico que debe devolver un constructor de clase es el propio tipo de la clase. Si una clase no declara ningn constructor, Java incorpora un constructor por defecto (denominado constructor no-args) que no recibe ningn argumento y no hace nada. Si se declara algn constructor, entonces ya no se puede usar el constructor no-args. Es necesario usar el constructor declarado en la clase. El constructor no-args sera: class Punto { int x , y ; Punto ( ) { } } En java no es necesaria la definicin de destructores, pues el mismo lenguaje se encarga de la eliminacin y liberacin de la memoria ocupada por un objeto, esto se realiza cada vez que un objeto pierde todas sus referencias. // Cierra el canal cuando este objeto es reciclado protected void finalize() { close(); } [modifVisibilidad] nombreConstructor (listaParmetros) { }

Destructor Al igual que es posible definir mtodos constructores que incluyan cdigo que gestione la creacin de objetos de un tipo de dato, tambin es posible definir un destructor que gestione cmo se destruyen los objetos de ese tipo de dato. Este mtodo suele ser til para liberar recursos tales como los ficheros o las conexiones de redes abiertas que el objeto a destruir estuviese acaparando en el momento en que se fuese a destruir. La destruccin de un objeto es realizada por el recolector de basura cuando realiza una recoleccin de basura y detecta que no existen referencias a ese objeto ni en pila, ni en registros ni desde otros objetos s referenciados. Las recolecciones se inician automticamente cuando el recolector detecta que queda poca memoria libre o que se va a finalizar la ejecucin de la aplicacin, aunque tambin puede forzarse llamando al mtodo Collect() de la clase System.GC

INGENIERA EN SISTEMAS COMPUTACIONALES POO Actividad I. Unidad II Alejandro Resndiz Luna - 12590410

La sintaxis que se usa para definir un destructor es la siguiente:

~<nombreTipo>() { <cdigo> }

Ejemplo using System; class A { ~A() { Console.WriteLine("Destruido objeto de clase A"); } } class B:A { ~B() { Console.WriteLine("Destruido objeto de clase B"); } public static void Main() { new B(); } }

INGENIERA EN SISTEMAS COMPUTACIONALES POO Actividad I. Unidad II Alejandro Resndiz Luna - 12590410

Sobrecarga de operadores La sobrecarga de operadores permite redefinir ciertos operadores, como "+" y "-", para usarlos con las clases que hemos definido. Se llama sobrecarga de operadores porque estamos reutilizando el mismo operador con un nmero de usos diferentes, y el compilador decide cmo usar ese operador dependiendo sobre qu opera. La sobrecarga de operadores slo se puede utilizar con clases, no se pueden redefinir los operadores para los tipos simples predefinidos. Los operadores lgicos && y || pueden ser sobrecargados para las clases definidas por el programador, pero no funcionarn como operadores de short circuit. Todos los miembros de la construccin lgica sern evaluados sin ningn problema en lo que se refiere a la salida. Naturalmente los operadores lgicos predefinidos continuarn siendo operadores de short circuit como era de esperar, pero no los sobrecargados. Los siguientes operadores no pueden ser sobrecargados:

El operador ternario El operador de acceso a una clase o estructura : . El operador scope

Sobrecarga de mtodos Una sobrecarga de mtodos o funciones se conoce por tener mas de un mtodo con el mismo nombre, aplicando hasta el momento lo dicho generara errores al momento de compilar, en este punto se debe de aclarar ciertas caractersticas que posee la sobrecarga de mtodos:
o o

Los mtodos sobrecargados poseen el mismo nombre sin importar el nmero de mtodos que hayan. Se puede usar cualquier tipo de mtodo (String, int, float, Double, etc.). Recordemos que si el mtodo es diferente de Void se debe de retornar un valor dependiendo del tipo de mtodo declarado. Los parmetros o argumentos que posean los mtodos sobrecargados pueden ser de diferentes tipos y diferente cantidad de estos.

INGENIERA EN SISTEMAS COMPUTACIONALES POO Actividad I. Unidad II Alejandro Resndiz Luna - 12590410

Referencia Bibliogrfica Data Structures and Algorithm Analysis in Java, Mark Allen Weiss. Second Edition. Pearson Addison Wesley Java a travs de los ejemplos, Jesus Bobadilla. Alfaomega RA-MA Lenguaje de programacin, JAVA. Fco. Javier Ceballos.

Ejemplo public class ComplexNumber { private int real; private int imaginary; public ComplexNumber() : this(0, 0) // constructor { }

INGENIERA EN SISTEMAS COMPUTACIONALES POO Actividad I. Unidad II Alejandro Resndiz Luna - 12590410

public ComplexNumber(int r, int i) // constructor { real = r; imaginary = i; } // Override ToString() to display a complex number in the traditional format: public override string ToString() { return(System.String.Format("{0} + {1}i", real, imaginary)); } // Overloading '+' operator: public static ComplexNumber operator+(ComplexNumber a, ComplexNumber b) { return new ComplexNumber(a.real + b.real, a.imaginary + b.imaginary); } // Overloading '-' operator: public static ComplexNumber operator-(ComplexNumber a, ComplexNumber b) { return new ComplexNumber(a.real - b.real, a.imaginary - b.imaginary); } }