Programacion

20
La programación orientada a objetos (POO) CARRERA PROFESIONAL: INGENIERÍA DE SISTEMAS E INFORMÁTICAS Curso : ingeniería de software TUTOR : CONDORI ZAMORA KELLY CICLO : VI ALUMNOS : ) 1

description

como programar orientada a objetos

Transcript of Programacion

poo

La programacin orientada a objetos (POO)

CARRERA PROFESIONAL: INGENIERA DE SISTEMAS E INFORMTICASCurso : ingeniera de softwareTUTOR : CONDORI ZAMORA KELLYCICLO : VIALUMNOS : )

ndice

Dedicatoria.3Introduccin...4Definicin de la POO...5Lenguajes orientados a objetos...6Lenguajes de alto nivel..,.6Lenguajes de bajo nivel.7. Definicin de objetos.8Tres caractersticas q definen aun objeto...9 .Estado Comportamiento IdentidadLas clases....10Atributos de una clase..11Mtodos de una clase...11Mtodo constructor de una clase (__construct)...11Caractersticas de la programacin orientada a objetos.12Ventajas de la programacin orientada a objetos.15Bibliografa..16

DEDICATORIA

El presente trabajo monogrfico va dedicado a todas las personas que hicieron posible su elaboracin. Y las persona que estimo mucho que son nuestros padres por siempre darnos su apoyo incondicional cuando ms lo necesitoamos, a la universidad privada telesup por prepararnos para ser buenos profesionales y a todos los compaeros de estudio con quienes compartimos ideas, debates sobre temas de diferentes reas.

INTRODUCCIONLa POO difiere de laprogramacin estructuradatradicional, en la que los datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programacin estructurada anima al programador a pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programacin estructurada solo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitndoles que realicen sus mtodos por s mismos.El principio bsico de la programacin orientada a objetos es que un sistema de software se ve como una secuencia de transformaciones en un conjunto de objetos.

Definicin de la poo :

Es complicado definir qu es y qu no es un lenguaje de programacin. Se asume generalmente que la traduccin de las instrucciones a un cdigo que comprende la computadora debe ser completamente sistemtica. Normalmente es la computadora la que realiza la traduccin. La programacin orientada a objetos es una forma de programar que trata de encontrar una solucin a estos problemas. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos. es una notacin para escribir programas, a travs de los cuales podemos comunicarnos con el hardware y dar as las rdenes adecuadas para la realizacin de un determinado proceso. Un lenguaje est definido por una gramtica o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto de smbolos utilizados. Conjunto de normas lingsticas (palabras y smbolos) que permiten escribir un programa y que ste sea entendido por el ordenador y pueda ser trasladado a ordenadores similares para su funcionamiento en otros sistemas. Es un conjunto de palabras y smbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.Existen tres importantes partes en la definicin: la programacin orientada a objetos: 1) utiliza objetos, no algortmicos, como bloques de construccin lgicos (jerarqua de objetos)2) cada objeto es una instancia de una clase 3) las clases se relacionan unas con otras por medio de relaciones de herencia.Un programa puede parecer orientado a objetos, pero si cualquiera de estos elementos no existe, no es un programa orientado a objetos especficamente, la programacin sin herencia es distinta de la programacin orientada a objetos.Loa programas orientado a objetos constan de objetos. los objetos de un programa se comunican con cada uno de los restantes pasando mensajes.

LENGUAJES ORIENTADOS A OBJETOS

Se le llama as a cualquierlenguaje de programacinque implemente los conceptos definidos por laprogramacin orientada a objetos. Existen: Lenguajes de alto nivel y de bajo nivel

De alto nivel Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C). Lenguajes declarativos. Los programas se construyen mediante descripciones de funciones o expresiones lgicas (Lisp, Prolog). Lenguajes orientados a objetos. El diseo de los programas se basa mas en los datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los datos (variables) y las operaciones que actan sobre ellos (Smalltalk, C++). Lenguajes orientados al problema. Diseados para problemas especficos, principalmente de gestin, suelen ser generadores de aplicaciones. Lenguajes naturales. Estn desarrollndose nuevos lenguajes con el principal objetivo de aproximar el diseo y construccin de programas al lenguaje de las personas.Otra clasificacin que se puede hacer es la de atendiendo al desarrollo de los lenguajes desde la aparicin de las computadoras, que sigue un cierto paralelismo con las generaciones establecidas en la evolucin de las mismas:I. Primera generacin.Lenguajes mquina y ensambladores.II. Segunda generacin.Primeros lenguajes de alto nivel imperativo (FROTRAN, COBOL).III. Tercera generacin.Lenguajes de alto nivel imperativo. Son los ms utilizados y siguen vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA).IV. Cuarta generacin.Orientados bsicamente a las aplicaciones de gestin y al manejo de bases de datos (NATURAL, SQL).V. Quinta generacin.Orientados a la inteligencia artificial y al procesamiento de los lenguajes naturales (LISP, PROLOG).

