You are on page 1of 5

MAESTRA EN GERENCIA INFORMTICA

TAREA DE PROGRAMACIN ORIENTADA A OBJETOS

Nombre: Rafael de la Torre


Nivel: Primer Semestre

TAREA 1. DEFINICIN DE LA CLASE OBJECT

La clase Object en Java


Todas las clases son en realidad subclases de una clase mas amplia: la clase Object. Cuando
decimos esto estamos diciendo que todas las clases que utilicemos hasta las que creamos se
extienden de la clase Object. Esto se puede ver mejor cuando generamos una clase por
ejemplo

Persona,

cuando

utilizamos

el auto-completar del

eclipse

vemos

que

la

clase recin creada Persona tiene muchos mas mtodos los cuales nunca creamos, por
ejemplo:el mtodo .equals(),hashCode(), etc.

Diagrama UML de la clase Object en Java

En el anterior diagrama UML, podemos ver como todas las clases creadas heredan de la
clase Object. Esto a excepcin de Cliente que hereda de Usuario, aunque al estar sta ltima
heredando de Object convierte automticamente a Cliente en un Object tambin.

La clase Object est situada en la parte ms alta del rbol de la herencia en el entorno de
desarrollo de Java. Todas las clases del sistema Java son descendentes (directos o indirectos)
de la clase Object. Esta clase define los estados y comportamientos bsicos que todos los
objetos deben tener, como la posibilidad de compararse unos con otros, de convertirse a
cadenas, de esperar una condicin variable, de notificar a otros objetos que la condicin
variable ha cambiado y devolver la clase del objeto.

El mtodo equals()
equals() se utiliza para comparar si dos objetos son iguales. Este mtodo devuelve true si los
objetos son iguales, o false si no lo son. Observe que la igualdad no significa que los objetos
sean el mismo objeto. Consideremos este cdigo que compara dos enteros.

Integer uno = new Integer(1), otroUno = new Integer(1);


if (uno.equals(otroUno))
System.out.println("Los objetos son Iguales");

Este cdigo mostrar Los objetos son Iguales aunque uno y otroUno referencian a dos objetos
distintos. Se les considera iguales porque su contenido es el mismo valor entero.
Las clases deberan sobreescribir este mtodo proporcionando la comprobacin de igualdad
apropiada. Un mtodo equals() debera comparar el contenido de los objetos para ver si son
funcionalmente iguales y devolver true si es as.

El mtodo getClass()
El mtodo getClass() es un mtodo final (no puede sobreescribirse) que devuelve una
representacin en tiempo de ejecucin de la clase del objeto. Este mtodo devuelve un objeto
Class al que se le puede pedir varia informacin sobre la clase, como su nombre, el nombre de
su superclase y los nombres de los interfaces que implementa. El siguiente mtodo obtiene y
muestra el nombre de la clase de un objeto.

void PrintClassName(Object obj) {

System.out.println("La clase del Objeto es " +


obj.getClass().getName());
}
Un uso muy manejado del mtodo getClass() es crear un ejemplar de una clase sin conocer la
clase en el momento de la compilacin. Este mtodo de ejemplo, crea un nuevo ejemplar de la
misma clase que obj que puede ser cualquier clase heredada desde Object (lo que significa que
podra ser cualquier clase).

Object createNewInstanceOf(Object obj) {


return obj.getClass().newInstance();
}

El mtodo toString()
Este mtodo devuelve una cadena de texto que representa al objeto. Se puede utilizar toString
para mostrar un objeto. Por ejemplo, se podra mostrar una representacin del Thread actual
de la siguiente forma.

System.out.println(Thread.currentThread().toString());
System.out.println(new Integer(44).toString());

La representacin de un objeto depende enteramente del objeto. El String de un objeto entero


es el valor del entero mostrado como texto. El String de un objeto Thread contiene varios
atributos sobre el thread, como su nombre y prioridad. Por ejemplo, las dos lneas anteriores
daran la siguiente salida.

Thread[main,5,main]
4

El mtodo toString() es muy til para depuracin y tambin puede sobreescribir este mtodo
en todas las clases.
. Otros mtodos de Object cubiertos en otras lecciones o secciones
La clase Object proporciona un mtodo, finalize() que limpia un objeto antes de recolectar la
basura. Este mtodo se explica en la leccin Eliminar Objetos no Utilizados. Tambin en:
Escribir un Mtodo finalize() puedes ver cmo sobreescribir este mtodo para manejar las
necesidades de finalizacin de las clases

La clase Object tambim proporciona otros cinco mtodos.


notify()
notifyAll()
wait() (tres versiones)
que son crticos cuando se escriben programas Java con mltiples thread. Estos mtodos
ayudan a asegurarse que los thread estn sincronizados y se cubren en Threads de Control.

TAREA 2. APP DE LA CLASE OBJECT

CLASE BICICLETA
public class Bicicleta {
// La clase Bicicleta tiene
// tres campos
public int cadencia;
public int marchas;
public int velocidad;
// La clase Bicicleta tiene
// un constructor
public Bicicleta(int startCadencia, int startVelocidad, int
startMarchas) {
marchas = startMarchas;
cadencia = startCadencia;
velocidad = startVelocidad;
}
// La clase Bicicleta tiene
// cuatro mtodos
public void setCadencia(int newValue) {
cadencia = newValue;
}
public void setMarchas(int newValue) {
marchas = newValue;
}
public void frenar(int disminuir) {
velocidad -= disminuir;
}
public void acelerar(int incrementar) {
velocidad += incrementar;
}
}

Una declaracin de clase para una clase BicicletaMontaera que es una subclase de la
bicicleta podra tener este aspecto:
public class BicicletaMontaera extends Bicicleta {

// la subclase BicicletaMontaera tiene


// un campo
public int alturaAsiento;
// la subclase BicicletaMontaera tiene
// un constructor
public BicicletaMontaera (int startAltura, int startCadencia,
int startVelocidad, int startMarchas) {
super(startCadencia, startVelocidad, startMarchas);
alturaAsiento = startAltura;
}
// la subclase BicicletaMontaera tiene
// un metodo
public void setAltura(int newValue) {
alturaAsiento = newValue;
}
}

You might also like