Sie sind auf Seite 1von 35

INTRODUCCION A LA PROGRAMACION ORIENTADA A OBJETOS (POO)

Mg. Elmer Crdova Zapata

Introduccin
Fases del ciclo de vida del software:
1) Anlisis, 6% 2) Diseo, 5% 3) Implementacin, 7% 4) Depuracin, 15% 5) Mantenimiento, 67%

Factores en la calidad del software:


Eficiencia, portabilidad, verificabilidad, integridad (proteccin contra procesos sin derecho de acceso), facilidad de uso, correccin, robustez (situaciones anmalas), extensibilidad, reutilizacin, compatibilidad, etc.

Abstraccin en programacin
Capacidad para encapsular y aislar la informacin del diseo y ejecucin.
Mecanismos en programacin: Programacin Imperativa Programacin Estructurada Abstraccin de Datos Programacin Orientada a Objetos

Evolucin

Programacin estructurada
Desde principios de los 70. Dificultad de trabajo en grupo. No hay correspondencia estrecha entre datos reales y programas.

Programacin estructurada
Abstraccin de operaciones
Estructura de un mdulo:
Interfaz
Datos de entrada Datos de salida Descripcin funcionalidad

Implementacin
Datos locales Secuencia de instrucciones

Sintaxis del lenguaje:


Organizacin del cdigo en bloques de instrucciones
Definicin de funciones y procedimientos

Extensin del lenguaje con nuevas operaciones


Llamadas a nuevas funciones y procedimientos

Tipos abstractos de datos


Se fundamenta en:
Abstraccin de Datos + Abstraccin de Operaciones
Un tipo abstracto de datos consiste en: Estructura de datos que almacena informacin para representar un determinado concepto

Funcionalidad: conjunto de operaciones que se pueden realizar sobre el tipo de datos Sintaxis del lenguaje:
Mdulos asociados a tipos de datos No introduce necesariamente variaciones respecto a la programacin modular

Tipos abstractos de datos


Abstraccin de los datos

Abstraccin de las operaciones

La POO
Programacin orientada a objetos
Soporte sintctico para los tipos abstractos de datos + Prestaciones asociadas a las jerarquas de clases + Cambio de perspectiva

Se basa en el concepto de objeto


Objeto = tipo abstracto de datos con estado (atributos) y comportamiento (operaciones) propios

La POO
Aparece el concepto de jerarqua de tipos, y con l los conceptos de: Herencia de estructura y funcionalidad
Polivalencia de los tipos Polimorfismo

Sintaxis del lenguaje:


Definicin de clases Funciones explcitamente asociadas a clases Creacin de objetos Acceso a atributos, invocacin de mtodo

La POO
Ventajas del uso de la POO
Adecuada en prototipos y simulacin. Reusabilidad (mecanismos de abstraccin y herencia) En programacin convencional: uso de funciones y procedimientos Adecuada para entornos de bases de datos y en sistemas Cliente/Servidor Idnea para tratamiento de Interfaces de Usuario.

Caractersticas de la POO
Generales:
Construccin de sistemas complejos a partir de componentes. Modelado ms fiel al mundo real. Estimacin de reduccin de 40% con respecto a la programacin convencional.

El modelo objeto (Booch, 1994):


Abstraccin
Los paradigmas clsicos estructurados usan una abstraccin funcional (procedimental) por un lado, y una de datos por otro. El paradigma objetual define un objeto como una abstraccin de datos y funciones, separando adems su implementacin de su apariencia externa. Las caractersticas esenciales del objeto Una grapadora: Color, Nmero de ganchos, rellenar, grapar, etc

Caractersticas de la POO
Encapsulamiento
El contenido de alguna informacin est oculto Barrera conceptual sobre coleccin de datos que solo me permite modificarlos a travs de las operaciones definidas por esa barrera Una clase contiene:
una interfaz pblica una implementacin

Ventajas:
Reduccin de la cohesin entre distintos objetos, lo que implica laconstruccin de objetos independientes. Cambiar un objeto no afecta al resto, slo al objeto en cuestin. Localizacin: la informacin relativa a un objeto est centrada en la definicin de l mismo y no distribuida en otros objetos. Esto implica fcil modificacin, fcil adaptacin a los cambios, rpida ubicacin de lo que hay que cambiar.

Caractersticas de la POO
Proteccin Integridad: slo permite cambiar el estado por s mismo, a travs de sus operaciones propias. Esto asegura la integridad y la consistencia de la Data.

Modularidad Subdivisin de una aplicacin en otras ms pequeas (mdulos). Un mdulo es un conjunto de clases

Caractersticas de la POO
Jerarqua
Ordenamiento de las abstracciones Tipos: Herencia (es-un); generalizacin/especializacin Herencia simple o mltiple Agregacin (parte-de)

Polimorfismo
Una misma operacin (mtodo) realizada de diferente modo comer (hombre, vaca, delfin, tigre); clase mamfero

Otras propiedades
Concurrrencia (multitarea), Persistencia, Uso de excepciones

