LAS CARACTERISTICAS SON 3.
1-Encapsulación.
La encapsulación es el mecanismo que agrupa el código y los datos que
maneja y los mantiene protegidos frente a cualquier interferencia y mal uso.
En un lenguaje orientado a objetos, el código y los datos suelen empaquetarse
de la misma forma en que se crea una “caja negra” autocontenida. Dentro de
la caja son necesarios tanto el código como los datos. Cuando el código y los
datos están enlazados de esta manera, se ha creado un objeto. En otras
palabras, un objeto es el dispositivo que soporta encapsulación.
En un objeto, los datos y el código, o ambos, pueden ser privados para
ese objeto o públicos. Los datos o el código privado solo los conoce o son
accesibles por otra parte del objeto. Es decir, una parte del programa que
esta fuera del objeto no puede acceder al código o a los datos privados.
Cuando los datos o el código son públicos, otras partes del programa pueden
acceder a ellos, incluso aunque este definido dentro de un objeto.
Normalmente, las partes públicas de un objeto se utilizan para proporcionar
una interfaz controlada a las partes privadas del objeto.
Para todos los propósitos, un objeto es una variable de un tipo definido
por el usuario. Puede parecer extraño que un objeto que enlaza código y
datos se pueda contemplar como una variable. Sin embargo, en programación
orientada a objetos, este es precisamente el caso. Cada vez que se define un
nuevo objeto, se esta creando un nuevo tipo de dato. Cada instancia
específica de este tipo de dato es una variable compuesta.
2-Polimorfismo.
Polimorfismo (del Griego, cuyo significado es “muchas formas”) es la
cualidad que permite que un nombre se utilice para dos o más propósitos
relacionados pero técnicamente diferentes. El propósito del polimorfismo
aplicado a la POO es permitir poder usar un nombre para especificar una clase
general de acciones. Dentro de una clase general de acciones, la acción
específica a aplicar está determinada por el tipo de dato. Por ejemplo, en C,
que no se basa significativamente en el polimorfismo, la acción de valor
absoluto requiere tres funciones distintas: abs(), labs() y fabs(). Estas tres
funciones calculan y devuelven el valor absoluto de un entero, un entero largo
y un valor real, respectivamente. Sin embargo, en C++, que incorpora
polimorfismo, a cada función se puede llamar abs().
El tipo de datos utilizado para llamar a la función determina que
versión específica de la función se esta usando, es decir, es posible usar un
nombre de función para propósitos muy diferentes. Esto se llama sobrecarga
de funciones.
De manera general, el concepto de polimorfismo es la idea de “una
interfaz, múltiples métodos”. Esto significa que es posible diseñar una
interfaz genérica para un grupo de actividades relacionadas. Sin embargo, la
acción específica ejecutada depende de los datos. La ventaja del
polimorfismo es que ayuda a reducir la complejidad permitiendo que la misma
interfaz se utilice para especificar una clase general de acción. Es trabajo del
compilador seleccionar la acción específica que se aplica a cada situación. El
programador no necesita hacer esta selección manualmente, solo necesita
recordar y utilizar la interfaz general.
El polimorfismo se puede aplicar tanto a funciones como a operadores,
prácticamente todos los lenguajes de programación contienen una aplicación
limitada de polimorfismo cuando se relaciona con los operadores aritméticos,
por ejemplo, en C, el signo + se utiliza par añadir enteros, enteros largos,
caracteres y valores reales. En estos casos, el compilador automáticamente
sabe que tipo de aritmética debe aplicar, en C++, se puede ampliar este
concepto a otros tipos de datos que se definan, este tipo de polimorfismo se
llama sobrecarga de operadores.
3-Herencia.
La herencia es el proceso mediante el cual un objeto puede adquirir las
propiedades de otro. Mas en concreto, un objeto puede heredar un conjunto
general de propiedades a alas que puede añadir aquellas características que
son específicamente suyas. La herencia es importante porque permite que un
objeto soporte el concepto de clasificación jerárquica. Mucha información se
hace manejable gracias a esta clasificación, por ejemplo, la descripción de
una casa. Una casa es parte de una clase general llamada edificio, a su vez,
edificio es una parte de la clase mas general estructura, que es parte de la
clase aun más general de objetos que se puede llamar obra-hombre.
En cualquier caso, la clase hija hereda todas las cualidades asociadas con
la clase padre y le añade sus propias características definitorias. Sin el uso de
clasificaciones ordenadas, cada objeto tendría que definir todas las
características que se relacionan con él explícitamente.
Sin embargo, mediante el uso de la herencia, es posible describir un
objeto estableciendo la clase general (o clases) a las que pertenece, junto
con aquellas características específicas que le hacen único.
Tipos de Datos Abstractos
Abstracción: consiste en ignorar los detalles de la manera particular en
que está hecha una cosa, quedándonos solamente con su visión general. Tipo
de Dato Abstracto (TDA) se define como un conjunto de valores que pueden
tomar los datos de ese tipo, junto a las operaciones que los manipulan.
No hay comentarios:
Publicar un comentario