DE BAJO NIVELEntre los ms importantes lenguajes de programacin tenemos:SIMULA 67 Surge en Noruega en 1967, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en el centro de clculo noruego. Ejm:Hola Mundo!! Esto es un comentario;Begincommentaqu comienza el programa;OutText("HolaMundo!");OutImage;Endof program;Ccreado en1972porDennis M. Ritchieen losLaboratorios Bell

LENGUAJE C++Se pronuncia ce plus plus. Fue desarrollada por Bjarme Stroustrup en los Bell Laboratories a principios de la dcada de los 80. C++ introduce la programacin orientada al objeto en C.Ejemplo:

ADAAda es un lenguaje de programacin orientado a objetos. Es un lenguaje multipropsito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++.

SMALLTALK Fue el primer lenguaje de programacin orientado a objetos. Desarrollado en el Xerox PARC. Es el primero en aportar la arquitectura de Modelo/Visor/Controlador.EIFFELEs un lenguaje de programacin escrito por Bertrand Meyer. Al contrario que Smalltalk, incluye un preprocesador que permite latraduccinde cdigo Eiffel aLenguaje C. Es ideal para la ingeniera de software, que permite la encapsulacin , control de acceso y mbito de las modificaciones. Como lenguaje orientado a objetos , es presumiblemente el mejor por sus capacidades tcnicas.

JAVAJava es un lenguaje de programacinorientado a objetos, desarrollado por Sun Microsystems a principios de los aos 90. El lenguaje en s mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria. Con respecto a la memoria, su gestin no es un problema ya que sta es gestionada por el propio lenguaje y no por el programador.Definicin de objetos Entender que es un objeto es la clave para entender cualquier lenguaje orientado a objetos.Definicin terica: Un objeto es una unidad de cdigo compuesto de variables y mtodos relacionados.Un Objeto es un elemento real o abstracto que tiene un estado, un comportamiento y una identidad. Un objeto es, pues, una mesa, un alumno, etc., pues son elementos reales y estn bien definidos. Tambin lo puede ser un concepto abstracto como un elemento llamado Ordenador que es capaz de recibir un conjunto de nmeros y ordenarlo ascendente o descendentemente.

Tres caractersticas que definen un objeto

Estado: Viene determinado para el conjunto de propiedades o atributos que tiene el objeto (Estructura Esttica), junto con los valores que pueden asumir cada uno de esos atributos (Estructura Dinmica).Ejemplo :Para el objeto alumno Jos Ayala vegaSu estructura esttica sera:Nombres y ApellidosEdadSexoDireccinCursoAsignaturasSu estructura dinmica en 1990:Nombres y Apellidos: Jos Ayala vegaEdad : 24Sexo : MasculinoDireccin : s bolvar 303Curso : Noveno AAsignaturas : Matemticas, Espaol, Geografa, Historia

Su estructura dinmica en 1990:Nombres y Apellidos: Jos Ayala vegaEdad : 24Sexo : MasculinoDireccin : S. BOLIVAR 303Curso : Dcimo AAsignaturas : Matemticas, Espaol, Qumica, Fsica

Comportamiento: Viene determinado por la forma de actuar al recibir un mensaje para que realice una accin. Un Mensaje es una orden que se manda a un objeto para que realice una operacin con un propsito especfico.

Un mensaje viene definido por tres componentes:

El objeto receptor del mensaje, es decir, al objeto que se enva el mensaje.El selector del mensaje, que es la accin que se quiere que realice el objeto.Los argumentos, que son los valores que se transmiten con el selector y que, en muchos casos, pueden ser nulos. Por ejemplo, el mensaje:

Jos Ayala vega. Asignaturas (1990)Indica que se desea conocer las asignaturas en que estuvo matriculado el alumno Jos Ayala vega en el ao 1990

Identidad: Es la propiedad caracterstica que tiene un objeto que le distingue de todos los demsPor ejemplo, para hacer referencia al alumno Jos Ayala vega se puede seleccionar alguno de los datos que lo identifique durante toda su vida, como su nombre o su cdula de ciudadana.

