Bruce_Eckel_Piensa_en_Java 04 capítulo

Páginas: 57 (14066 palabras) Publicado: 16 de febrero de 2016
4: Inicialización
y limpieza
A medida que progresa la revolución computacional, la programación "insegura"
se ha convertido en uno de los mayores culpables del encarecimiento de la programación.
Dos de estos aspectos de seguridad son la inicialización y la limpieza. Muchos de los fallos que se
dan en C ocurren cuando el programador olvida inicializar una variable. Esto es especialmente ha-bitual con las bibliotecas, cuando los usuarios no saben cómo inicializar un componente de una biblioteca, o incluso cuándo deben hacerlo. La limpieza o eliminación es un problema especial porque
es fácil olvidarse de un elemento una vez que ya no se utiliza, puesto que ya no tiene importancia.

Por consiguiente, los recursos que ese elemento utilizaba quedan reservados y es fácil acabar quedándose sinrecursos (y el más importante, la memoria).
C++ introdujo el concepto de constructor, un método especial invocado automáticamente en la creación de un objeto. Java también adoptó el constructor, y además tiene un recolector de basura que
libera automáticamente recursos de memoria cuando dejan de ser utilizados. Este capítulo examina
los aspectos de inicialización y eliminación, y su soporte enJava.

Inicialización garantizada
constructor
con
Es posible imaginar la creación de un método denominado inicializar( ) para cada clase que se escriba. El nombre se debe invocar antes de utilizar el objeto. Por desgracia, esto significa que el usuario
debe recordar llamar al método. En Java, el diseñador de cada clase puede garantizar que se inicialice
cada objeto proporcionando un método especialllamado constructor. Si una clase tiene un constructor,
Java llama automáticamente al constructor cuando se crea un objeto, antes de que los usuarios puedan
siquiera pensar en poner sus manos en él. Por consiguiente, la inicialización queda garantizada.
El siguiente reto es cómo llamar a este método. Hay dos aspectos. El primero es que cualquier nombre que se use podría colisionar con un nombreque nos gustaría utilizar como miembro en una clase. El segundo es que dado que el compilador es el responsable de invocar al constructor, debe saber siempre qué método invocar. La solución de C++ parece la mejor y más lógica, por lo que se
utiliza también en Java: el nombre del constructor es el mismo que el nombre de la clase. Tiene sentido que un método así se invoque automáticamente en lainicialización.
He aquí hay una clase con un constructor simple:
/ / : c04:ConstructorSimple.java
/ / Muestra de un constructor simple.

128

Piensa en Java

class Roca {
Roca() { / / Éste es el constructor
System.out.println("Creando Roca");

public class ConstructorSimple {
public static void main (String[] args)
for(int i = O; i < 10; itt)
new Roca ( ) ;

{

1
1 ///:Ahora, al crear un objeto:
newRoca ( )

;

se asigna almacenamiento y se invoca al constructor. Queda garantizado que el objeto será inicializado de manera adecuada antes de poder poner las manos sobre él.
Fíjese que el estilo de codificación de hacer que la primera letra de todos los métodos sea minúscula no se aplica a los constructores, dado que el nombre del constructor debe coincidir exactamente
con el nombre de la clase.Como cualquier método, el constructor puede tener parámetros para permitir especificar cómo se
crea un objeto. El ejemplo de arriba puede cambiarse sencillamente de forma que el constructor reciba un argumento:
/ / : c04:ConstructorSimple2.java
/ / Los constructores pueden tener parámetros.
class Roca2 {
Roca2 (int i) {
System.out.println(
"Creando la roca numero " + i) ;

1
1
public class CoristructorSimple2 {
public static void main(String[l
for(int i = O; i < 10; i+t)
new Roca2 (i):

args)

{

4: Inicialización y limpieza

129

Los parámetros del constructor proporcionan un medio para pasar parámetros a la inicialización de
un objeto. Por ejemplo, si la clase Arbol tiene un constructor que toma un número entero que indica la altura del árbol, crearíamos un objeto Arbol como éste:...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • 08 CAPITULO 04
  • Capitulo 04 Problemas
  • 04 Capitulo 3
  • CAPITULO 04 DERECHO ADMINISTRATIVO
  • Bruce_Eckel_Piensa_en_Java 01 capítulo
  • Bruce_Eckel_Piensa_en_Java 05 capítulo
  • Capitulo 04
  • CAPITULO 04

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS