Clase
Una clase es una construcción que se
utiliza como un modelo (o plantilla) para crear objetos de ese tipo. Una
clase por lo general representa un sustantivo, como una persona, lugar o
(posiblemente bastante abstracta) cosa - es el modelo de un concepto dentro de
un programa de computadora. Encapsula el estado a través de marcadores de datos
llamados atributos (o variable miembro o variables de instancia), encapsula el
comportamiento a través de secciones de código re-utilizables llamados métodos.
Objeto
En el paradigma de programación
orientada a objetos (POO, o bien OOP en inglés), un objeto se define como la
unidad que en tiempo de ejecución realiza las tareas de un programa.
Instancia
Se llama instancia a todo objeto que
derive de algún otro. De esta forma, todos los objetos son instancias de algún
otro, menos la clase Objeto que es la madre de todas.
Abstracción
La abstracción consiste en aislar un
elemento de su contexto o del resto de los elementos que lo acompañan. En
programación, el término se refiere al énfasis en el "¿qué hace?" más
que en el "¿cómo lo hace?" (Característica de caja negra). Se puede
dividir en dos categorías: abstracción de datos (pertenecientes a los datos) y
abstracción de control (perteneciente a las estructuras de control).
Modularidad
Se denomina Modularidad a la propiedad
que permite subdividir una aplicación en partes más pequeñas (llamadas
módulos), cada una de las cuales debe ser tan independiente como sea posible de
la aplicación en sí y de las restantes partes. Estos límites, o
interfaces, son muy valiosos en la comprensión del programa.
Encapsulamiento
Se denomina encapsulamiento al
ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera
que sólo se puede cambiar mediante las operaciones definidas para ese objeto.
Cada objeto está aislado del exterior, es un módulo natural, y la aplicación
entera se reduce a un agregado o rompecabezas de objetos. El aislamiento
protege a los datos asociados a un objeto contra su modificación por quien no
tenga derecho a acceder a ellos, eliminando efectos secundarios e
interacciones.
Herencia
La herencia es el mecanismo
fundamental para implementar la reutilización y extensibilidad del software. A
través de ella los diseñadores pueden construir nuevas clases partiendo de una
jerarquía de clases ya existente (comprobadas y verificadas) evitando con ello el
rediseño, la modificación y verificación de la parte ya implementada. La
herencia facilita la creación de objetos a partir de otros ya existentes,
obteniendo características (métodos y atributos) similares a los ya existentes.
Por ejemplo: Si declaramos una clase párrafo derivada de una clase texto, todos
los métodos y variables asociadas con la clase texto, son automáticamente
heredados por la subclase párrafo.
Existen
dos tipos de herencia:
Herencia
simple:
Una subclase puede hacerse datos y
métodos de una clase simple así como añadir o sustraer ciertos
comportamientos.
Herencia
múltiple:
Posibilidad de adquirir métodos
y datos de varias clases simultaneas.
Polimorfismo
Se refiere a la capacidad para que
varias clases derivadas de una antecesora utilicen un mismo método de forma
diferente. Por ejemplo, podemos crear dos clases distintas: Pez y Ave que
heredan de la superclase Animal. La clase Animal tiene el método abstracto
mover que se implementa de forma distinta en cada una de las subclases (peces y
aves se mueven de forma distinta). El concepto de polimorfismo se puede aplicar
tanto a funciones como a tipos de datos.
Lenguaje de modelado unificado: Diagramas de clases
El
Lenguaje de Modelado Unificado
(UML - Unified Modeling Language) es un lenguaje que permite modelar, construir
y documentar los elementos que forman un producto de software que responde a un
enfoque orientado a objetos.
Un modelo UML está compuesto por tres
clases de bloques de construcción:
• Elementos: Los elementos
son abstracciones de cosas reales o ficticias (objetos, acciones, etc.)
• Relaciones: relacionan los elementos entre
sí.
• Diagramas: Son colecciones de elementos con
sus relaciones.
Diagramas
UML
Un diagrama es la representación
gráfica de un conjunto de elementos con sus relaciones. En concreto, un
diagrama ofrece una vista del sistema a modelar. El diagrama de
clases muestra un conjunto de clases, interfaces y sus relaciones. Éste es
el diagrama más común a la hora de describir el diseño de los sistemas
orientados a objetos.