Se dice que un objeto est encapsulado cuando est protegido del acceso indiscriminado de cualquier persona. As cuando se tiene en las manos una calculadora se ve que se puede encender o apagar, digitar nmeros u operaciones, pero no se puede ver cmo realiza algn clculo o cmo despliega los caracteres en la pantalla.

La encapsulacin es el proceso que aplica el diseador de un objeto para ocultar aquellos detalles del objeto que no son especficamente necesarios para su uso.Por tanto, se puede concluir que un objeto es un elemento autnomo de informacin, que tiene una estructura definida por sus atributos y propiedades y que proporciona unos servicios que definen su comportamiento. Su estructura est encapsulada (est oculta al acceso del usuario) y sus servicios no. Estos servicios, que definen la Interfaz del objeto, son lo que solicita el usuario para que realice una accin especfica.

LAS CLASESUnaclasees una construccin que se utiliza como un modelo (o plantilla) para crearobjetosde ese tipo. El modelo describe el estado y contiene el comportamiento que todos los objetos creados a partir de esa clase tendrn. Un objeto creado a partir de una determinada clase se denomina unainstanciade esa clase.Una clase por lo general representa un sustantivo, como una persona, lugar o cosa. Es el modelo de un concepto dentro de un programa de computadora. Fundamentalmente, delimita los posibles estados y define el comportamiento del concepto que representa. Encapsula el estado a travs de espacios de almacenaje de datos llamadosatributos, y encapsula el comportamiento a travs de secciones de cdigo reutilizables llamadasmtodos.Ms tcnicamente, una clase es un conjunto coherente que consiste en un tipo particular demetadatos. Una clase tiene una interfaz y una estructura. La interfaz describe cmo interactuar con la clase y sus instancias con mtodos, mientras que la estructura describe cmo los datos se dividen en atributos dentro de una instancia. Una clase tambin puede tener una representacin (meta objeto) en tiempo de ejecucin, que proporciona apoyo en tiempo de ejecucin para la manipulacin de los metadatos relacionados con la clase. En el diseo orientado a objetos, una clase es el tipo ms especfico de un objeto en relacin con una capa especfica.Los lenguajes de programacin que soportan clases difieren sutilmente en su soporte para diversas caractersticas relacionadas con clases. La mayora soportan diversas formas deherencia. Muchos lenguajes tambin soportan caractersticas para proporcionar encapsulacin, como especificadores de acceso.Atributos de una clase.

Ahora trataremos de concentrarnos en los atributos de una clase. Los atributos son las caractersticas, cualidades, propiedades distintivas de cada clase. Contienen informacin sobre el objeto. Determinan la apariencia, estado y dems particularidades de la clase. Varios objetos de una misma clase tendrn los mismos atributos pero con valores diferentes.Cuando creamos un objeto de una clase determinada, los atributos declarados por la clase son localizadas en memoria y pueden ser modificados mediante los mtodos.Lo ms conveniente es que los atributos sean privados para que solo los mtodos de la clase puedan modificarlos.Plantearemos un nuevo problema para analizar detenidamente la definicin, sintaxis y acceso a los atributos.Mtodos de una clase.

Los mtodos son como las funciones en los lenguajes estructurados, pero estn definidos dentro de una clase y operan sobre los atributos de dicha clase.Los mtodos tambin son llamados las responsabilidades de la clase. Para encontrar las responsabilidades de una clase hay que preguntarse qu puede hacer la clase.El objetivo de un mtodo es ejecutar las actividades que tiene encomendada la clase a la cual pertenece.Los atributos de un objeto se modifican mediante llamadas a sus mtodos.Confeccionaremos un nuevo problema para concentrarnos en la definicin y llamada a mtodos.Mtodo constructor de una clase (__construct)

El constructor es un mtodo especial de una clase. El objetivo fundamental del constructor es inicializar los atributos del objeto que creamos.Bsicamente el constructor remplaza al mtodo inicializar que habamos hecho en el concepto anterior.Las ventajas de implementar un constructor en lugar del mtodo inicializar son: El constructor es el primer mtodo que se ejecuta cuando se crea un objeto. El constructor se llama automticamente. Es decir es imposible de olvidarse llamarlo ya que se llamar automticamente. Quien utiliza POO (Programacin Orientada a Objetos) conoce el objetivo de este mtodo.Otras caractersticas de los constructores son: El constructor se ejecuta inmediatamente luego de crear un objeto y no puede ser llamado nuevamente. Un constructor no puede retornar dato. Un constructor puede recibir parmetros que se utilizan normalmente para inicializar atributos. El constructor es un mtodo opcional, de todos modos es muy comn definirlo.

