jueves, 21 de septiembre de 2017

               

          UNIVERSIDAD POLITÉCNICA AMAZÓNICA






     PROF:MARCO AURELIO PORRO CHULLI

  CURSO:LABORATORIO PROGRAMACIÓN III

    CICLO:VII

INTEGRANTES:


  •        AARON DELGADO ESPARRAGA
  •         FIORELLA AGUILAR ISUIZA

             


                              PROGRAMACION ORIENTADO A OBJETO


1.-DEFINICION:
Es importante aclarar desde un principio la diferencia que existe entre programación orientada a objetos y un lenguaje orientado a objetos. 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. En este documento veremos brevemente los conceptos básicos de la programación orientada a objetos desde un punto de vista global, sin particularizar para ningún lenguaje de programación específico.

CONCEPTOS BASICOS

Clase: Las clases son uno de los principales componentes de un lenguaje de programación, pues en ellas ocurren todos los procesos lógicos requeridos para un sistema, en si podemos definirlas como estructuras que representan objetos del mundo real, tomando como objetos a personas, lugares o cosas, en general las clases poseen propiedades, comportamientos y relaciones con otras clases del sistema. 
Una clase se compone por tres partes fundamentales:


Nombre: Contiene el Nombre de la Clase.
Atributos: Representan las propiedades que caracterizan la clase.
Métodos: Representan el comportamiento u operaciones, la forma como interactúa la clase con su entorno.

                             






Metodo: Son las operaciones (acciones o funciones) que se aplican sobre los objetos y que permiten crearlos, cambiar su estado o consultar el valor de sus atributos.
Los métodos constituyen la secuencia de acciones que implementan las operaciones sobre los objetos. La implementación de los métodos no es visible fuera de objeto. La sintaxis algorítmica de los métodos expresados como funciones y acciones es: Para funciones se pueden usar cualquiera de estas dos sintaxis:
Función [(Lista Parámetros)]: Para acciones: Acción [(Lista Parámetros)] donde los parámetros son opcionales
Ejemplo: Un rectángulo es un objeto caracterizado por los atributos Largo y Ancho, y por varios métodos, entre otros Calcular su área y Calcular su perímetro.


Características Generales
·         Cada método tiene un nombre, cero o más parámetros (por valor o por referencia) que recibe o devuelve y un algoritmo con el desarrollo del mismo.
·          En particular se destaca el método constructor, que no es más que el método que se ejecuta cuando el objeto es creado. Este constructor suele tener el mismo nombre de la clase/ objeto, pero aunque es una práctica común, el método constructor no necesariamente tiene que llamarse igual a la clase (al menos, no en pseudos-código). Es un método que recibe cero o más parámetros y lo usual es que inicialicen los valores de los atributos del objeto.
·         En lenguajes como Java y C++ se puede definir más de un método constructor, que normalmente se diferencian entre sí por la cantidad de parámetros que reciben.
·          Los métodos se ejecutan o activan cuando el objeto recibe un mensaje, enviado por un objeto o clase externo al que lo contiene, o por el mismo objeto de manera local.
Herencia: El mecanismo de herencia permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente todo su comportamiento, pero además pueden introducir características particulares propias que las diferencian. O La principal ventaja de la herencia es evitar escribir el mismo código varias veces.







Sobrecarga: La sobrecarga puede ser considerada como un tipo especial de polimorfismo que casi todos los lenguajes de OOP incluyen. Varios métodos (incluidos los "constructores", de los que se hablará más adelante) pueden tener el mismo nombre siempre y cuando el tipo de parámetros que recibe o el número de ellos sea diferente. De este modo, por ejemplo la clase File puede tener tantos método Write() como tipos de datos queramos escribir (no se preocupe si no entiende la nomenclatura, céntrese en la idea):

Existe un tipo especial de sobrecarga llamada sobrecarga de operadores que, de los leguajes OOP conocidos, solo incorpora C++. Es por esto que consideramos que el abordar este tema escapa a la finalidad del presente curso.


 EVENTO:Los eventos son todas las acciones que el usuario inicia, dar clic sobre un botón, presionar las teclas del teclado, etc. Cada vez que se produce un evento, se crea un objeto. La clase padre de los eventos es "java.awt.event".
