Categorías destacadas
programacion php    
Artículo
131
¡votar!

 TutorJava Nivel Básico


Escribir un Método finalize()

Antes de que un objeto sea recolectado por el recolector de basura, el sistema llama al método finalize(). La intención de este método es liberar los recursos del sistema, como ficheros o conexiones abiertas antes de empezar la recolección.

Una clase puede proporcionar esta finalización simplemente definiendo e implementando un método llamado finalize(). El método finalize() debe declararse de la siguiente forma.

protected void finalize () throws throwable

Esta clase abre un fichero cuando se construye.

class AbrirUnFichero {
    FileInputStream unFichero = null;
    AbrirUnFichero (String nombreFichero) {
        try {
            unFichero = new FileInputStream(nombreFichero);
        } catch (java.io.FileNotFoundException e) {
        System.err.println("No se pudo abrir el fichero " + nombreFichero);
        }
    }
}

Para un buen comportamiento, la clase AbrirUnFichero debería cerrar el fichero cuando haya finalizado. Aquí tienes el método finalize() para la clase AbrirUnFichero.

protected void finalize () throws throwable {
    if (unFichero != null) {
        unFichero.close();
        unFichero = null;
    }
}

El método finalize() está declarado en la clase java.lang.Object. Así cuando escribas un método finalize() para tus clases estás sobreescribiendo el de su superclase. En Sobreescribir Métodos encontrarás más información sobre la sobreescritura de métodos.

Si la superclase tiene un método finalize(), probablemente este método deberá llamar al método finalize() de su superclase después de haber terminado sus tareas de limpieza. Esto limpiará cualquier recurso obtenido sin saberlo a través de los métodos heredados desde la superclase.

protected void finalize() throws Throwable {
    . . .
    // aquí va el código de limpieza de esta clase
    . . .
    super.finalize();
}
Publicado por:
Ricard Lou Torrijos
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon