Leccion 2.1 Programacion Orientada a Objetos

Embed Size (px)

Citation preview

  • 8/6/2019 Leccion 2.1 Programacion Orientada a Objetos

    1/7

    [PROGRAMACION II] IDSYSTEMS 2011

    LECCION 2.1 PROGRAMACION ORIENTADA A OBJETOS

    La programacin Orientada a objetos (POO) es una forma especial de programar, ms cercana a como

    expresaramos las cosas en la vida real que otros tipos de programacin.

    Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros

    programas en trminos de objetos, propiedades, mtodos y otras cosas que veremos rpidamente para

    aclarar conceptos y dar una pequea base que permita soltarnos un poco con este tipo de programacin.

    Motivacin

    Durante aos, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvanuna y otra vez los mismos problemas. Para conseguir que los esfuerzos de los programadores puedan ser

    utilizados por otras personas se cre la POO. Que es una serie de normas de realizar las cosas de manera

    que otras personas puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el cdigo se

    pueda reutilizar.

    La POO no es difcil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de

    manera que la forma de hacer las cosas puede ser diferente segn el programador. Aunque podamos

    hacer los programas de formas distintas, no todas ellas son correctas, lo difcil no es programar orientadoa objetos sino programar bien. Programar bien es importante porque as nos podemos aprovechar de

    todas las ventajas de la POO.

    Cmo se piensa en objetos

    Pensar en trminos de objetos es muy parecido a cmo lo haramos en la vida real. Por ejemplo vamos a

    pensar en un coche para tratar de modelizarlo en un esquema de POO. Diramos que el coche es elelemento principal que tiene una serie de caractersticas, como podran ser el color, el modelo o la

    marca. Adems tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar

    o aparcar.

    Pues en un esquema POO el coche sera el objeto, las propiedades seran las caractersticas como el

    color o el modelo y los mtodos seran las funcionalidades asociadas como ponerse en marcha o parar.

    Por poner otro ejemplo vamos a ver cmo modelizaramos en un esquema POO una fraccin, es decir,

    esa estructura matemtica que tiene un numerador y un denominador que divide al numerador, porejemplo 3/2.

    La fraccin ser el objeto y tendr dos propiedades, el numerador y el denominador. Luego podra tener

    varios mtodos como simplificarse, sumarse con otra fraccin o nmero, restarse con otra fraccin, etc.

    Estos objetos se podrn utilizar en los programas, por ejemplo en un programa de matemticas hars usode objetos fraccin y en un programa que gestione un taller de coches utilizars objetos coche. Los

    programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar

    LECCION 2.1 Programacion Orientada a Objetos Pgina 1

  • 8/6/2019 Leccion 2.1 Programacion Orientada a Objetos

    2/7

    [PROGRAMACION II] IDSYSTEMS 2011

    y ellos mismos tambin son objetos. Es decir, el taller de coches ser un objeto que utilizar objetos

    coche, herramienta, mecnico, recambios, etc.

    Clases en POO

    Las clases son declaraciones de objetos, tambin se podran definir como abstracciones de objetos. Estoquiere decir que la definicin de un objeto es la clase. Cuando programamos un objeto y definimos sus

    caractersticas y funcionalidades en realidad lo que estamos haciendo es programar una clase. En los

    ejemplos anteriores en realidad hablbamos de las clases coche o fraccin porque slo estuvimosdefiniendo, aunque por encima, sus formas.

    Propiedades en clases

    Las propiedades o atributos son las caractersticas de los objetos. Cuando definimos una propiedad

    normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades

    son algo as como variables donde almacenamos datos relacionados con los objetos.

    Mtodos en las clases

    Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos

    mtodos. Los mtodos son como funciones que estn asociadas a un objeto.

    Objetos en POO

    Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos queespecificar la clase a partir de la cual se crear. Esta accin de crear un objeto a partir de una clase se

    llama instanciar (que viene de una mala traduccin de la palabra instace que en ingls significa

    ejemplar). Por ejemplo, un objeto de la clase fraccin es por ejemplo 3/5. El concepto o definicin defraccin sera la clase, pero cuando ya estamos hablando de una fraccin en concreto 4/7, 8/1000 ocualquier otra, la llamamos objeto.

    Para crear un objeto se tiene que escribir una instruccin especial que puede ser distinta dependiendo el

    lenguaje de programacin que se emplee, pero ser algo parecido a esto.

    miCoche = new Coche()

    Con la palabra new especificamos que se tiene que crear una instancia de la clase que sigue a

    continuacin. Dentro de los parntesis podramos colocar parmetros con los que inicializar el objeto de

    la clase coche.

    Estados en objetos

    Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos un coche lapropiedad color tomar un valor en concreto, como por ejemplo rojo o gris metalizado. El valor concreto

    de una propiedad de un objeto se llama estado.

    LECCION 2.1 Programacion Orientada a Objetos Pgina 2

  • 8/6/2019 Leccion 2.1 Programacion Orientada a Objetos

    3/7

    [PROGRAMACION II] IDSYSTEMS 2011

    Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza el operador punto.

    miCoche.color = rojo

    El objeto es miCoche, luego colocamos el operador punto y por ltimo el nombre e la propiedad a la que

    deseamos acceder. En este ejemplo estamos cambiando el valor del estado de la propiedad del objeto arojo con una simple asignacin.

    Mensajes en objetos

    Un mensaje en un objeto es la accin de efectuar una llamada a un mtodo. Por ejemplo, cuando le

    decimos a un objeto coche que se ponga en marcha estamos pasndole el mensaje ponte en marcha.

    Para mandar mensajes a los objetos utilizamos el operador punto, seguido del mtodo que deseamosinvocar.

    miCoche.ponerseEnMarcha()

    En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar parntesis igual que cualquier

    llamada a una funcin, dentro iran los parmetros.

    Otras cosas

    Hay mucho todava que conocer de la POO ya que slo hemos hecho referencia a las cosas ms bsicas.

    Tambin existen mecanismos como la herencia y el polimorfismo que son unas de las posibilidades ms

    potentes de la POO.

    La herencia sirve para crear objetos que incorporen propiedades y mtodos de otros objetos. Aspodremos construir unos objetos a partir de otros sin tener que reescribirlo todo.

    El polimorfismo sirve para que no tengamos que preocuparnos sobre lo que estamos trabajando, y

    abstraernos para definir un cdigo que sea compatible con objetos de varios tipos.

    Son conceptos avanzados que cuesta explicar en las lneas de ese informe. No hay que olvidar que

    existen libros enteros dedicados a la POO y aqu solo pretendemos dar un repaso a algunas cosas paraque os suenen cuando tengis que poneros delante de ellas en los lenguajes de programacin que debe

    conocer un desarrollador del web.

    Ejemplo concreto de programacin orientada a objetos

    Para conseguir un ejemplo concreto de lo que es la programacin orientada a objetos, podemos entrar enel Manual de PHP 5. Realmente este manual explica las caractersticas de orientacin a objetos de PHP

    5 y ofrece ejemplos concretos de creacin de clases con caractersticas como herencia, polimorfismo,

    etc.

    Los objetos son entidades que combinan estado (atributo), comportamiento (mtodo) e identidad:

    LECCION 2.1 Programacion Orientada a Objetos Pgina 3

    http://www.desarrolloweb.com/manuales/58/http://www.desarrolloweb.com/manuales/58/
  • 8/6/2019 Leccion 2.1 Programacion Orientada a Objetos

    4/7

    [PROGRAMACION II] IDSYSTEMS 2011

    El estado est compuesto de datos, ser uno o varios atributos a los que se habrnasignado unos valores concretos (datos).

    El comportamiento est definido por los procedimientos o mtodos con que puedeoperar dicho objeto, es decir, qu operaciones se pueden realizar con l.

    La identidad es una propiedad de un objeto que lo diferencia del resto, dicho conotras palabras, es su identificador (concepto anlogo al de identificador de una

    variable o una constante).

    Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros objetos

    pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores biendiferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interaccin llamados

    mtodos, que favorecen la comunicacin entre ellos. Esta comunicacin favorece a su vez el cambio de

    estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las queno se separa el estado y el comportamiento.

    Los mtodos (comportamiento) y atributos (estado) estn estrechamente relacionados por la

    propiedad de conjunto. Esta propiedad destaca que una clase requiere de mtodos para poder tratar los

    atributos con los que cuenta. Elprogramadordebe pensar indistintamente en ambos conceptos, sinseparar ni darle mayor importancia a alguno de ellos. Hacerlo podra producir el hbito errneo de crear

    clases contenedoras de informacin por un lado y clases con mtodos que manejen a las primeras por el

    otro. De esta manera se estara realizando una programacin estructurada camuflada en un lenguajede programacin orientado a objetos.

    La 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 sobretodo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos

    procedimientos manejan. En la programacin estructurada slo se escriben funciones que procesan

    datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarlesmensajes solicitndoles que realicen sus mtodos por s mismos.

    [editar] Origen

    Los conceptos de la programacin orientada a objetos tienen origen enSimula 67, un lenguaje diseadopara hacer simulaciones, creado porOle-Johan Dahl y Kristen Nygaard del Centro de Cmputo Noruego

    enOslo. En este centro, se trabajaba en simulaciones de naves, que fueron confundidas por la explosin

    combinatoria de cmo las diversas cualidades de diferentes naves podan afectar unas a las otras. La ideasurgi al agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase

    de objetos de definir suspropios datos y comportamientos. Fueron refinados ms tarde en Smalltalk,

    desarrollado en Simula en Xerox PARC(cuya primera versin fue escrita sobre Basic) pero diseadopara ser un sistema completamente dinmico en el cual los objetos se podran crear y modificar "sobre la

    marcha" (en tiempo de ejecucin) en lugar de tener un sistema basado en programas estticos.

    La programacin orientada a objetos se fue convirtiendo en el estilo de programacin dominante a

    mediados de los aos ochenta, en gran parte debido a la influencia de C++, una extensin del lenguajede programacin C. Su dominacin fue consolidada gracias al auge de las Interfaces grficas de usuario,

    LECCION 2.1 Programacion Orientada a Objetos Pgina 4

    http://es.wikipedia.org/wiki/M%C3%A9todo_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Variable_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Constante_(programaci%C3%B3n)http://es.wikipedia.org/wiki/M%C3%A9todo_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Programadorhttp://es.wikipedia.org/wiki/Programadorhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_orientada_a_objetos&action=edit&section=2http://es.wikipedia.org/wiki/Simulahttp://es.wikipedia.org/wiki/Simulahttp://es.wikipedia.org/wiki/Ole-Johan_Dahlhttp://es.wikipedia.org/wiki/Kristen_Nygaardhttp://es.wikipedia.org/wiki/Oslohttp://es.wikipedia.org/wiki/Oslohttp://es.wikipedia.org/wiki/Smalltalkhttp://es.wikipedia.org/wiki/Smalltalkhttp://es.wikipedia.org/wiki/Xerox_PARChttp://es.wikipedia.org/wiki/Xerox_PARChttp://es.wikipedia.org/wiki/Basichttp://es.wikipedia.org/wiki/C%2B%2Bhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Chttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Chttp://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuariohttp://es.wikipedia.org/wiki/M%C3%A9todo_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Variable_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Constante_(programaci%C3%B3n)http://es.wikipedia.org/wiki/M%C3%A9todo_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Programadorhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_orientada_a_objetos&action=edit&section=2http://es.wikipedia.org/wiki/Simulahttp://es.wikipedia.org/wiki/Ole-Johan_Dahlhttp://es.wikipedia.org/wiki/Kristen_Nygaardhttp://es.wikipedia.org/wiki/Oslohttp://es.wikipedia.org/wiki/Smalltalkhttp://es.wikipedia.org/wiki/Xerox_PARChttp://es.wikipedia.org/wiki/Basichttp://es.wikipedia.org/wiki/C%2B%2Bhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Chttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Chttp://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuario
  • 8/6/2019 Leccion 2.1 Programacion Orientada a Objetos

    5/7

    [PROGRAMACION II] IDSYSTEMS 2011

    para las cuales la programacin orientada a objetos est particularmente bien adaptada. En este caso, se

    habla tambin deprogramacin dirigida por eventos.

    Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajes existentes durante esetiempo, incluyendo Ada, BASIC, Lisp,Pascal, entre otros. La adicin de estas caractersticas a los

    lenguajes que no fueron diseados inicialmente para ellas condujo a menudo a problemas decompatibilidad y en la capacidad de mantenimiento del cdigo. Los lenguajes orientados a objetos

    "puros", por su parte, carecan de las caractersticas de las cuales muchos programadores haban venidoa depender. Para saltar este obstculo, se hicieron muchas tentativas para crear nuevos lenguajes basados

    en mtodos orientados a objetos, pero permitiendo algunas caractersticas imperativas de maneras

    "seguras". ElEiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esosobjetivos pero ahora ha sido esencialmente reemplazado porJava, en gran parte debido a la aparicin de

    Internet, y a la implementacin de la mquina virtual de Java en la mayora denavegadores.PHP en su

    versin 5 se ha modificado, soporta una orientacin completa a objetos, cumpliendo todas lascaractersticas propias de la orientacin a objetos.

    [editar] Conceptos fundamentales

    La programacin orientada a objetos es una forma de programar que trata de encontrar una solucin aestos problemas. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos.

    Entre ellos destacan los siguientes:

    Clase: definiciones de las propiedades y comportamiento de un tipo de objetoconcreto. La instanciacin es la lectura de estas definiciones y la creacin de unobjeto a partir de ellas.

    Herencia: (por ejemplo, herencia de la clase C a la clase D) Es la facilidadmediante la cual la clase D hereda en ella cada uno de los atributos y operacionesde C, como si esos atributos y operaciones hubiesen sido definidos por la misma D.

    Por lo tanto, puede usar los mismos mtodos y variables publicas declaradas en C.Los componentes registrados como "privados" (private) tambin se heredan, perocomo no pertenecen a la clase, se mantienen escondidos al programador y slopueden ser accedidos a travs de otros mtodos pblicos. Esto es as paramantener hegemnico el ideal de OOP.

    Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y decomportamiento o funcionalidad (mtodos) los mismos que consecuentementereaccionan a eventos. Se corresponde con los objetos reales del mundo que nosrodea, o a objetos internos del sistema (del programa). Es una instancia a unaclase.

    Mtodo: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucinse desencadena tras la recepcin de un "mensaje". Desde el punto de vista delcomportamiento, es lo que el objeto puede hacer. Un mtodo puede producir uncambio en las propiedades del objeto, o la generacin de un "evento" con un nuevomensaje para otro objeto del sistema.

    Evento: Es un suceso en el sistema (tal como una interaccin del usuario con lamquina, o un mensaje enviado por un objeto). El sistema maneja el eventoenviando el mensaje adecuado al objeto pertinente. Tambin se puede definir comoevento, a la reaccin que puede desencadenar un objeto, es decir la accin quegenera.

    LECCION 2.1 Programacion Orientada a Objetos Pgina 5

    http://es.wikipedia.org/wiki/Programaci%C3%B3n_dirigida_por_eventoshttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Adahttp://es.wikipedia.org/wiki/BASIChttp://es.wikipedia.org/wiki/Lisphttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascalhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascalhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Eiffelhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Eiffelhttp://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)http://es.wikipedia.org/wiki/Internethttp://es.wikipedia.org/wiki/Internethttp://es.wikipedia.org/wiki/Navegadoreshttp://es.wikipedia.org/wiki/Navegadoreshttp://es.wikipedia.org/wiki/PHPhttp://es.wikipedia.org/wiki/PHPhttp://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_orientada_a_objetos&action=edit&section=3http://es.wikipedia.org/wiki/Clase_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Herencia_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Objetos_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/M%C3%A9todo_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Programaci%C3%B3n_dirigida_por_eventoshttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Adahttp://es.wikipedia.org/wiki/BASIChttp://es.wikipedia.org/wiki/Lisphttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascalhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Eiffelhttp://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)http://es.wikipedia.org/wiki/Internethttp://es.wikipedia.org/wiki/Navegadoreshttp://es.wikipedia.org/wiki/PHPhttp://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_orientada_a_objetos&action=edit&section=3http://es.wikipedia.org/wiki/Clase_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Herencia_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Objetos_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/M%C3%A9todo_(programaci%C3%B3n_orientada_a_objetos)
  • 8/6/2019 Leccion 2.1 Programacion Orientada a Objetos

    6/7

    [PROGRAMACION II] IDSYSTEMS 2011

    Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecute uno desus mtodos con ciertos parmetros asociados al evento que lo gener.

    Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o auna clase de objetos), que hace los datos visibles desde fuera del objeto y esto sedefine como sus caractersticas predeterminadas, y cuyo valor puede ser alteradopor la ejecucin de algn mtodo.

    Estado interno: es una variable que se declara privada, que puede ser nicamenteaccedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintassituaciones posibles para el objeto (o clase de objetos). No es visible al programadorque maneja una instancia de la clase.

    Componentes de un objeto: atributos, identidad, relaciones y mtodos. Identificacin de un objeto: un objeto se representa por medio de una tabla o

    entidad que est compuesta por sus atributos y funciones correspondientes.

    En comparacin con un lenguaje imperativo, una "variable", no es ms que un contenedor interno del

    atributo del objeto o de un estado interno, as como la "funcin" es un procedimiento interno del mtodo

    del objeto.

    [editar] Caractersticas de la POO

    Existe un acuerdo acerca de qu caractersticas contempla la "orientacin a objetos", las caractersticas

    siguientes son las ms importantes:

    Abstraccin: denota las caractersticas esenciales de un objeto, donde se capturansus 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 revelar cmo se implementanestas caractersticas. Los procesos, las funciones o los mtodos pueden tambin serabstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliaruna abstraccin.El proceso de abstraccin permite seleccionar las caractersticasrelevantes dentro de un conjunto e identificar comportamientos comunes paradefinir nuevos tipos de entidades en el mundo real. La abstraccin es clave en elproceso de anlisis y diseo orientado a objetos, ya que mediante ella podemosllegar a armar un conjunto de clases que permitan modelar la realidad o elproblema que se quiere atacar.

    Encapsulamiento: Significa reunir a todos los elementos que pueden considerarsepertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permiteaumentar la cohesin de los componentes del sistema. Algunos autores confundeneste concepto con el principio de ocultacin, principalmente porque se suelen

    emplear conjuntamente.

    Modularidad: Se denomina Modularidad a la propiedad que permite subdividir unaaplicacin en partes ms pequeas (llamadas mdulos), cada una de las cualesdebe ser tan independiente como sea posible de la aplicacin en s y de lasrestantes partes. Estos mdulos se pueden compilar por separado, pero tienenconexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportanla Modularidad de diversas formas.

    LECCION 2.1 Programacion Orientada a Objetos Pgina 6

    http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_orientada_a_objetos&action=edit&section=4http://es.wikipedia.org/wiki/Abstracci%C3%B3n_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Encapsulamiento_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Dise%C3%B1o_estructuradohttp://es.wikipedia.org/wiki/Modularidad_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_orientada_a_objetos&action=edit&section=4http://es.wikipedia.org/wiki/Abstracci%C3%B3n_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Encapsulamiento_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Dise%C3%B1o_estructuradohttp://es.wikipedia.org/wiki/Modularidad_(programaci%C3%B3n_orientada_a_objetos)
  • 8/6/2019 Leccion 2.1 Programacion Orientada a Objetos

    7/7

    [PROGRAMACION II] IDSYSTEMS 2011

    Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulonatural, y cada tipo de objeto expone una interfaza otros objetos que especificacmo pueden interactuar con los objetos de la clase. El aislamiento protege a laspropiedades de un objeto contra su modificacin por quien no tenga derecho aacceder a ellas, solamente los propios mtodos internos del objeto pueden accedera su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de

    un objeto de maneras inesperadas, eliminando efectos secundarios e interaccionesinesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a losdatos internos del objeto de una manera controlada y limitando el grado deabstraccin. La aplicacin entera se reduce a un agregado o rompecabezas deobjetos.

    Polimorfismo: comportamientos diferentes, asociados a objetos distintos, puedencompartir el mismo nombre, al llamarlos por ese nombre se utilizar elcomportamiento correspondiente al objeto que se est usando. O dicho de otromodo, las referencias y las colecciones de objetos pueden contener objetos dediferentes tipos, y la invocacin de un comportamiento en una referencia producirel comportamiento correcto para el tipo real del objeto referenciado. Cuando estoocurre en "tiempo de ejecucin", esta ltima caracterstica se llama asignacin

    tarda o asignacin dinmica. Algunos lenguajes proporcionan medios ms estticos(en "tiempo de compilacin") de polimorfismo, tales como las plantillas y lasobrecarga de operadores de C++.

    Herencia: las clases no estn aisladas, sino que se relacionan entre s, formandouna jerarqua de clasificacin. Los objetos heredan las propiedades y elcomportamiento de todas las clases a las que pertenecen. La herencia organiza yfacilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidosy creados como tipos especializados de objetos preexistentes. Estos puedencompartir (y extender) su comportamiento sin tener que volver a implementarlo.Esto suele hacerse habitualmente agrupando los objetos en clases y estas enrboles o enrejados que reflejan un comportamiento comn. Cuando un objetohereda de ms de una clase se dice que hay herencia mltiple.

    Recoleccin de basura: la recoleccin de basura o garbage collectores la tcnicapor la cual el entorno de objetos se encarga de destruir automticamente, y portanto desvincular la memoria asociada, los objetos que hayan quedado sin ningunareferencia a ellos. Esto significa que el programador no debe preocuparse por laasignacin o liberacin de memoria, ya que el entorno la asignar al crear un nuevoobjeto y la liberar cuando nadie lo est usando. En la mayora de los lenguajeshbridos que se extendieron para soportar el Paradigma de Programacin Orientadaa Objetos como C++ u Object Pascal, esta caracterstica no existe y la memoriadebe desasignarse manualmente.

    LECCION 2.1 Programacion Orientada a Objetos Pgina 7

    http://es.wikipedia.org/wiki/Principio_de_ocultaci%C3%B3nhttp://es.wikipedia.org/wiki/Rompecabezashttp://es.wikipedia.org/wiki/Polimorfismo_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Sobrecargahttp://es.wikipedia.org/wiki/Herencia_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Recolecci%C3%B3n_de_basura_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Object_Pascalhttp://es.wikipedia.org/wiki/Principio_de_ocultaci%C3%B3nhttp://es.wikipedia.org/wiki/Rompecabezashttp://es.wikipedia.org/wiki/Polimorfismo_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Sobrecargahttp://es.wikipedia.org/wiki/Herencia_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Recolecci%C3%B3n_de_basura_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Object_Pascal