Una clase es una plantilla que encapsula los datos y las abstracciones de datos
necesarios para describir el contenido y comportamiento de alguna entidad del
mundo real. Es una descripción generalizada (patrón o plantilla) que describe una
colección de objetos similares.
Descripción de los datos (atributos) y de las operaciones que describen el comportamiento de un cierto conjunto de elementos homogéneos.
° Resultado del proceso de abstracción.
° “Molde” de infinitos objetos con ciertas características para crear en el dominio de la computadora un reflejo del mundo real.
Objetos:
Un objeto es una instancia de una clase específica: los objetos heredan los atributos
y operaciones de una clase (su clase padre). Todos los objetos de una clase tienen
el mismo conjunto de atributos y el mismo número de operaciones. Difieren
solamente en los valores de sus atributos respectivos.
Para modelar una clase y un objeto se utiliza un lenguaje de modelado llamado
UML (Lenguaje Unificado de Modelado).
Abstracción:
Definición: “Proceso mental de extracción de las características esenciales (requisitos o funciones) de algo, ignorando los detalles superfluos”.
Motivo: No es posible manejar todos los aspectos de un sistema, al mismo tiempo un individuo puede comprender 7 ± 2 detalles a la vez.
° Fundamentalmente subjetiva (dependiendo del interés del observador).
° Punto de vista del “cliente” (usuario).
° Implementación en OO --> Clases Ejemplos:
° Autobús visto por un mecánico y un pasajero.
° Persona en un historial clínico y en la universidad.
° Radio como emisora o como aparato.
Modularidad:
Definición: “Proceso de descomposición de un sistema en un conjunto de piezas poco acopladas (independientes) y cohesivas (con significado propio): módulos”.
Mediante la modularidad, se propone al programador dividir su aplicación en varios módulos diferentes (ya sea en forma de clases, paquetes o bibliotecas), cada uno de ellos con un sentido propio. Esta fragmentación disminuye el grado de dificultad del problema al que da respuesta el programa, pues se afronta el problema como un conjunto de problemas de menor dificultad, además de facilitar la comprensión del programa.
Encapsulamiento:
El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto es, las variables y métodos. Es tener todo esto es una sola entidad. En los lenguajes estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la abstracción y el ocultamiento que veremos a continuación.
La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento pero no los detalles internos, y esto es conveniente porque nos interesará será conocer qué hace la Clase pero no será necesario saber cómo lo hace.
Definición: “Proceso por el que se ocultan los detalles del soporte de las características esenciales de una abstracción (cómo se realizan las funciones)”
Herencia:
° Es la transmisión de la vista pública (métodos públicos) y de la vista privada (atributos, métodos privados y definición de los métodos) de una clase a otra.
° Forma de estructurar tipos/clases según su comportamiento mediante la creación de una jerarquía de clasificación.
La herencia es uno de los conceptos más cruciales en la POO (Programación Orientada a Objetos). La herencia básicamente consiste en que una clase puede heredar sus variables y métodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos y métodos propios, tiene incorporados los atributos y métodos heredados de la superclase. De esta manera se crea una jerarquía de herencia. Por ejemplo, imaginemos que estamos haciendo el análisis de un Sistema para una tienda que vende y repara equipos celulares.

Polimorfismo:
Es el principio por el cual una misma operación es resuelta de diferente forma según el objeto que recibe el mensaje.
° Posibilidad que tienen distintos objetos de actuar de una manera diferente (desencadenar operaciones distintas) en respuesta a un mismo mensaje (una misma llamada a función).
En programación orientada a objetos el polimorfismo se refiere a la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede ser heterogénea. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía.
La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de las obvias diferencias sintácticas.
La esencia del polimorfismo no atañe a la clase o prototipo de la que provienen los objetos. Aun así, en los lenguajes basados en clases, es habitual (y en algunos tal vez sea el único modo) que dichos objetos pertenezcan a subclases pertenecientes a una misma jerarquía. Entonces, el polimorfismo debe verse como una forma flexible de usar un grupo de objetos (como si fueran sólo uno). Podría decirse que el polimorfismo en esencia refiere al comportamiento de los objetos, no a su pertenencia a una jerarquía de clases (o a sus tipos de datos).
No hay comentarios.:
Publicar un comentario