lunes, 13 de septiembre de 2010

MODULO POO 1 (07/09/10 - 10/09/10)

Los objetos combinan estado (atributos), comportamiento (métodos) e identidad.
El comportamiento a veces cambia el estado del objeto. La identidad es lo que diferencia a un objeto específico del resto.

A partir de una clase generamos instancias u objetos de la misma. Son esos objetos los que recibne invocaciones, tienes un estado y una identidad.

Existe un caso especial, se trata de las clases estáticas que suelen contener métodos estáticos. En este caso los métodos pueden invocarse directamente sobre la clase, no necesitamos crear objetos de la clase para acceder a sus métodos. El estado de un atributo estático afecta a todos los objetos de la clase.

En POO todos los elementos heredan de la clase Object. Al hacerlo todos los métodos de Object también se heredan con la clase.

Ojo: Los tipos primitivos (boolean, float, long, short, int) no son objetos. Los tipos primitivos no heredan de Object, lo que implican que no tiene los métodos "equals", "toString", "hascode", ...
Es mejor usar objetos (la clase envolvente del tipo primitivo) en programación que emplear tipos primitivos. Una de las razones es que siempre podemos usar "equals" para comparar dos objetos entre si. Hay que tener cuidado con distinguir las comparaciones por referencia y por valor.

Colecciones (java.util.Collection)

Hay 3 tipos básicos de colecciones en Java:

- List (lista): Colecciones indexadas donde cada elemento de la lista tiene un índice. Se admiten duplicados.

- Set (conjunto): No se admiten duplicados en un conjunto. Tampoco existe la función "get(objeto)" como en las listas, hay que recorrer el conjunto para obtener el objeto buscado.

-Map (mapa): Está compuesto por un grupo de (claves, valores). Las claves son un set -> no admiten duplicados. Tanto claves como valores pueden ser objetos de cualquier tipo.

Para buscar un objeto en una colección empleamos el método "contains" que se sustenta en el "equals" definidos para el objeto buscado. Relacionadas con las búsquedas están las interfaces "Comparable" y "Comparator".

No hay comentarios:

Publicar un comentario