Cada lenguaje de programación tiene su propio modelo de eventos, en Java se definen clases auxiliares llamadas escuchadores (listeners) que reciben eventos específicos.
Los escuchadores se registran en las fuentes de eventos (teclado, ratón, etc). Estas envían objetos del tipo EventObjet la los escuchadores registrados al producirse un evento. Cada escuchador utiliza la información recibida a través del objeto para realizar las acciones adecuadas.
Dentro de "java.awt.event", los eventos están categorizados dentro de una jerarquía de clases.

·         La clase "java.util.EventObject" es la clase base de todos los

eventos en Java.

·         La subclase "java.awt.AWTEvent" es la clase base de todos los

eventos que se utilizan en la construcción de GUIs.

·         Cada tipo de evento "xxEvent" tiene asociada una interfaz "xxListener" que es la que nos permite definir escuchadores de eventos.
·         Para simplificar la implementación de algunos escuchadores de eventos, el paquete "java.awt.event" incluye clases base xxAdapter que implementan las interfaces xxListener.
Existen distintos tipos de eventos, los cuales son:

Eventos de Ventana

Son los que se generan en respuesta a los cambios de una ventana, un frame o un dialogo.



·         WINDOW_DESTROY
·         WINDOW_EXPOSE
·         WINDOW_ICONIFY
·         WINDOW_DEICONIFY
·         WINDOW_MOVED
Eventos de Teclado

Son generados en respuesta a cuando el usuario pulsa y suelta una tecla mientras un Componente tiene el foco de entrada.



·         KEY_PRESS
·         KEY_RELEASE
·         KEY_ACTION
·         KEY_ACTION_RELEASE
Eventos de Ratón

Son los eventos generados por acciones sobre el ratón dentro de los límites de un Componente.



·         MOUSE_DOWN
·         MOUSE_UP
·         MOUSE_MOVE
·         MOUSE_ENTER
·         MOUSE_EXIT
·         MOUSE_DRAG
Eventos de Barras

Son los eventos generados como respuesta a la manipulación de barras de desplazamiento (scrollbars).



·         SCROLL_LINE_UP
·         SCROLL_LINE_DOWN
·         SCROLL_PAGE_UP
·         SCROLL_PAGE_DOWN
·         SCROLL_ABSOLUTE
Eventos de Lista

Son los eventos generados al seleccionar elementos de una lista.



·         LIST_SELECT
·         LIST_DESELECT
Eventos Varios

Son los eventos generados en función de diversas acciones.



·         ACTION_EVENT
·         LOAD_FILE
·         SAVE_FILE
·         GOT_FOCUS
·         LOST_FOCUS

Atributos
Los atributos son las caracterísiticas individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables.
Las variables de instancia también denominados miembros dato, son declaradas en la clase pero sus valores son fijados y cambiados en el objeto.
Además de las variables de instancia hay variables de clase, las cuales se aplican a la clase y a todas sus instancias. Por ejemplo, el número de ruedas de un automóvil es el mismo cuatro, para todos los automóviles.

MENSAJE: Normalmente un único objeto por sí solo no es muy útil. En general, un objeto aparece como un componente más de un programa o una aplicación que contiene otros muchos objetos. Es precisamente haciendo uso de esta interacción como los programadores consiguen una funcionalidad de mayor orden y modelar comportamientos mucho más complejos. Una bicicleta (a partir de ahora particularizaremos) colgada de un gancho en el garaje no es más que una estructura de aleación de titanio y un poco de goma. Por sí sola, tu bicicleta (por poner una bicicleta en concreto) es incapaz de desarrollar ninguna actividad. Tu bicicleta es realmente útil en tanto que otro objeto (tú) interactúa con ella (pedalea). 8 Los objetos de un programa interactúan y se comunican entre ellos por medio de mensajes. Cuando un objeto A quiere que otro objeto B ejecute una de sus funciones miembro (métodos de B), el objeto A manda un mensaje al objeto B.




En ocasiones, el objeto que recibe el mensaje necesita más información para saber exactamente lo que tiene que hacer; por ejemplo, cuando se desea cambiar la marcha de una bicicleta, se debe indicar la marcha a la que se quiere cambiar. Esta información se pasa junto con el mensaje en forma de parámetro. La siguiente figura muestra las tres partes que componen un mensaje:
1. El objeto al cual se manda el mensaje (TuBicicleta).
2. El método o función miembro que debe ejecutar (CambiarDeMarcha).
3. Los parámetros que necesita ese método (Marcha)