CARACTERSTICAS DE LA PROGRAMACIN ORIENTADA A OBJETOS

ABSTRACCIN

Denota las caractersticas esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelarcmose implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados, y, cuando lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin. El proceso de abstraccin permite seleccionar las caractersticas relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstraccin es clave en el proceso de anlisis y diseo orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.ENCAPSULAMIENTOSignifica reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar lacohesinde los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultacin, principalmente porque se suelen emplear conjuntamente.MODULARIDADSe denomina modularidad a la propiedad que permite subdividir una aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicacin en s y de las restantes partes. Estos mdulos se pueden compilar por separado, pero tienen conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la modularidad de diversas formas.PRINCIPIO DE OCULTACINCada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone unainterfaza otros objetos que especifica cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas; solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. La aplicacin entera se reduce a un agregado orompecabezasde objetos.POLIMORFISMO

Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecucin", esta ltima caracterstica se llamaasignacin tardaoasignacin dinmica. Algunos lenguajes proporcionan medios ms estticos (en "tiempo de compilacin") de polimorfismo, tales como las plantillas y lasobrecarga de operadoresde C++.

HERENCIA

Las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos enclasesy estas enrbolesoenrejadosque reflejan un comportamiento comn. Cuando un objeto hereda de ms de una clase se dice que hayherencia mltiple.Herencia simple (herencia jerrquica)En esta jerarqua cada clase tiene como mximo una sola superclase. La herencia simple permite que una clase herede las propiedades de su superclase en una cadena jerrquica.Herencia mltiple (herencia en malla)Una malla o retcula consta de clases, cada una de las cuales puede tener uno O ms superclases inmediatas Una herencia mltiple es aquella en la que cada clase puede heredar mtodos y variables de cualquier nmero de superclase Conceptos fundamentales de programacin orientada a objetos 99En la Figura 3 28 la clase C tiene dos superclases, A y D Por consiguiente, la clase C hereda las propiedades de las clases A y D Evidentemente, esta accin puede producir un conflicto de nombres, donde la clase C hereda las mismas propiedades de A y D.

VENTAJAS DE LA PROGRAMACIN ORIENTADA A OBJETOSVamos a ver las ventajas ms importantes de la programacin orientada a objetos: REUSABILIDAD. Cuando hemos diseado adecuadamente las clases, se pueden usar en distintas partes del programa y en numerosos proyectos. MANTENIBILIDAD. Debido a las sencillez para abstraer el problema, los programas orientados a objetos son ms sencillos de leer y comprender, pues nos permiten ocultar detalles de implementacin dejando visibles slo aquellos detalles ms relevantes. MODIFICABILIDAD. La facilidad de aadir, suprimir o modificar nuevos objetos nos permite hacer modificaciones de una forma muy sencilla. FIABILIDAD. Al dividir el problema en partes ms pequeas podemos probarlas de manera independiente y aislar mucho ms fcilmente los posibles errores que puedan surgir.La programacin orientada a objetos presenta tambin algunas desventajas como pueden ser: Cambio en la forma de pensar de la programacin tradicional a la orientada a objetos. La ejecucin de programas orientados a objetos es ms lenta. La necesidad de utilizar bibliotecas de clases obliga a su aprendizaje y entrenamiento.

BIBLIOGRAFA WWW.ELRICONDELVAGO.ES CARRASCO MUOZ, JOEL Creacin de Programas con Borland C ++ 5.0 Centro de extensin y Proyeccin Social. UNI.. CASTAEDA DE LA ROSA, Ricardo Aplicacin de Programas. Borland C ++ 6.0. Editorial Grupo Universitario SAC 2005. Lima Per. DEITEL, H. UN DEITEL, P.J. Como Programar C/ C ++*. Prentice Hall Hispanoamrica S.A. 2009. 5ta Edicin http://wwwcristalab.com/tutoriales/programacion-orientada-a-objetos-en-visual-basic-net-c2731/ Programacin orientada a objetos por Roberto rodrguez Echevarra, lvaro prieto ramos, encarna sosa Snchez.-buscada en una obra en MONOGRAFAS.COM SLIDESHARE.NET Libro: p.o. o. de Luis Joyanes Aguilar http://computacion.cs.cinvestav.mx/.../slides/POO-01.pdf http://www.youtube.com/user/paueky/videos?view=1&flow=grid Programacin de deytel C# para estudiantes Douglas Bell