Un objeto es un tipo de datos abstracto.
new Animator(); new Box(Color.black, Color.red, 20, 25, 30, 15);
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;
anim= new Animator(); box= new Box(Color.black, Color.red, 20, 25, 30, 15); box= new Animator(); // ¡Error en compilación!
Invocación de métodos:
La primera línea invoca el método push del objeto referenciado por anim.anim.push(box); box.moveTo(100,200); anim.move(10,10); // ¡Error en compilación!
Sólo es posible invocar los métodos de la clase del objeto.
Esta línea desplaza la caja hacia el punto (120,100) a 80 pixel por segundo.
Experimento 1:
Ahora cambie la línea ``mover(box, 120, 30, 80);'' por:
Recompile y ejecute.Box box2= box; mover(box, 120, 30, 80); mover(box2, 30, 100, 80);
Experimento 2:
Reemplace la línea ``Box box2= box;'' por:
Recompile y ejecute.Box box2= new Box(Color.black, Color.red, 20, 25, 30, 15); anim.push(box2);
Agregue el siguiente código:
Recompile y ejecute.Box box3= null; anim.push(box3);
Una variable asignada con null no referencia ningún objeto. Si se intenta realizar cualquier operación con él se produce un NullPointerException.