Objetos y Clases

Un objeto es un tipo de datos abstracto.


La clase de un objeto determina las operaciones (métodos) que acepta ese objeto.

Animator Box
push(Grob go) moveTo(int x, int y)
delete(Grob go) getX()
getY()
setDim(int w, int h)


Para conocer un objeto es necesario tener una referencia de él:

Animator anim;
Box box;


Invocación de métodos:

anim.push(box);
box.moveTo(100,200);

anim.move(10,10);  // ¡Error en compilación!
La primera línea invoca el método push del objeto referenciado por anim.

Sólo es posible invocar los métodos de la clase del objeto.


Ejercicio: animaciones


Experimento 1:

Ahora cambie la línea ``mover(box, 120, 30, 80);'' por:

Box box2= box;
mover(box, 120, 30, 80);
mover(box2, 30, 100, 80);
Recompile y ejecute.


Experimento 2:

Reemplace la línea ``Box box2= box;'' por:

Box box2= new Box(Color.black, Color.red, 20, 25, 30, 15);
anim.push(box2);
Recompile y ejecute.



La referencia nula: null

Agregue el siguiente código:

Box box3= null;
anim.push(box3);
Recompile y ejecute.


java.lang.NullPointerException: at Scenes.Scene.addAfter(Scene.java:64) at Scenes.Scene.push(Scene.java:86) at Game.main(Game.java:27)

Una variable asignada con null no referencia ningún objeto. Si se intenta realizar cualquier operación con él se produce un NullPointerException.