Estas tres partes del mensaje (objeto destinatario, método y parámetros) son suficiente información para que el objeto que recibe el mensaje ejecute el método o la función miembro solicitada. Los mensajes proporcionan dos ventajas importantes: El Objeto “Tú” manda el mensaje “CambiarDeMarcha” con el parámetro “Marcha” al Objeto “TuBicicleta”. Cuando un objeto A quiere que otro objeto B ejecute una de sus funciones miembro (métodos de B), el objeto A manda un mensaje al objeto B. 9
·          El comportamiento de un objeto está completamente determinado (a excepción del acceso directo a variables miembro públicas) por sus métodos, así que los mensajes representan todas las posibles interacciones que pueden realizarse entre objetos.
·          Los objetos no necesitan formar parte del mismo proceso, ni siquiera residir en un mismo ordenador para mandarse mensajes entre ellos (y de esta forma interactuar).

CARACTERISTICAS:

ABTRACCION: La abstracción permite resaltar la parte mas representativa de algo, ignorando detalles para centrarse en lo principal. 

La imagen es muy fácil de identificar, con base a ella podemos crear una clase persona, o la

clase hombre, humano entre otras, pero obviamente vemos que la imagen no tiene elementos como ojos, nariz, boca, rostro en general, ni dedos, pies, manos o cuello....... pero entonces porque decimos que es una persona?.........Precisamente aquí estamos aplicando el concepto de abstracción, ya que nos fijamos en lo mas representativo de algo, en este caso vemos que se tiene una cabeza, tronco, brazos y pies, con esto es suficiente para saber que es una persona sin fijarnos en los detalles mencionados anteriormente.
Las clases abstractas permiten crear métodos generales con un comportamiento común para otras clases concretas sin importar sus características ni el comportamiento que usen para dichos métodos.

La Abstracción en java solo tiene lógica mediante la Herencia, ya que una clase abstracta posee al menos un método abstracto el cual no tiene implementación, el comportamiento de estos métodos lo definen las clases concretas que lo hereden. 
Podemos usarlos cuando existan varias clases con características o acciones comunes pero con diferentes comportamientos..............mediante el uso de la herencia y componentes abstractos hacemos mas óptima y organizada nuestra aplicación. (hay que tener en cuenta que a diferencia de las clases concretas, las clases abstractas no se pueden instanciar).

En Java representamos la abstracción mediante la palabra reservada abstract, así:





ENCAPSULAMIENTO: 
Este concepto es uno de los mas importantes en términos de seguridad dentro de nuestra aplicación, la encapsulación es la forma de proteger nuestros datos dentro del sistema, estableciendo básicamente los permisos o niveles de visibilidad o acceso de nuestros datos

Se representa por 3 niveles :                                                            

Público: Se puede acceder a todos los atributos o métodos de la clase. Protegido: Se puede acceder a los atributos o métodos solo en la misma jerarquía de herencia. Privado: Solo se puede acceder a los atributos o métodos de la clase en la que se encuentran.

con la Encapsulación mantenemos nuestros datos seguros, ya que podemos evitar que por ejemplo se hagan modificaciones al estado o comportamiento de un objeto desde una clase externa, una buena practica es trabajar con métodos setter y getter que permiten manipular nuestros datos de forma segura.

en Java lo representamos así:




HERENCIA: Una vez que hemos visto el concepto de clase y el de objeto, estamos en condiciones de introducir otra de las características básicas de la programación orientada a objetos: el uso de la herencia. El mecanismo de herencia permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente todo su comportamiento, pero además pueden introducir características particulares propias que las diferencian. Definición de la clase “bicicleta” OBJETOS O INSTANCIAS DE LA CLASE BICICLETAS 11 Como hemos visto, los objetos se definen a partir de clases. Con el mero hecho de conocer a qué clase pertenece un objeto, ya se sabe bastante sobre él. Puede que no sepamos lo que es la “Espada”, pero si nos dicen que es una bicicleta, ya sabremos que tiene dos ruedas, manillar, pedales... La programación orientada a objetos va más allá, permitiéndonos definir clases a partir de otras clases ya construidas. Por ejemplo, las bicicletas de montaña, las de carretera y los tándems son todos, en definitiva, bicicletas. En términos de programación orientada a objetos, son subclases o clases derivadas de la clase bicicleta. Análogamente, la clase bicicleta es la clase base o superclase de las bicicletas de montaña, las de carretera y los tándems. Esta relación se muestra en la siguiente figura.


