23.02.2017 Views

Java

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

90<br />

4. clases<br />

}<br />

}<br />

…<br />

public class SuperUnitTest {<br />

@Test public void testSuper() {<br />

C c = new C();<br />

assertSame(c, c.getThis());<br />

assertEquals(“A”, c.foo());<br />

assertEquals(“C y B y A”, c.bar());<br />

assertEquals(“C y A”, c.zip());<br />

}<br />

}<br />

Lo estático versus<br />

lo no estático<br />

Los métodos y atributos que definimos como estáticos pueden<br />

parecer que pertenecen a la clase, ya que no pertenecen a las instancias,<br />

y los accedemos mediante el nombre de la clase. Si recordamos que<br />

todas las clases son instancias de la clase Class, entenderemos que todas<br />

ellas responden a los mismos mensajes y poseen los mismos atributos.<br />

Los elementos estáticos están asociados a la clase, pero no pertenecen<br />

a ella; el compilador, junto con la JVM, manejan el acceso a ellos. Estos<br />

elementos son globales. Los métodos estáticos son resueltos en tiempo<br />

de compilación y no resultan del envío de un mensaje. Es posible<br />

acceder a los métodos estáticos de una clase padre usando el nombre de<br />

una clase hija. Debemos saber que en ellos no se usa this ni super.<br />

En cambio, los métodos de instancia son resueltos en tiempo de<br />

ejecución y resultan del envío de un mensaje. Esto da una flexibilidad<br />

que no se tiene con los métodos estáticos ya que el comportamiento está<br />

dado por cómo relacionamos los objetos durante la ejecución, en vez de<br />

forzarlo en tiempo de compilación a un código específico. Los envíos de<br />

mensajes son puntos de acceso a distintos comportamientos, ya que el<br />

objeto receptor puede cambiar. En los métodos estáticos está fijo para<br />

siempre, a menos que cambiemos el código fuente y lo recompilemos.<br />

www.redusers.com<br />

www.FreeLibros.me

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!