Nsjsjjwj
Programación Orientada a Objetos
Programación Orientada a Objetos nivel medio
pacman
Con la tecnología de Blogger.
sábado, 16 de enero de 2016
sábado, 9 de enero de 2016
miércoles, 13 de junio de 2012
Abstracción
La abstracción (Clase #2)
Abstracción
La abstracción es uno de los aspectos fundamentales para el estudio de las estructuras, y en general para el desarrollo de los sistemas de información, permite tener en cuenta los aspectos relevantes para la solución de un problema y deja en segundo plano todo aquello que no es trascendente.
También se puede referir a la abstracción como la habilidad de concentrarse en lo general y fundamental pasando por alto el detalle, lo que simplifica el análisis y permite concentrarse en lo relevante.
En informática, la abstracción desempeña un papel importante dado que facilita el análisis y el diseño, permite determinar la estructura de los sistemas que se van a implementar y tener una mejor visión de su funcionamiento.
Los desarrolladores (aún los principiantes) utilizan de manera casi natural los procesos de abstracción.
Por ejemplo cuando se desea realizar una operación matemática entre número reales, simplemente se scribe una expresión como la siguiente:

En este caso, el desarrollador no se preocupa por las cuestiones de aritmética de punto flotante o la manera en que estos datos se representan en la memoria; su interés está centrado en que se efectúe la operación y obtener el resultado.
Aún cuando los desarrolladores apliquen de manera natural los conceptos y procesos de abstracción, es importante destacar que hay diferentes aspectos entre los cuales debemos mencionar la Abstracción de Procedimientos y la Abstracción de Datos.Abstracción de procedimientos
Mediante esta abstracción se determinan los objetivos y operaciones necesarias para dar solución a un problema, y mediante la modularidad se efectúa la separación en unidades funcionales.
La abstracción de procedimientos se puede considerar como una herramienta que permite extender las posibilidades de un lenguaje de programación, al agregar nuevas operaciones mediante procedimientos, funciones, subrutinas, métodos, etc. se tiene la posibilidad de dividir un programa en unidades funcionales.
Esta clase de extensión es útil especialmente cuando los programas por desarrollar son grandes (en número de líneas) y es conveniente descomponerlos. Este tipo de abstracción actualmente se aplica de forma intensiva cuando se utiliza una función o un procedimiento para realizar una tarea.
La abstracción de procedimientos combina los métodos de parametrización y especificación de manera que permite abstraer su acción como si se tratara de una simple operación o evento, y además se tiene el uso de parámetros mediante el cual el procedimiento provee una transformación de unos argumentos de entrada en unos argumentos de salida, sin olvidar otras posibilidades, como que se modifiquen los parámetros de entrada o que no existan estos argumentos.
Método de abstracción por parametrización
Esta abstracción se define en términos de parámetros formales; de esta manera la identidad del dato es irrelevante; pero la presencia, el tipo y el número son indispensables.
Este método se utiliza frecuentemente en el desarrollo de sistemas, permite mediante parámetros representar potencialmente diferentes valores, que pueden llegar a ser infinitos.
Ejemplo: función cuyo objetivo es entregar el mayor valor de dos enteros dados.
Abstracción de datos
Así como la abstracción de procedimientos permite ampliar la capacidad de los lenguajes de programación, la abstracción de datos permite extender la base de los tipos predefinidos en estos lenguajes. Esta capacidad permite incluir nuevos tipos de datos con las operaciones correspondientes y generar de esa manera estructuras de datos de mayor complejidad.
La abstracción de datos se puede sintetizar en la determinación de un conjunto de objetos y el conjunto de operaciones que se pueden efectuar sobre esos datos. Cuando se implementa el tipo de dato, simultáneamente se deben implementar dichas operaciones.
Los lenguajes de programación modernos facilitan un tipo de dato que permite manipular fechas, lo que nos permite pensar en el siguiente código
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS (clase #1)
La programación orientada a objetos es una “filosofía”, un modelo de programación,con su teoría y su metodología, que conviene conocer y estudiar antes de nada.Un lenguaje orientado a objetos es un lenguaje de programación que permite el diseño de aplicaciones orientadas a objetos. Dicho esto, lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la “filosofía” (o adquiera la forma de pensar) y después el lenguaje, porque “filosofía” sólo hay una y lenguajes muchos
Es muy importante destacar que cuando hacemos referencia a la programación orientada a objetos no estamos hablando de unas cuantas características nuevas añadidas a un lenguaje de programación. Estamos hablando de una nueva forma de pensar acerca del proceso de descomposición de problemas y de desarrollo de soluciones de programación.
Es muy importante destacar que cuando hacemos referencia a la programación orientada a objetos no estamos hablando de unas cuantas características nuevas añadidas a un lenguaje de programación. Estamos hablando de una nueva forma de pensar acerca del proceso de descomposición de problemas y de desarrollo de soluciones de programación.
La programacion orienrtada a objetos es un paradigma de programación que usa objetos y sus interacciones, para disenar aplicaciones y programas informáticos, esta basado en varias técnicas , incluyendo herencia, abstracción, polimorfismo y encapsulamiento.
Herencia
En orientación a objetos 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 las cuales deben estar previamente comprobadas y verificadas evitando con ello el rediseño esta nao lleva qué. La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características similares al mismo.Es la relación entre una clase general y otra clase más específica. 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.La herencia es uno de los mecanismos de la programación orientada a objetos, por medio del cual una clase se deriva de otra, llamada entonces clase base o clase padre,de manera que extiende su funcionalidad. Una de sus funciones más importantes es la de proveer Polimorfismo
Herencia.
Herencia es la propiedad de que los ejemplares de una clase hija extiendan el comportamiento y los datos asociados a las clases paternas. La herencia es siempre transitiva, es decir que una sub-clase hereda características de superclases alejadas muchos niveles.Beneficios de la herencia.
Reusabilidad del software Cuando el comportamiento se hereda de otra clase, no es necesario reescribir el códigoque lo define Para analizar los tipos de herencia en java hay que tener en cuenta que existen 5 distintos tipos de clases:Clase base, clases derivadas del mismo paquete, clases derivadas en distinto paquete, clases del mismo paquete, clases en distinto paquetTipos de herencia
Herencia simple:
Un objeto puede extender las características de otro objeto y de ningún otro, es decir, que sólo puede heredar o tomar atributos de un solo padre o de una sola claseHerencia múltiple:
Un objeto puede extender las características de uno o más objetos, es decir, puede tener varios padres. En este aspecto hay discrepancias entre los diseñadores de lenguajes. Algunos de ellos han preferido no admitir la herencia múltiple por las posibles coincidencias en nombres de métodos o datos miembros. Por ejemplo C++, Python, PHP permiten herencia múltiple, mientras que Java, Ada y C# sólo permiten herencia simple
Como podemos ver existen los tipos de herencia ya mencionados pero también tenemos estos los cuales también son muy utilizados en la programación
A) Especialización
Es la forma de herencia mas comun y cumple en forma directa la regla es-un
B) Especificación
Se trata de un caso especial de sub-clasificaion por especializacion, excepto que las sub-clases no son refinamientos de un tipo existente, sino mas bien realizaciones de una especificacion incompleta. Es decir, que la superclase describe un comportamiento que sera implantado solo por las sub-clases
C) Construcción
Se da cuando la sub-clase ha heredado casi completamente su comportamiento de la superclase y solo tiene que modificar algunos metodos o los argumentos de cierta manera.
D) Generalización
Esta es la opuesta a la creacion de sub-clases por especializacion. Se debe evitar; solo deben aplicarse cuando no se pueden modificar las clases existentes o se deben anular metodos de las mismas.
E) Extensión
Agrega una capacidad totalmente nueva a un objeto existente. Se distingue de la generalizacion, ya que esta debe anular al menos un metodo de la clase base, mientras que la extension solo agrega metodos nuevos.
F) Limitación
Es una variante de la especificacion en donde el comportamiento de la sub-clase es mas reducido o esta mas restringido que que el comportamiento de la superclase. Tambien se da en situaciones en las que las clases existentes no pueden modificarse.
G) Variación
Se da cuando do o más clases tienen implantaciones similares, pero no parece haber ninguna relación jerárquica entre los conceptos representados por las clases. Ej: código delmouse y de la placa de video.
H) Combinación
Se da cuando una sub-clase resulta de la combinación de características de dos o más clases.
Características y Funciones de los miembro
Solo se pueden heredar clases, no funciones ordinarias ni variables.
Una sub-clase deriva de una clase base. La clase derivada puede a su vez ser utilizada como clase base para derivar más clases, conformándose así la jerarquía de clases.
Características de las clases derivadas
Una clase derivada o sub-clase:
Puede a su vez ser una clase base, dando lugar a la jerarquía de clase.Los miembros heredados por una clase derivada, pueden a su vez ser heredados por más clases derivadas a ella.
Hereda todos los miembros de la clase base, pero solo podrá acceder a aquellos que los especificadores de acceso de la clase base lo permitan. Las clases derivadas solo pueden acceder a los miembros public, protected y private-protected (en java) de la clase base, como si fueran miembros propios.
No tienen acceso a los miembros private de la clase base.
Pueden añadir sus propios datos y funciones miembros.
Tomando en cuenta esta características cabe mencionar que Los siguientes elementos de la clase base no se heredan; Constructores y destructores, Funciones y datos estáticos de la clase, Funciones amigas y operadores sobrecargados (solo c++)
Cabe destacar que los miembros se denominan. Publico, protegido y privado
Los miembros public pasan a ser public en la clase derivada. Los miembros protected pasan a ser protected. Y los privados permanecen privados en la clase base.
Los miembros Private Todos los miembros public y private son miembros private en la clase derivada.
Miembros prívate Todos los miembros public y protected de la clase base son miembros protected en la derivada.
Se hace necesario mencionar los accesos, S: acceso posible, N: acceso denegado. R: reservado a las subclases. Acceso posible si el miembro se refiere a un objeto de la subclase y no a uno de la clase base.
Ejemplo
class Pedido {
public Lineapedido articuloLinea (Producto unProducto)¡
public void agregaArticuloLinea (Numero cantidad,
Producto paraProducto);
Class Pedido {
private Dictionary _articulosLinea;
class Persona {
// obtiene el patrón actual
Compañía patrón();
// patrón en una fecha dada
Compañía patrón(Date);
void cambiaPatron(Compañía nuevopatron, Date cambiaFecha);
void dejaPatron (Date cambiaFecha):
class Conjunto <T> {
void insert (T nuevoElemento) ;
void remove (T unElemento);
Conjunto <Empleado> conjuntoEmpleados;
|
Suscribirse a:
Entradas (Atom)



