Programación Orientada a Objetos
El principio básico de la programación orientada a objetos es que un sistema de software se ve como una secuencia de transformaciones en un conjunto de objetos.
Objeto: Tiene el mismo significado que un nombre o una frase nominal. Es una persona, un lugar o una cosa. Ejemplo: persona, tabla, computadora, avión, diccionario, ciudad.
La mayoría de los objetos del mundo real tienen atributos (características que los describen). Por ejemplo, los atributos de una persona incluyen el nombre, la edad, el sexo, la fecha de nacimiento, dirección, etc.
Los objetos tienen atributos y ellos a su vez comportamiento. El comportamiento es el conjunto de cosas que puede hacer un objeto. Por ejemplo, una persona puede estudiar, caminar, trabajar, etc.
En síntesis, se puede decir que los objetos conocen cosas y hacen cosas. Las cosas que un objeto conoce son sus atributos, las cosas que puede hacer un objeto son su comportamiento.
Los principios en que se apoyan las tecnologías orientadas a objetos son:
- Objetos como instancia de una clase-
- Métodos
- Mensajes
Y las características que ayudan a definir un objeto son:
- Encapsulamiento
-Modularidad
- Abstracción
- Polimorfismo
Las clases se organizan para modelar el mundo real en las siguientes relaciones:
- Herencia (generalización/especialización)
- Agregación
- Asociación
- Uso
Métodos y mensajes
Los objetos se comunican mediante llamadas a funciones_miembro o métodos. El mensaje es la acción realizada por un objeto mediante la cual se invoca un método.
Componentes del mensaje:
- Nombre del receptor del mensaje
- Método invocado
- Información necesaria para la ejecución del método
Resumiendo, mensaje es la activación de un objeto.
Tipos abstractos de datos y clases
Una clase es una caracterización abstracta de un conjunto de objetos: todos los objetos similares pertenecen a una clase determinada. Por ejemplo, un conjunto de objetos tales como cuadrados, triángulos, círculos, líneas, etc. pertenecen a una clase figura. De modo más formal, una clase define variables (datos) y métodos (operaciones) comunes a un conjunto de objetos.
Una clase bien diseñada especifica un tipo abstracto de dato (TAD). Un tipo de dato es abstracto si las operaciones de alto nivel adecuadas a los tipos de datos están aisladas de los detalles de la implementación asociados con el tipo de datos. Por ejemplo, si diseñamos una clase círculo que convierte a un círculo en un tipo abstracto de dato, la clase nos proporciona métodos (funciones) tales como dibujar, mover, ampliar, contraer, borrar, etc. Se pueden utilizar estos métodos para manipular objetos círculo de todas las formas esperadas. Los métodos son todo lo que se necesita conocer sobre la clase círculo. Una estructura de datos fundamental de un círculo puede ser un array, un registro, una cadena de caracteres, etc. Los detalles de la representación interna de un círculo se pueden ignorar mientras se crean, amplían o mueven círculos. Un círculo como TAD se centra exclusivamente en operaciones (métodos) apropiadas a los círculos; un círculo como TAD ignora totalmente la representación interna de un círculo.
La clase es el bloque de construcción fundamental de un lenguaje de POO. Una clase es un TAD junto con un conjunto de transformaciones permitidas de dicho tipo abstracto de datos; puede definir también su interfaz a otras clases o funciones, descubriendo para ello que parte de su descripción interna de datos o conjunto de transformaciones permitidas pueden hacerse públicos. La regla por defecto es que nada de una clase es pública, a menos que se declare explícitamente por el desarrollador de software que definió la clase.
Aunque no es completamente una terminología estándar en POO, el término objeto se utiliza normalmente para representar una instancia de una clase.
El entorno orientado a objetos oculta los detalles de implementación de un objeto. Es la propiedad conocida como ocultación de la información. La parte que no está oculta de un objeto es su interfaz público, que consta de los mensajes que se pueden enviar al objeto. Los mensajes representan operaciones de alto nivel, tales como dibujar un círculo. El término encapsulamiento se utiliza también para enfatizar un aspecto específico de un tipo abstracto de datos. Un TAD combina métodos (operaciones) y representación interna (implementación).
Un objeto es una instancia -ejemplar o caso- de una clase que encapsula operaciones y representación. Este encapsulamiento contrasta con la separación tradicional de operaciones (funciones) y representación (datos). La clase en C++ soporta el encapsulamiento.
No hay comentarios:
Publicar un comentario