1. Programación orientada a objetos

POO

Programar es conseguir que una máquina resuelva un problema. La orientación a objetos es una forma de programar (un paradigma) que intenta representar la realidad con la que se trabaja.

Para ello se busca el modelo que queremos trabajar (llamado clase) y, cuando el programa se ejecuté se crearán objetos de ese modelo.

Vamos a intentar explicar la orientación a objetos mediante el siguiente ejemplo. Tenemos que programar la gestión de urgencias de un hospital.

¿Por dónde empezamos? Primero diseño la clase paciente. Defino los campos que necesito tratar, almacenar o compartir. Podrían ser su número de historial, sus datos personales, su historial y su tratamiento.

Defino además los métodos que necesito para trabajar con el paciente, por ejemplo: diagnosticar, comprobar la evolución, dar el alta, etc.

Y ya sólo falta que ocurran eventos, el primero de ellos es que con cada persona que entre a urgencias se creará su ficha, un objeto de la clase paciente. Gracias a los métodos que tenemos programados podemos ir actualizando su historial, consultar su estado, darle el alta,....

Y además podemos establecer más clases, incluso heredadas. Así puedo tener la clase diabético, que es un tipo de paciente con su atributos y métodos específicos. 

Veamos la  explicación formal.

Icono IDevice Actividad
Un objeto es una estructura de datos que tiene asignadas propiedades y que puede generar eventos y métodos. Un objeto es una instancia de una clase, es decir, un caso concreto de una clase. Una clase describe el comportamiento de un objeto mediante las propiedades y los métodos.
Una propiedad es un atributo o una característica de un objeto. Almacenan información sobre el estado del objeto. El conjunto de valores de cada una de las propiedades de un objeto definen el estado de dicho objeto.  Un evento es una acción desencadenada por un objeto.

Estos conceptos son complejos, explicarlos es una tarea ardua que supera los objetivos del tema. No obstante, es necesario hacer una serie de aclaraciones:
  • cada objeto tiene asignada una dirección en tiempo de ejecución que puede ser mostrada en la ventana de observación y un estado que puede ser modificado o consultado.
  • cada clase está asociada a un objeto y puede estar definida en el programa o ser definida por el programador como pública o privada.
Icono IDevice Objetivos
El concepto de programación orientada a objetos y, especialmente, el concepto de objeto es difícil de definir. Por eso, es mejor ilustrar la definición con los ejemplos que encontrarás en esta web: ejemplos_objetos.
La sintaxis de un objeto y su propiedad es: NombreDelObjeto.Propiedad

Icono de iDevice AV - Actividad de Espacios en Blanco

Resuelve el siguiente crucigrama:

  1. Instancia de una clase.
  2. Describe el comportamiento de un objeto.
  3. Son los atributos de un objeto.
      1.     2.      
     
           
               
               
               
               
3.
  

Las posibilidades de creación de aplicaciones con este tipo de lenguajes son tan grandes que los lenguajes más conocidos son lenguajes orientados a objetos.
  • C++ y ADA son lenguajes textuales.
  • Visual BASIC y Gambas son lenguajes basados en entornos gráficos.
  • Java y VB.NET son lenguajes orientados a internet.
La característica que va a marcar el tema va a ser el desarrollo de aplicaciones en entornos gráficos. En este campo, sin duda ha destacado el lenguaje Visual BASIC. Pero los desarrolladores de software libre han creado el lenguaje Gambas para cubrir esta necesidad en los sistemas operativos GNU/Linux.
versus
Img 5. Logo Visual Studio 2008 Pro
Img 6. Logo Gambas 2
Icono IDevice Objetivos

Visual BASIC versus Gambas

 

La polémica está servida. Este artículo es una traducción de una comparativa entre ambos lenguajes. Aunque no entiendas todos los conceptos, seguro que más adelante lo entenderás.