POLIMORFISMO: Este tal vez sea uno de los conceptos de la programación orientada a objetos más usados pero muchas veces sin saber que se aplica ya que el concepto inicialmente puede ser un poco confuso, básicamente mediante el polimorfismo programamos de forma general en lugar de hacerlo de forma específica, se usa cuando se trabajen con la herencia y objetos de características comunes los cuales comparten la misma superClase y árbol jerárquico, al trabajar con este concepto optimizamos y simplificamos en gran medida nuestro trabajo.


Básicamente podemos definirlo como la capacidad que tienen los objetos de comportarse de múltiples formas sin olvidar que para esto se requiere de la herencia, en si consiste en hacer referencia a objetos de una clase que puedan tomar comportamientos de objetos descendientes de esta.

Con el polimorfismo usamos la generalización olvidando los detalles concretos de los objetos para centrarnos en un punto en común mediante una clase padre.

Tomando como ejemplo la imagen anterior, podemos decir que un objeto de la clase FiguraGeometrica puede usarse para referirse a cualquier objeto de cualquier subClase de FiguraGeometrica.............. En otras palabras una figura geométrica puede ser un cuadro, un triángulo, un cuadrado o cualquier figura que en términos generales sea geométrica

Veamos este proceso como se representa en Java.




Como vemos en el ejemplo la clase Figura Geometrica puede convertirse en cualquier figura que se encuentra en su jerarquía de Herencia pudiendo utilizar las propiedades que compartan entre ellas, hay que tener presente que solo se permite el polimorfismo de clases padre a clases hija mas no al contrario, mas adelante explicaremos este concepto en detalle...


Hasta aquí vimos algunos de los principales conceptos de la programación Orientada a Objetos, en futuras entradas trabajaremos otros ejemplos y aplicaciones, ya que cada concepto posee sus restricciones con respecto al proceso de desarrollo.


Modularidad: 

Es, en programación modular y más específicamente en programacion orientada a objeto, la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes.
Estos módulos que se puedan compilar por separado, pero que tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la Modularidad de diversas formas. La modularidad debe seguir los conceptos de acoplamiento y cohesión.
Según Bertrand Meyer: «El acto de particionar un programa en componentes individuales para reducir su complejidad en algún grado… A pesar de particionar un programa es útil por esta razón, una justificación más poderosa para particionar un programa es que crea una serie de límites bien definidos y documentados en el programa. Estos límites, o interfaces, son muy valiosos en la comprensión del programa».


POO EN VISUAL BASIC NET

INTRODUCCION:
Visual Basic es un descendiente de Basic, que ha existido durante varias décadas. BASIC (el acrónimo de Beginners´All-Purpose Symbolic Instruction Code) fue originariamente desarrollado por la Dartmouth University en 1964 como lenguaje para programadores principiantes. BASIC se convirtió en el primer lenguaje que la mayoría de los programadores aprendía para familiarizarse con los fundamentos de la programación antes de pasar a lenguajes más potentes. Visual Basic apareció en mayo de 1991 y supuso una revolución en la metodología de desarrollo de aplicaciones, ya que permitía la creación de programas arrastrando y soltando componentes en lugar de tener que codificar manualmente los elementos. Desde muchos puntos de vista Visual Basic .NET supone la madurez de ese proyecto que nació hace mas de diez años. La nueva versión, Visual Basic .NET, incorpora características de orientación a objetos de tal manera que podría considerarse un lenguaje totalmente diferente a sus predecesores y totalmente orientado a objetos, ya que en versiones anteriores Visual Basic era considerado un lenguaje de programación con sintaxis de objetos, pero no un verdadero lenguaje orientado a objetos. Las principales novedades que incorpora son:
- La herencia, tan solicitada por miles de programadores.
- Desarrollo de programas con múltiples hilos de ejecución.
- Control estructurado de excepciones. - Inicializadores, que permiten establecer los valores iniciales de las variables.



• La 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), 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.
• La 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.
• El 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... o casi.  

La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