Lenguajes OO
Cronologa:
Simula (1967) Smalltalk (1980) C++ (1983, 1990) Object Pascal (1988) Lisp CLOS (1989) Java (1995, 1997, 1998) Simula-67 Objeto (datos+mtodos). Clase. Herencia. Smalltalk-80 Verdadero primer lenguaje de POO Concepto de paso de mensajes (activacin de mtodos)

Primeros lenguajes POO:

Orientacin:
Puros (Smalltalk) Hbridos (C++)

Conceptos de la POO
Principales:
Objeto (una instancia de una clase): atributos + mtodos Mtodos: operaciones sobre los objetos Clases: categoras de objetos con propiedades y operaciones comunes Jerarqua de herencia entre clases Relaciones, objetos compuestos

Conceptos equivalentes:
Programacin (tipo, variable) POO (clase, objeto)

Conceptos de la POO
Ciclo de vida de los objetos
Creacin
Empleado x = crear Empleado () Constructores: inicializacin de atributos

Manipulacin
Acceso a atributos: x . nombre Invocacin de mtodos: x . salario_neto ( )

Destruccin
Explcita (C++) Automtica (Java) garbage collection Ejemplo: Al desaparecer un directivo, actualizar relacin de subordinados

Conceptos de la POO
Encapsulamiento
Miembros privados y pblicos Interfaz pblica de una clase (miembros pblicos, datos y mtodos)
Se pueden invocar desde fuera de la clase

Ejemplo (clase Robot)


Datos:
privado x (entero) privado y (entero)

Mtodos:
pblico void avanzar (entero, entero) pblico entero posicionX () pblico entero posicionY () pblico void avanzar (entero)

Conceptos de la POO
NO los puede accesar

Objeto X Los puede accesar

Conceptos de la POO
La Herencia
Herencia de Estructura:

Herencia de Funcionalidad:

Conceptos de la POO
Clase Abstracta:No admite una instancia directa. Ejemplo: clase Figura. Sera invlido Clase Concreta: Admite la creacin de Instancias Herencia Mltiple:

Conceptos de la POO
Ligadura
Se refiere a la conexin entre una llamada a una funcin y el cdigo real ejecutado como resultado de la llamada

Tipos: Ligadura Esttica


El compilador y el enlazador definen directamente la posicin fija del cdigo que se ejecuta en cada llamada a la funcin Sinnimo: Ligadura temprana, anticipada.

Conceptos de la POO
Ligadura Dinmica
El compilador no defina la posicin a llamar, sino que espera har el tiempo de ejecucin para decidir cual es la posicin real seleccionada entre una lista de posiciones. El propio cdigo debe deducir en tiempo de ejecucin cual es la funcin a invocar e invocarla a continuacin. Esta caracterstica permite definir y manejar jerarquas de clases de un modo simple

Referencias:
Basado en:

Tipos de datos primitivos


DATOS

En el lenguaje C existen tres tipos de datos bsicos que son el int, float y char. A partir de estos tipos se crean otros que funcionan igual pero que difieren en el tamao como el long, el double, y otros. Estos que son parte del lenguaje se consideran como tipos "primitivos.

A partir de estos datos primitivos se pueden hacer tipos compuestos

Enteros
Los enteros son el tipo de dato ms primitivo. Se usan para representar nmeros enteros, valga la redundancia. Pero siempre se pueden encontrar otras aplicaciones para los nmeros enteros. En general se pueden usar para representar cualquier variable discreta.

Para el lenguaje C existen diferentes tamaos de nmeros enteros que pueden tener desde 1 byte hasta 8 bytes. El lenguaje C hace la distincin de si el entero es con signo o sin signo (signed o unsigned). La forma de declarar un entero es con uno de los tipos de datos que sean enteros segn el tamao que se quiera. En caso de que no se declare si es con signo o sin signo, se toma con signo.

Flotantes
Los valores flotantes son ms modernos y se usan mucho en aplicaciones que trabajan con grficos o que necesitan de mucha precisin.

El tipo de dato flotante en lenguaje C slo tiene dos tamaos: el float y el double, que son 4 bytes y 8 bytes respectivamente. A diferencia de los enteros el tipo de dato flotante soporta nmeros decimales y nmeros con exponente.

Caracteres
Los caracteres o el tipo char solo tienen 1 byte de tamao y usa la misma representacin que los nmero enteros. La nica diferencia es su tamao y que el char es usado para representar los 255 caracteres de la tabla ASCII.

Un mapa de caracteres ASCII es simplemente una manera de mantener todos los caracteres imprimibles o mostrados por pantalla en una lista. Todos los ordenadores guardan la informacin como conjuntos de 1 y 0 (bits), no como los caracteres que nosotros vemos.

De esta forma en 8 bits podemos representar nmeros desde 0 hasta 255, a cada valor la mquina le asigna un carcter. Por ejemplo: El nmero 32 representa un espacio Del nmero 48 hasta el 57 son los nmeros naturales desde el 0 hasta el 9 Del 65 hasta el 90 son letras de A hasta la Z en maysculas De 97 hasta 122 son letras de a hasta la z en minsculas

Este mtodo de ordenacin se usa como estndar para que de alguna manera todos los ordenadores funcionen de la misma forma a la hora de trabajar con caracteres.

Das könnte Ihnen auch gefallen