Herencia en java paso a paso

Solo disponible en BuenasTareas
  • Páginas : 42 (10474 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de octubre de 2010
Leer documento completo
Vista previa del texto
6: Reusando Clases
Una de las características más apremiantes acerca de Java es el aprovechamiento de código. Pero para ser revolucionario, usted tiene que poder hacer más que copiar código y cambiarlo
Ese es el enfoque usado en idiomas procesales como C, y no ha surtido efecto muy bien. Como todo en Java, la solución da vueltas entorno a las clases. Usted re-usa código creando clases nuevas,pero en lugar de crearlos de la nada, usted usa clases existentes que alguien ya ha construido y ha depurado. La información retroactiva
El truco es usar las clases sin ensuciar el código existente. En este capítulo usted verá dos formas para lograr esto. La primera forma es muy franca: Usted simplemente crea objetos de su clase existente dentro de la clase nueva. Esto es denominado composición,porque la clase nueva está compuesta de objetos de clases existentes. Usted simplemente re-usa la funcionabilidad del código, no su forma. La información retroactiva
La segunda forma es más sutil. Crea una clase nueva como un tipo de una clase existente. Usted literalmente toma la forma de la clase existente y le añade código a la clase sin modificar la clase existente. Este acto mágico esdenominado herencia, y el compilador hace la mayoria del trabajo. La herencia es una de las piedras angulares de la programación orientada a objetos, y tiene implicaciones adicionales que serán exploradas en el capítulo 7. La información retroactiva
Resulta que mucho de la sintaxis y el comportamiento es similar para la composición y la herencia (lo cual tiene sentido porque ambas son formas deconfeccionar tipos nuevos a partir de tipos existentes). En este capítulo, usted se enterará de estos mecanismos de aprovechamiento de código. La información retroactiva
La sintaxis de composición
Hasta ahora, la composición ha sido usada muy frecuentemente. Usted simplemente coloca referencias del objeto dentro de las clases nuevas. Por ejemplo, suponga que a usted le gustaría un objeto que mantenga avarios objetos String, un par de tipos primitivos, y un objeto de otra clase. Para los objetos, usted pone referencias dentro de su clase nueva, pero usted define a los tipos primitivos directamente:
//: c06:SprinklerSystem.java
// Composition for code reuse.
import com.bruceeckel.simpletest.*;

class WaterSource {
private String s;
WaterSource() {System.out.println("WaterSource()");
s = new String("Constructed");
}
public String toString() { return s; }
}

public class SprinklerSystem {
private static Test monitor = new Test();
private String valve1, valve2, valve3, valve4;
private WaterSource source;
private int i;
private float f;
public String toString() {
return
"valve1 = " + valve1 + "\n" +
"valve2 = " + valve2 +"\n" +
"valve3 = " + valve3 + "\n" +
"valve4 = " + valve4 + "\n" +
"i = " + i + "\n" +
"f = " + f + "\n" +
"source = " + source;
}
public static void main(String[] args) {
SprinklerSystem sprinklers = new SprinklerSystem();
System.out.println(sprinklers);
monitor.expect(new String[] {
"valve1 = null",
"valve2 = null","valve3 = null",
"valve4 = null",
"i = 0",
"f = 0.0",
"source = null"
});
}
} ///:~

Uno de los métodos definidos en ambas clases es especial: toString (). Usted se enterará más tarde de que cada objeto no-primitivo tiene un método toString (), y es llamado en situaciones especiales cuando el compilador quiere un String pero este tiene un objeto. Entonces en laexpresión en SprinklerSystem.toString ():
"source = " + source;
El compilador ve que esta tratando de agregar a un objeto String ("source") a un WaterSource. ¡Porque usted sólo puede agregar un String a otro String, dice “ convertiré source en un String llamando a toString ()!” Después de hacer esto puede combinar las dos String y le pueden pasar la String resultante a System.out.println (). En...
tracking img