Herencia: (por ejemplo, herencia de la clase C a la clase D) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de OOP.

Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.
Metodo: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
Evento: Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.
Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
Componentes de un objeto: atributos, identidad, relaciones y métodos.
Identificación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.


2:-RESUMEN:

DEFINICION:
Es importante aclarar desde un principio la diferencia que existe entre programación orientada a objetos y un lenguaje orientado a objetos. La programación orientada a objetos es una “filosofía”, un modelo de programación.
CONCEPTOS BASICOS
Clase: Las clases son uno de los principales componentes de un lenguaje de programación, pues en ellas ocurren todos los procesos lógicos requeridos para un sistema, en si podemos definirlas como estructuras que representan objetos del mundo real, tomando como objetos a personas, lugares o cosas, en general las clases poseen propiedades, comportamientos y relaciones con otras clases del sistema.
Metodo: Son las operaciones (acciones o funciones) que se aplican sobre los objetos y que permiten crearlos, cambiar su estado o consultar el valor de sus atributos.
Los métodos constituyen la secuencia de acciones que implementan las operaciones sobre los objetos. La implementación de los métodos no es visible fuera de objeto. La sintaxis algorítmica de los métodos expresados como funciones y acciones es: Para funciones se pueden usar cualquiera de estas dos sintaxis:
 Herencia: El mecanismo de herencia permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente todo su comportamiento, pero además pueden introducir características particulares propias que las diferencian.

Sobrecarga: La sobrecarga puede ser considerada como un tipo especial de polimorfismo que casi todos los lenguajes de OOP incluyen. Varios métodos (incluidos los "constructores", de los que se hablará más adelante) pueden tener el mismo nombre siempre y cuando el tipo de parámetros que recibe o el número de ellos sea diferente.
EVENTO:
Los eventos son todas las acciones que el usuario inicia, dar clic sobre un botón, presionar las teclas del teclado, etc. Cada vez que se produce un evento, se crea un objeto. La clase padre de los eventos es "java.awt.event".
Cada lenguaje de programación tiene su propio modelo de eventos, en Java se definen clases auxiliares llamadas escuchadores (listeners) que reciben eventos específicos.
Atributos
Los atributos son las caracterísiticas individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables.
MENSAJE: Normalmente un único objeto por sí solo no es muy útil. En general, un objeto aparece como un componente más de un programa o una aplicación que contiene otros muchos objetos. Es precisamente haciendo uso de esta interacción como los programadores consiguen una funcionalidad de mayor orden y modelar comportamientos mucho más complejos.
ABTRACCION: La abstracción permite resaltar la parte mas representativa de algo, ignorando detalles para centrarse en lo principal.
La imagen es muy fácil de identificar, con base a ella podemos crear una clase persona, o la clase hombre, humano entre otras, pero obviamente vemos que la imagen no tiene elementos como ojos, nariz, boca, rostro en general, ni dedos, pies, manos o cuello.
ENCAPSULAMIENTO:
Este concepto es uno de los más importantes en términos de seguridad dentro de nuestra aplicación, la encapsulación es la forma de proteger nuestros datos dentro del sistema, estableciendo básicamente los permisos o niveles de visibilidad o acceso de nuestros datos.
HERENCIA: Una vez que hemos visto el concepto de clase y el de objeto, estamos en condiciones de introducir otra de las características básicas de la programación orientada a objetos: el uso de la herencia. El mecanismo de herencia permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente todo su comportamiento.
POLIMORFISMO: Este tal vez sea uno de los conceptos de la programación orientada a objetos más usados pero muchas veces sin saber que se aplica ya que el concepto inicialmente puede ser un poco confuso, básicamente mediante el polimorfismo programamos de forma general en lugar de hacerlo de forma específica, se usa cuando se trabajen con la herencia y objetos de características comunes los cuales comparten la misma superClase y árbol jerárquico, al trabajar con este concepto optimizamos y simplificamos en gran medida nuestro trabajo.
Modularidad: es, en programación modular y más específicamente en programación orientada a objetos, la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes.

POO EN VISUAL BASIC NET

