Introducción a la POO

Publicado: Sábado, 13 \13\UTC junio \13\UTC 2009 en 09. Programación orientada a objetos (I)

La programación orientada a objetos es la penúltima evolución respecto a las metodologías de programación. En esta entrada veremos algunos de los conceptos básicos que conciernen a este tipo de programación, que ampliaremos en entradas siguientes.

Clases y objetos

La programación orientada a objetos se basa en un modelo de lo que vemos en la vida real. Para vosotros no será algo nuevo introduciros en este modelo, ya que habéis realizado un proceso de abstracción muy similar en el modelo Entidad-Interrelación (modelo ER) del módulo Sistemas Gestores de Bases de Datos.

Decíamos en una entrada anterior que “todo programa en Java se construye a base de objetos”. Pero en realidad, el programador de Java no define objetos, sino clases. Y en concreto, clases de objetos.

Pero, ¿qué es una clase? Una clase es una plantilla de un conjunto de objetos que tienen características similares.

La definición en sí nos dice muy poco, pero con un par de ejemplos seguro que lo entendéis muy bien.

________________

Ejemplo 1 (para aquellos que ya habéis estudiado el modelo ER del módulo SGBD).

Una clase es equivalente a una entidad, con algunas características adicionales que posteriormente veremos.
Un objeto es equivalente a una instancia de una entidad.

Ejemplo 2 (para el resto de alumnos).

Haremos una analogía con respecto a la vida real: si os digo que penséis en un caballo, seguramente todos coincidiremos más o menos en algo parecido: un animal que tiene cuatro patas, una cola, cabellera que le sale de la cabeza y llega hasta el lomo, … Pero ese caballo no existe en la realidad, nos hemos creado mentalmente un modelo abstracto para el concepto de caballo. A ese modelo mental es lo que denominaremos clase.

Si queremos, por ejemplo, montar a caballo, será complicado hacerlo en ese modelo que tenemos en la cabeza. Para poder disfrutar con él, necesitamos tener un caballo en concreto. A esa concreción (instancia) del caballo es lo que llamaremos objeto.

Ese caballo (objeto) será único, y no es posible que exista otro igual. Por tanto, tendrá características diferenciadoras al resto de caballos (otros objetos), como el color de su cuerpo, el peso, el largo de sus patas, etcétera.

________________

Gráficamente:

Objetos e instancias

Cuando empecemos a programar en Java, el primer objetivo es construirnos el conjunto de clases adecuadas para resolver los requerimientos de nuestro programa.

Atributos y métodos

Una clase se compone de dos partes fundamentales: los atributos y los métodos.

Atributos

Los atributos contienen información sobre un objeto. Si pensamos en una clase coche, sus atributos podrían ser:

  • cilindrada: 1800, 2000, 2800.
  • color: blanco, azul, negro, plata.
  • gama: monovolumen, cabrio, coupé.

Los atributos se definen por medio de variables, así que podemos considerarlas como variables del propio objeto.

Métodos

Los métodos permiten añadir comportamiento a un objeto. Esta es la diferencia fundamental respecto a lo que conocéis como entidad en el modelo ER aquellos que habéis estudiado el módulo SGBD, puesto que la entidad era algo “estático”.

Un método nos permite interactuar con el objeto al que pertenece, o bien interactuar con otros objetos. Si continuamos con el ejemplo de la clase coche, podríamos tener los siguientes métodos:

  • Arrancar.
  • Parar.
  • Frenar.
  • Acelerar.

Los métodos se definen por medio de funciones, así que podemos considerarlos como funciones del propio objeto.


Creative Commons License
Introducción a la POO by Cristian Jorge Garcia Marcos is licensed under a Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 España License.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s