Introduccion la Programación Orientada a Objetos

15.1

Existen tres partes en la definición en la programación orientada a objetos (Desde ahora POO)

  • utiliza objetos, NO ALGORITMOS, como bloques de construcción lógico (jerarquía de objetos)
  • cada objeto es instancia de una clase
  • las clases se relacionas unas con las otras por medio de relaciones de herencia
Un programa puede parecer orientado a objetos, pero si cualquiera de estos elementos no existen, deja de serlo. Específicamente, la programación sin herencia es distinta de la programación orientada a objetos, se denomina programación con tipos abstractos de datos, o programación basada en objetos.

El concepto de objeto, al igual que los tipos de datos abstractos o tipos definidos por el usuarios, es una colección de elementos de datos, junto con las funciones asociados para operar sobre esos datos. Sin embargo, la potencia real de los objetos reside en el modo en que los objetos pueden definir otros objetos. Este proceso ya comentado se denomina herencia y es el mecanismo que ayuda a construir programas que se modifican fácilmente y se adaptan a aplicaciones diferentes

Los conceptos fundamentales de la programación orientada a objetos son:
  • objetos
  • clases
  • herencias
  • mensajes
  • polimorfismo
Los programas orientados a objetos constan de objetos (dah). Los objetos de un programa se comunican con cada uno de los restantes pasando mensajes


15.1.2.

Ejemplos típicos de objetos:

objetos físicos:


elementos de interfaces gráficas de usuario en computadoras:

  • ventanas
  • menús
  • objetos gráficos (cuadrados, triángulos, etc)
  • cuadros de dialogo
Un objeto es una entidad que contiene los atributos que describen el estado de un objeto del mundo real y las acciones que se asocian con el objeto del mundo real. Se designa por un nombre o identificador del objeto. Dentro del contesto de un lenguajes orientado a objetos, un objeto encapsula datos y las funciones (métodos) que manejan esos datos.

atributos = datos o variables que caracterizan el estado de un objeto
métodos = procedimientos o acciones que cambian el estado de un objeto

El objeto retiene cierta información y conoce como realizar ciertas operaciones. El encapsulamiento de operaciones e información es muy importante. Los métodos de un objeto solo pueden manipular directamente datos asociados con ese objeto. Dicha encapsulación es la propiedad que permite incluir una sola entidad(el modulo u objeto) la información (los datos o atributos) y las operaciones ( los métodos o funciones) que operan sobre esa información.



Los objetos tienen un interfaz publico y una representación privada que permite ocultar información.

15.1.3
Métodos y mensajes
Un programa orientado a objetos consiste en un numero de objetos que se comunican unos con otros llamando a funciones miembro.
Los procedimientos y funciones denominados métodos o funciones miembro, residen en el objeto y determinan como actúan los objetos cuando reciben un mensaje. Un mensaje es la acción que hace un objeto. Un método es el procedimiento o funciones que se invoca para actuar sobre un objeto y especifica cómo se ejecuta un mensaje
el conjunto de mensajes a los cuales puede responder un objeto se denomina protocolo del objeto. Por ejemplo, el protocolo de un icono puede constar de mensajes invocados por el clic de un botón del ratón cuando el usuario localiza un puntero sobre el icono.
Al igual que las cajas negras, la estructura interna de un objeto esta oculta a los usuarios y programadores. Los mensajes que recibe el objeto son los únicos conductos que conectan el objeto con el mundo externo. Los datos de un objeto están disponibles para ser manipulado solo por los métodos del propio objeto.

Cuando se ejecuta un programa orientado a objetos ocurren tres sucesos. Primero. los objetos se crean a medida que se necesita. Segundo, los mensajes se mueven de un objeto  otro ( o desde el usuario a un objeto) a medida que el programa procesa información internamente o responde a la entrada del usuario. Tercero, cuando los objetos ya no son necesarios, se borran y se libera la memoria.


15.1.4
Una clase es la descripción de un conjunto de objetos : consta de métodos, y datos que resumen características comunes de un conjunto de objetos. Se pueden definir muchos objetos de la misma clase.

Las clases son similares a los tipos de datos y equivalen a modelos o plantillas que describen cómo se construyen ciertos tipos de objetos. Cada vez que se construye un objeto a partir de una clase estamos creando lo que se llama una instancia de esa clase. por consiguiente, los objetos no son mas que instancias de una clase. Una instancia es una variable de tipo objeto. En general, instancia de una clase y objeto son términos intercambiables

cada vez que se construye un objeto de una clase se crea una instancia de esa clase. Los objetos se crean cuando un mensaje de petición de creación se recibe por la clase


Una clase es una colección de objetos similares
ejemplo
  Charly Garcia, Spinetta, Pedro Aznar, David Lebon son objetos de una clase "cantante_argentino" es decir, personas especificas con nombres específicos son objetos de esa clase si poseen ciertas características.