INTRODUCCION:
Visual Basic es un descendiente de Basic, que ha existido durante varias décadas. BASIC (el acrónimo de Beginners´All-Purpose Symbolic Instruction Code) fue originariamente desarrollado por la Dartmouth University en 1964 como lenguaje para programadores principiantes. BASIC se convirtió en el primer lenguaje que la mayoría de los programadores aprendía para familiarizarse con los fundamentos de la programación antes de pasar a lenguajes más potentes. Visual Basic apareció en mayo de 1991 y supuso una revolución en la metodología de desarrollo de aplicaciones, ya que permitía la creación de programas arrastrando y soltando componentes en lugar de tener que codificar manualmente los elementos.

• La 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), 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.
• La 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.
• El 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... o casi.  

La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

CLASE: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.
METODO: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
EVENTO: Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.
MENSAJE: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.


3:SUMMARY

DEFINITION:
The difference between object-oriented programming and an object-oriented language is important from the outset. Object-oriented programming is a philosophy, a programming model.
BASIC CONCEPTS
Class: Classes are one of the main components of a programming language, since they occur in all the processes required for a system, they can be defined as structures representing objects in the real world, taking objects, places, things in general classes possess properties, behaviors and relationships with other classes of the system.
Method: They are the operations that are applied on the objects and that allow to create, to change its state or to consult the value of its attributes.
Methods are the sequence of actions that implement operations on objects. The implementation of the methods is not visible outside the object. The algorithmic syntax of the methods expressed as functions and actions is: For functions you can use either of these two syntaxes:
Inheritance: The inheritance mechanism allows defining new classes from existing ones. Classes that derive from others automatically inherit all of their behavior, but may also include unique characteristics that differentiate them.

Overload: Overload can be considered as a special type of polymorphism that almost all OOP languages ​​include. Several methods (including "constructors", discussed later) may have the same name as long as the type of parameters that receive the number of them differ.

EVENT:
Events are all actions that the user starts, presses a button, presses the keys of the keyboard, etc. Each time an event occurs, an object is created. The parent class of events is "java.awt.event".
Each programming language has its own event model, Java defines auxiliary listeners (listeners) that receive specific events.


Attributes
Attributes are the individual characteristics that differentiate one object from another and determine its appearance, state or other qualities. Attributes are stored in named instance variables, and each particular object can have different values ​​for these variables.
MESSAGE: Normally a single object alone is not very useful. In general, an object appears as one more component of a program or an application that contains many other objects. It is precisely by making use of this interaction as programmers get a mayoral functionality and model much more complex behaviors.
ABRACTION: Abstraction allows to highlight the most representative part of something, ignoring the details to focus on the main thing.
The image is very easy to identify, based on it can create a kind of person, human, human class among others, but obviously we see that the image has no elements like eyes, nose, mouth, face in general, nor fingers, cakes, hands or neck. 

ENCAPSULATION:
This concept is one of the most important in terms of security within our application, encapsulation is the way to protect our data within the system, basically establishing the permissions or levels of visibility or access of our data.
Inheritance: Once we have seen the concept of class and object, we are able to apply another of the basic characteristics of object-oriented programming: the use of inheritance. The inheritance mechanism allows defining new classes from existing ones. Classes that derive from others automatically inherit all of their behavior.
POLYMORPHISM: This may be one of the most commonly used object-oriented programming concepts, but often without knowing that it is applied and that the concept can initially be confusing, basically through the polymorphic program in general in the place of doing it specific form, is used when working with inheritance and objects of common characteristics which compare the same superClase and hierarchical tree, working with this concept we greatly optimize and simplify our work.
Modularity: it is, in modular programming and more specifically in object oriented programming, the property that allows to subdivide an application into smaller parts (called modules), each of which must be as independent as the possible sea of ​​the application itself and the remaining parts.
POO IN VISUAL BASIC NET
INTRODUCTION:
Visual Basic is a descendant of Basic, which has existed for several decades. BASIC (the acronym for Beginners' All-Purpose Symbolic Instruction Code) was originally developed by Dartmouth University in 1964 as a language for beginner programmers. BASIC became the first language most programmers learned to become familiar with the fundamentals of programming before moving on to more powerful languages. Visual Basic appeared in May 1991 and was a revolution in application development methodology, as it allowed the creation of programs by dragging and dropping components instead of having to manually encode the elements.

• ENCAPSULATION is the quality of unifying the data and how to manipulate them, in this way we can hide the operation of a class and expose only the data it manipulates (through properties), as well as provide means to manipulate such data methods). In this way we only expose the outside world to the information and how to manipulate it, hiding the details used to handle that data and, more importantly, preventing anyone from uncontrolled manipulation of such information.
Inheritance is the quality of being able to create new classes (or types) based on other classes, so that the new class obtains all the characteristics of the class that it has inherited, both the data that it contains and the way of manipulating them, being able to add new features and even change the behavior of some of the included ones in the base class, (provided this is provided). Through inheritance we can easily create a hierarchy of classes that share the same basic behavior but that each new generation can have (and indeed has) a new behavior.
• POLYMORPHISM is the quality to implement in a particular way some of the characteristics that the classes have, so that when we need to use them we do not worry about the internal implementation that each one has, what we really care or should care about is that we can use those characteristics and even we can access them anonymously ... or almost.

