Está en la página 1de 12

Direccin General de Educacin Superior Tecnolgica

INSTITUTO TECNOLGICO DE SALINA CRUZ


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.

SALINA CRUZ, OAXACA A MARZO DE 2014.







NDICE

INTRODUCCIN ........................................................................................................................................ 3
Constructores ........................................................................................................................................... 4
Destructores ............................................................................................................................................. 7
PUNTEROS THIS ........................................................................................................................................ 9
CONCLUSIONES ...................................................................................................................................... 11
OTRAS FUENTES CONSULTADAS ............................................................................................................ 12


















3

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