Título: [Fundamentos] Programación Orientada a Objetos Publicado por: AFelipeTrujillo en 2 Septiembre 2010, 20:53 pm Introducción La programación orientada a objetos (POO) nos permite escribir código menos propenso a fallos además de permitirnos la re utilización de código de forma más conveniente. En el siguiente articulo tratare unos conceptos básicos que debemos tener en cuenta a la hora de programar bajo este paradigma y de cómo utilizar los distintos elementos que nos permitirán crear código que sea más fácil de escribir y mantener Los Pilares de la POO La programación orientada objetos (que aquí en adelante la voy a llamar POO) tiene tres características esenciales y son el alma de este estilo de programación estos son: * Encapsulación * Herencia * Polimorfismo Encapsulación: Es la cualidad de unificar los datos y la forma de manipularlos, de esta forma podemos ocultar el funcionamiento de una clase y exponer solo los datos que manipula (mediante propiedades o atributos), así como proveer de medios para poder manipular dichos datos (mediante métodos). De esta forma solo exponemos al mundo exterior la información y la forma de manipularla, ocultando los detalles usados para manejar esos datos y, lo que es más importante, evitando que nadie manipule de una forma no controlada dicha información. Herencia: Es la cualidad de poder crear nuevas clases (o tipos) basadas en otras clases, de forma que la nueva clase obtenga todas las características de la clase que ha heredado, tanto los datos que contiene como la forma de manipularlos, pudiendo añadir nuevas características e incluso cambiar el comportamiento de algunas de las incluidas en la clase base, (siempre que así se haya previsto). Mediante la herencia podemos crear de forma fácil una jerarquía de clases que comparten un mismo comportamiento básico pero que cada nueva generación puede tener (y de hecho tiene) un nuevo comportamiento. Polimorfismo: es la cualidad de implementar de forma particular algunas de las características que tienen las clases, de forma que cuando necesitemos usarlas no nos preocupe la implementación interna que cada una tenga, lo que realmente nos interesa o nos debe importar es que podemos usar esas características e incluso podamos acceder a ellas de forma anónima. ¿Por Que POO? # Se parece mas al mundo real # Permite Representar Modelos Complejos # Muy apropiada para aplicaciones de Negocio (BPM) # Las dos grandes plataformas del mercado han adoptado este paradigma Java y .NET FUENTE (http://4ng3r.blogspot.com/2010/08/programacion-orientada-objetos.html#more) Título: Re: [Fundamentos] Programación Orientada a Objetos Publicado por: [D4N93R] en 3 Septiembre 2010, 03:28 am FUENTE: http://eprints.ucm.es/9164/1/TC2007-46.pdf
Título: Modificadores de Acceso Publicado por: AFelipeTrujillo en 3 Septiembre 2010, 07:15 am Modificadores de Acceso Un modificador de acceso permite definir niveles de acceso o visibilidad de los miembros de de una clase como los atributos y operaciones (Estados y Comportamiento). Los cuatro niveles de acceso son: * Publico * Privado * Protegido * Paquete Publico: cuando un miembro publico (recuerden que cuando me refiero a un miembro hago referencia a un atributo u operación) este puede ser accedido por cualquier otra clase. Privado: cuando un miembro es privado, significa que solamente puede ser accedido por los misma clase. Protegido: un miembro protegido solamente puede ser accedido desde la clase en la que está declarado y desde las clases que hereden de ella. Paquete: un miembro de tipo paquete sólo podrá ser accedido desde las clases que estén en el mismo paquete lógico que la clase en la que está definido. En un entorno .Net las librerias las podemos ver como las DLL o archivos ejecutables (Exe) en cambio en un entorno JAVA los paquetes son loas archivo JAR. Ejemplo: para mis ejemplos voy a utilizar cuatro lenguajes de programación, que de cierta forma son los mas comerciales, estos son VB .NET, C# .NET, JAVA y PHP. Con ellos aprenderemos como se ve la teoría en la practica, crearemos clases, atributos y métodos con los diferentes tipos de acceso Definición de clases con uso de modificadores de acceso: VB .NET La familia .NET son tecnologías licenciadas, la idea que tuvo Microsoft es bastante buena, por que .NET no es solo un lenguaje sin que es un conjunto de ellos. Por eso .Net se adapta a cualquier desarrollador de software pero eso no quiere decir que sea el mejor Código
Definición de clases con uso de modificadores de acceso: C# .NET Código
JAVA Código
Si podemos observar, la forma de trabajo de C# y JAVA son muy similares así que básicamente si aprendemos a programar en C# nos que mas fácil aprender JAVA PHP Código
FUENTE (http://4ng3r.blogspot.com/2010/09/programacion-orientada-objetos-3.html) Título: Programación Orientada a Objetos -Objetos y Clases Publicado por: AFelipeTrujillo en 3 Septiembre 2010, 09:16 am Objetos y Clases ¿Que es un Objeto? * Un objeto informalmente es una entidad del mundo real, Existen entidades físicas, conceptuales y de software * Entidades físicas: Automóvil, Avión * Entidades Conceptuales: Formula Matemática, Procesos Biologicos * Entidades de Software: Listas, Colas, Interfaces Gráficas Definición Formal Según las definiciones formales de James Rumbaugh y Grady Booch, un objeto es una abstracción de la realidad que tiene un significado concreto y claro para el problema que se esta modelando, para mi ejemplo voy a tomas un objeto como un Auto. Entonces según Booch los objetos poseen Estado, Comportamiento e Identidad. Entonces: * Estado: los estados se pueden traducir como los atributos del objeto o sus características. Por ejemplo el auto tiene un numero de puertas, un cierto numero de ruedas, un motor, entre otros. * Comportamiento: se puede traducir como las operaciones que puede ejecutar el objeto, en nuestro caso, acelerar, frenar, girar, arrancar, entre otros. * Identidad: la identidad hace referencia a que cada objeto es único ante los demás, así los otros tengan los mismos estado. (http://a.imageshack.us/img338/6112/screenhunter01sep020142.gif) ¿Que es una Clase? Una clase es la descripción de un grupo de objetos que cumples con las siguientes características: * Propiedades en común (Atributos) * Comportamientos Similares (Operaciones) * La misma forma de relacionarse con los demás objetos. * Significan lo mismo Por ejemplo un Auto (como lo vimos anteriormente) Posee un conjunto de comportamientos, como es arrancar y frenar que lo hace un vehí[cul*] motorizado. Ahora bien, una moto también es un vehí[cul*] motorizado y también posee los mismo comportamientos de un automóvil (arrancar y frenar) Entonces una clase es la generalización de un conjunto de objetos que comparte, en este caso, comportamientos similares. Una clase es una definición abstracta de un objeto, define la estructura y el comportamiento compartidos por los objetos. Sirven como modelos para la creación de objetos. De cierta forma, las clases se pueden ver como plantillas, moldes o esquemas de un conjunto de entidades de la cual se crearan instancias (objetos) (http://a.imageshack.us/img843/152/screenhunter02sep020158.gif) FUENTE (http://4ng3r.blogspot.com/2010/09/programacion-orientada-objetos-2.html#more) Título: Re: [Fundamentos] Programación Orientada a Objetos Publicado por: [D4N93R] en 3 Septiembre 2010, 15:13 pm De nuevo, no estás aplicando correctamente el concepto de FUENTE. Esas imágenes son del curso de desarrollador 5 estrellas. No se si parte del texto lo será también, pero he visto otras presentaciones con parte de él. En realidad te quedó muy bien, pero siempre es bueno colocar las fuentes por respeto a los autores.
Un saludo! EDIT: no es por arruinarte el post pero todo está casi como en DCE0_IntroduccionOrientacionAObjetos.ppt Título: Re: [Fundamentos] Programación Orientada a Objetos Publicado por: AFelipeTrujillo en 3 Septiembre 2010, 20:16 pm si básicamente lo que hago es un resumen, pero también hay redacción mía, si y me falta anexar la bibliografía y no todo lo tome del curso de 5 estrellas
|