Object-oriented programming is a way of programming that tries to find a solution to these problems. Introduces new concepts, which surpass and extend old concepts already known. These include:

Class: definitions of the properties and behavior of a particular object type. The instantiation is the reading of these definitions and the creation of an object from them.
Method: Algorithm associated with an object (or a class of objects), whose execution is triggered upon receipt of a "message". From the point of view of behavior, it is what the object can do. A method can produce a change in object properties, or the generation of an "event" with a new message for another object in the system.
Event: It is an event in the system (such as a user interaction with the machine, or a message sent by an object). The system handles the event by sending the appropriate message to the relevant object. It can also be defined as an event, the reaction that can trigger an object, ie the action it generates.
Message: a communication addressed to an object, which instructs it to execute one of its methods with certain parameters associated with the event that generated it.
Property or attribute: container of a data type associated with an object (or an object class), which makes the data visible from outside the object and this is defined as its predetermined characteristics, and whose value can be altered by the execution of some method.

4.-RECOMENDACIONES: La POO representa un gran avance en la programación, tal como lo fue la programación estructurada en la década de los ’70. Entre sus ventajas más importante se encuentran un notable aumento de la productividad del programador y de la robustez de los programas.
Personalmente, el lenguaje orientado a objetos que más me agrada es Eiffel (además de sus características de orientación a objetos, soporta la metodología de diseño por contratos).

5.-CONCLUSIONES:  Identidad, clasificación, polimorfismo y herencia caracterizan a los lenguajes orientados a objetos. Cada uno de estos conceptos puede utilizarse aisladamente, incluso aparecen en otras metodologías de programación, pero juntos se complementan en una relación sinérgica. Los beneficios de la programación orientada a objetos son más que los que pueden verse a simple vista. El énfasis en las propiedades esenciales de un objeto, fuerza al desarrollador a pensar cuidadosamente que es un objeto y que es lo que hace con el resultado de que el sistema es normalmente más preciso, general y robusto que si pusiéramos el énfasis en los procedimientos y los datos por separado.

6.-APRECIACION DEL EQUIPO.
Nuestra apreciación del equipo es que si queremos ser buenos programadores debemos aprender a programar la programación orientado a objetos ya sea en java o visual estudio así sabrás como se diferencia.

Si la aplicación involucra operaciones con  base de datos, interfaces web u otras tareas de negocio, la opción ideal es Visual Basic.

La programación orientado  a objetos el código se puede reutilizar.

7.-GLOSARIO.-

Programación Orientada a Objetos.-Es una filosofía de programación que se basa en la utilización de objetos. El objetivo de la POO es "imponer" una serie de normas de desarrollo que aseguren y faciliten la mantenibilidad y reusabilidad del código.

Acoplamiento (coupling).-Medida del grado en el que un objeto o componente depende de otro. Bajo acoplamiento minimiza las dependencias y es una indicación de un buen diseño
Algoritmo (algorithm).- Método que describe cómo se resuelve un problema en término de las acciones que se ejecutan y especifica el orden en que se ejecutan estas acciones. Los algoritmos ayudan al programador a planificar un programa antes de su escritura en un lenguaje de programación.
Asignación (assignment).- Almacenamiento de un valor en una variable. La sentencia de asignación es aquella que implementa la asignación y utiliza un operador de asignación.
Clase cliente (client class).- Clase que hace uso de otra clase.
Declaración (declaration).- Define las variables, métodos y clase en un programa.


8.-LINKOGRAFIA.-





                          









           

                          UNIVERSIDAD POLITÉCNICA AMAZÓNICA      PROF: MARCO AURELIO PORRO CHULLI   CURSO: LABORATORIO PROGR...