Este documento describe constructores, destructores y punteros this en Java. Explica que los constructores inicializan objetos y pueden tener parámetros, y que los destructores liberan recursos cuando un objeto es eliminado. También indica que this es una referencia al objeto actual que permite acceder a sus atributos y métodos desde dentro de una clase.
Este documento describe constructores, destructores y punteros this en Java. Explica que los constructores inicializan objetos y pueden tener parámetros, y que los destructores liberan recursos cuando un objeto es eliminado. También indica que this es una referencia al objeto actual que permite acceder a sus atributos y métodos desde dentro de una clase.
Este documento describe constructores, destructores y punteros this en Java. Explica que los constructores inicializan objetos y pueden tener parámetros, y que los destructores liberan recursos cuando un objeto es eliminado. También indica que this es una referencia al objeto actual que permite acceder a sus atributos y métodos desde dentro de una clase.
UNIDAD 3 Clases y objetos MATERIA: PROGRAMACION ORIENTADA A OBJETOS FACILITADOR: M.C. SUSANA MONICA ROMAN NAJERA TRABAJO: COSTRUCTORES, DESTRUCTORES Y PUNTEROS THIS
Equipo n8: Abigail Antonio Lpez rocha lvaro de Jess Ramos Garca Benita Villalobos Prez
SEMESTRE: 2 GRUPO: E2
CARRERA: ING. EN TECNOLOGIAS DE LA INFORMACIN Y DE LAS COMUNICACIONES.
INTRODUCCIN La programacin orientada a objetos es principalmente basada en los objetos y los cuales determina distintas temas como son los constructores, destructores y punteros this son necesarios para programar dichos objetos. Conocer la funcin de los destructores, destructores y punteros this en la programacin java. Es fundamental la investigacin del presente trabajo ya que nos ayudara a conocer las caractersticas de cada elemento de las clases y objetos para que estn se puedan programar y as extender nuestros conocimientos sobre los destructores, constructores y punteros this en la POO. En la unidad 3 se realiza el presente trabajo de investigacin sobre los constructores, destructores y punteros this. Esperando que este trabajo contenga la informacin necesaria requerida por la docente y pueda dar su crtica constructiva para mejorar da a da.
4
COSTRUCTORES Y DESTRUCTORES Constructores Un constructor es un mtodo especial de una clase que se llama automticamente siempre que se declara un objeto de esa clase. Su funcin es inicializar el objeto y sirve para asegurarnos que los objetos siempre contengan valores vlidos.
Cuando se crea un objeto en Java se realizan las siguientes operaciones de forma automtica: 1. Se asigna memoria para el objeto. 2. Se inicializan los atributos de ese objeto con los valores predeterminados por el sistema. 3. Se llama al constructor de la clase que puede ser uno entre varios. El constructor de una clase tiene las siguientes caractersticas: Tiene el mismo nombre que la clase a la que pertenece.
En una clase puede haber varios constructores con el mismo nombre y distinto nmero de argumentos (se puede sobrecargar) No se hereda. No puede devolver ningn valor (incluyendo void).
Debe declararse pblico (salvo casos excepcionales) para que pueda ser invocado desde cualquier parte donde se desee crear un objeto de su clase.
Las clases pueden implementar un mtodo especial llamado constructor. Un constructor es un mtodo que inicia un objeto inmediatamente despus de su creacin. De esta forma nos evitamos el tener que iniciar las variables explcitamente para su iniciacin.
5
El constructor tiene exactamente el mismo nombre de la clase que lo implementa; no puede haber ningn otro mtodo que comparta su nombre con el de su clase. Una vez definido, se llamar automticamente al constructor al crear un objeto de esa clase (al utilizar el operador new).
El constructor no devuelve ningn tipo, ni siquiera void. Su misin es iniciar todo estado interno de un objeto (sus atributos), haciendo que el objeto sea utilizable inmediatamente; reservando memoria para sus atributos, iniciando sus valores.
El constructor de una clase es un mtodo estndar para inicializar los objetos de esa clase, es decir que sirve para dar los valores iniciales a los campos de un objeto en el momento en que se crea. El constructor se ejecuta siempre al crear un objeto. Los constructores de una clase tienen siempre el nombre de la clase y no tiene ningn valor devuelto (ni siquiera void). Si el usuario no declara un constructor el sistema siempre crea un constructor por defecto sin argumentos. Los constructores no se heredan.
CONSTRUCTOR EXPLICITO Si se define un constructor con parmetros, (definido explcitamente) el constructor por default se reemplaza por ste. El constructor sin parmetros es reemplazado por el constructor explcito Los constructores pueden estar sobrecargados, esto significa que podemos definir distintos constructores cambiando el orden, la cantidad y el tipo de parmetros que reciben
Ejemplo: class Rectangulo{ int x; int ancho; int alto; 6
// constructor Rectangulo(int x1, int y1, int w, int h) { x=x1; y=y1; ancho=w; alto=h; } // otro constructor polimorfico Rectangulo(int ancho, int alto) { x=0; y=0; this.ancho= ancho; this.alto= alto; } }
Constructor por defecto: Un constructor por defecto es un constructor sin parmetros que no hace nada. Sin embargo ser invocado cada vez que se construya un objeto sin especificar ningn argumento, en cuyo caso el objeto ser iniciado con los valores predeterminados por el sistema (los atributos numricos a ceros, los alfanumricos a nulos, y las referencias a objetos a null).
Constructor con Parmetros:
Un constructor con Parmetros siempre debe especificar algn argumento, en cuyo caso el objeto ser iniciado con los valores indicados por el usuario, y realizar tambin las acciones programadas al ejecutarse.
7
Destructores Cuando un objeto no va a ser utilizado, el espacio de memoria de dinmica que utiliza ha de ser explcitamente. El recolector de basura ser el encargado de liberar una zona de memoria dinmica que haba sido reservada mediante el operador new, cuando el objeto ya no va a ser utilizado ms durante el programa (por ejemplo, sale del mbito de utilizacin, o no es referenciado nuevamente). El sistema de recogida de basura se ejecuta peridicamente, buscando objetos que ya no estn referenciados. A veces una clase mantiene un recurso que no es de Java como un descriptor de archivo o un tipo de letra del sistema de ventanas. En este caso sera acertado el utilizar la finalizacin explcita, para asegurar que dicho recurso se libera. Esto se hace mediante la destruccin personalizada, un sistema similar a los destructores de C++. Para especificar una destruccin personalizada se aade un mtodo a la clase con el nombre finalize: Ejemplo: class Clase_final{ Clase Finalizada() { // Constructor // Reserva del recurso no Java o recurso compartido } protected void finalize() { // Liberacin del recurso no Java o recurso compartido } } El intrprete de Java llama al mtodo finalize(), si existe cuando vaya a reclamar el espacio de ese objeto, mediante la recogida de basura. Debe observarse que el mtodo finalize() es de tipo protected void y por lo tanto deber de sobreescribirse con este mismo tipo.
El destructor es un mtodo que se activa cuando el objeto desaparece. 8
El destructor es nico y sirve para que un objeto ejecute una accin (o grupo de acciones) antes de terminar su ciclo vital. Normalmente loa objetos dejan de existir cuando salen de su mbito (entorno) en donde fueron creados.
Un destructor en algunos lenguajes de programacin orientados a objetos es un mtodo de una clase que se llama justo antes de una instancia de esa clase y se elimina de la memoria. No todos los lenguajes de programacin orientados a objetos suelen tener un destructor. La contrapartida de un destructor es un constructor que se ejecuta cuando se crea el objeto, se instancia y se lo inicializa.
NOTA: Si creamos un programa y no definimos el Constructor, el sistema toma por defecto al Constructor Vaco, pero si definimos a un Constructor con parmetros y al Vaco, esto se llama Sobrecarga de Constructores, y es cuando un programa tienes 2 o ms Constructores, de los cuales solo uno puede estar vaco (es decir sin Parmetros). En JAVA no es necesaria la definicin de destructores (no existen) pues es un lenguaje que se encarga de la eliminacin de la memoria ocupada por un objeto atreves de la recoleccin de basura. Para este fin se crea un mtodo, denominado finalize, con las siguientes caractersticas:
protected void finalize() throws throwable { cuerpo del destructor } Ejemplo usando metodo finalize // Cierra el canal cuando este objeto es reciclado 9
Protected void finalize() { close(); }
PUNTEROS THIS El this es un puntero (C++) o referencia (Java) al objeto. El programador no lo crea ni lo inicializa. Cuando se llama a una funcin miembro, el cdigo oculto genera el this con la direccin del objeto y lo pasa como parmetro. En el cuerpo de mtodo se puede referir al objeto actual, desde donde fue llamado el mtodo, utilizando el this. En Java, slo se puede usar this dentro del cuerpo de la definicin de un mtodo de instancia, nunca en el cuerpo de un mtodo de clase. Ejemplo: public class Circulo { static int numCirculos = 0; public static final double PI=3.14159265358979323846; public double x, y, r; public Circulo(double x, double y, double r) { this.x = x; this.y = y; this.r = r; numCirculos++; } Public Circulo(double r) { this(0.0, 0.0, r); } Public Circulo(Circulo c) { this(c.x, c.y, c.r); } public Circulo() { this(0.0, 0.0, 1.0); } 10
public double Perimetro() {return 2.0 * PI * r;} public double Area() {return PI * r * r;} }
11
CONCLUSIONES Los destructores, constructores y punteros this son muy importantes en la programacin orientada a objetos para que nos ayuden a realizar una programa correcto y as no tener errores al momento de que estemos programando. Un aprendizaje que se pudo obtener es que aprendimos que los constructores siempre tienen que llevar el nombre de la clase, los destructores java no las soporta y los punteros this se hacen accesibles una variable cuyo identificador coincide con una variable local. Una experiencia que tuvimos es que conocimos conceptos nuevos en la programacin orientada sobre los destructores, constructores y punteros this y as extendimos ms nuestros conocimientos sobre estos temas. En un futuro nos ayudara para desarrollarnos en nuestro campo laboral y no se nos dificultara identificar cada uno de estos temas as como tambin podemos orientar a otras personas sin ninguna dificultad. Esperando que este trabajo contenga la informacin requerida por la docente y de una crtica constructiva para poder mejorar da a da.
12
OTRAS FUENTES CONSULTADAS Punteros this. Internet. En lnea. Pagina consultada el da 18 de marzo de 2014. Disponible en: www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r70371.PPT Punteros this. Internet. En lnea. Pagina consultada el da 18 de marzo de 2014. Disponible en: http://foros.laneros.com/temas/para-que-sirve-this-en-java.92226/ Concepto de constructor. Internet. En lnea. Pagina consultada el da 18 de marzo de 2014. Disponible en: http://www.slideshare.net/adrili/constructor-y-destructor Concepto de constructor. Internet en lnea. Pgina consultada el da 18 de marzo de 2014.disponible en: http://xtremepoo.blogspot.mx/2009/06/concepto-de-destructor-y-constructor.html Punteros this. Internet. En lnea. Pgina consultada el da 18 de marzo de 2014. Disponible en: http://es.scribd.com/doc/13562650/62/El-puntero-this Punteros this. Internet. En lnea. Pagina consultada el dia 18 de marzo de 2014. Disponible en: http://slashmobility.com/slash/cursos/fundamentos-java/Curso-Java-Inicial-5-Relaciones-entre- Objetos.pdf