Post on 27-Dec-2015
Programación Orientada a
Objetos
Visual Basic .NetIng. Enrique Alejandro Barboza Vilca
Ing. Enrique Alejandro Barboza Vilca
OBJETIVOS
Durante la presente semana se desarrollarálos siguientes temas:
Visual Basic .Net
Introducción a la P.O.O.Analogía de P.O.O.Clases.Objetos.Métodos y Propiedades.Constructores y Destructores.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
Objetivos:
PROGRAMACIÓN ORIENTADA A OBJETOS
El objetivo del presente tema, es manejar los conceptos de la Programación Orienta a Objetos (P.O.O).
Para poder aplicar en el desarrollo de las aplicaciones a realizar, utilizando el Visual Basic .Net.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
Ventajas
La programación orientada a objeto, a partir de ahora, se trata de una evolución de la programación procedural basada en funciones, que permite agrupar elementos de código (rutinas y datos) con funcionalidades similares, bajo un sistema unificado de manipulación y acceso a dichos elementos.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
Del enfoque procedural al enfoque orientado a objeto
En la programación estructurada procedural, basada en procedimientos y funciones, el crecimiento de una aplicación hace que el mantenimiento sea difícil.
Debido al gran número de procedimientos interrelacionados que podemos llegar a tener.
El hecho de efectuar una pequeña modificación en un proceso, nos puede suponer el tener que recorrer un gran número de funciones del programa.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
Los fundamentos de la programación orientada a objeto
La organización de una aplicación en P.O.O. se realiza mediante estructuras de código.
Una estructura de código contiene un conjunto de procedimientos e información que ejecutan una serie de procesos destinados a resolver un grupo de tareas con un denominador común.
Una aplicación orientada a objetos tendrá tantas estructuras de código como aspectos del programa sea necesario resolver.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
…Los fundamentos de la programación orientada a objeto
Un procedimiento que esta dentro de una de estructura, no podrá llamar ni ser llamado por otro procedimiento situado en una estructura distinta, si no es bajo una serie de reglas.
Lo mismo sucederá con los datos que contenga la estructura, permanecerán aislados del exterior, y sólo serán accesibles siguiendo ciertas normas.
Una estructura de código, es lo que en OOP identificamos como objeto.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
…Los fundamentos de la programación orientada a objeto
Uno de los fines perseguidos por la POO es conseguir una mejor catalogación del código, en base a estructuras jerárquicas dependientes, al estilo de un árbol genealógico.
Todos los elementos que forman parte de un objeto componen la clase del objeto. Una clase consiste en el conjunto de especificaciones que permiten crear los objetos.
Las motivaciones que han llevado al desarrollo de la POO son facilitar una mejor organización y clasificación del código, que la proporcionada por la programación procedural tradicional.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
Objetos
Un objeto es una agrupación de código, compuesta de propiedades y métodos, que pueden ser manipulados como una entidad independiente.
Las propiedades definen los datos o información del objeto, permitiendo consultar o modificar su estado; mientras que los métodos son las rutinas que definen su comportamiento.
Un objeto es una pieza que se ocupa de desempeñar un trabajo concreto dentro de una estructura organizativa de nivel superior, formada por múltiples objetos, cada uno de los cuales ejerce la tarea particular para la que ha sido diseñado.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
Clases
Una clase no es otra cosa que el conjunto de especificaciones o normas que definen cómo va a ser creado un objeto de un tipo determinado; algo parecido a un manual de instrucciones conteniendo las indicaciones para crear el objeto.
Los términos objeto y clase son utilizados en OOP con gran demanda y en contextos muy similares, por lo que para intentar aclarar en lo posible ambos conceptos, diremos que una clase constituye la representación abstracta de algo, mientras que un objeto constituye la representación concreta de lo que una clase define.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
…Clases
La clase determina el conjunto de puntos clave que ha de cumplir un objeto para ser considerado perteneciente a dicha clase, ya que no es obligatorio que dos objetos creados a partir de la misma clase sean exactamente iguales, basta con que cumplan las especificaciones clave de la clase.
Ejemplo: un molde para crear figuras de cerámica y las figuras obtenidas a partir del molde.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
…Clases
En este caso, el molde representaría la clase Figura, y cada una de las figuras creadas a partir del molde, sería un objeto Figura.
Cada objeto Figura tendrá una serie de propiedades comunes: tamaño y peso iguales; y otras propiedades particulares: un color distinto para cada figura.
Aunque objetos distintos de una misma clase pueden tener ciertas propiedades diferentes, deben tener el mismo comportamiento o métodos.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
…Clases
Para explicar mejor esta circunstancia, tomemos el ejemplo de la clase Coche; podemos crear dos coches con diferentes características (color, tamaño, potencia, etc.), pero cuando aplicamos sobre ellos los métodos Arrancar, Acelerar o Frenar, ambos se comportan o responden de la misma manera.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
Instancias de una clase
El proceso por el cuál se obtiene un objeto a partir de las especificaciones de una clase se conoce como instanciación de objetos.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
Analogía – POO (Galletas)Clase Molde ó Cortador de Galleta
Instanciando Haciendo una galleta utilizando el Cortador de Galletas.
Instancia Una galleta nueva hecha
Las Propiedades de la Instancia pueden tener valores distintos
Propiedad Dietética Puede ser Verdadero ó Falso
Propiedad Sabor Puede ser Chocolate ó Limón
Métodos Comer, Cortar, Desmenuzar
Eventos Desmenuzando la Galleta uno mismo.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicios en Clase
Desarrollar la analogía de POO con Autos.Desarrollar la analogía de POO con Computadoras.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CREANDO CLASES
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CREANDO CLASES
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CÓDIGO DE CLASE Y CÓDIGO CLIENTE
Debemos explicar dos conceptos referentes a la escritura de código orientado a objeto, ya que en función del lugar desde el que sea manipulado, debemos distinguir entre código de clase y código cliente.
Código de clase. Se trata del código que escribimos para crear nuestra clase, y que se encuentra entre las palabras clave Class...End Class.
Código cliente. Se trata del código que hace uso de la clase mediante la acción de crear o instanciar objetos a partir de la misma. Aquí se englobaría todo el código que se encuentrafuera de la clase.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CÓDIGO DE CLASE Y CÓDIGO CLIENTE
Código Clase
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CÓDIGO DE CLASE Y CÓDIGO CLIENTE
Código Cliente
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CÓDIGO DE CLASE Y CÓDIGO CLIENTE
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – INSTANCIACIÓN DE OBJECTOS
El proceso de instanciación consiste en crear un objeto apartir de las especificaciones de la clase.
El modo más común de trabajar con una instancia de una clase, o lo que es lo mismo, con un objeto, pasa por asignar dicho objeto a una variable.
Instanciaremos un objeto en el código utilizando la sintaxis de declaración de variables junto a la palabra clave New, empleando como tipo de dato el nombre de la clase.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – INSTANCIACIÓN DE OBJECTOS
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – MIEMBROS DE UNA CLASE
Los elementos de una clase que contienen sus datos y definen su comportamiento, es decir, laspropiedades y métodos, reciben además el nombre de miembros de la clase.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – DEFINIR LA INFORMACIÓN DE LA CLASE
Existen dos formas de almacenar los datos o información en una clase: a través de campos de clase y de propiedades.
Desde la perspectiva del programador que hace uso de una clase para crear objetos, la diferencia entre un campo o una propiedad resulta imperceptible; sin embargo, desde el punto de vista del programador de la clase existen claras diferencias, concernientes fundamentalmente, a preservar la encapsulacióndel código de la clase.
El uso de campos o propiedades para una clase es una cuestión de diseño, no pudiendo afirmar categóricamente que un tipo de almacenamiento de datos sea mejor que otro.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CREACIÓN DE CAMPOS PARA LA CLASE
Un campo de una clase no es otra cosa que una variable, generalmente con ámbito público, accesible desde el exterior de la clase.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – UTILIZANDO CAMPOS DE CLASE
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CREACIÓN DE PROPIEDADES A UNA CLASE
Una propiedad en la clase se define, por norma general, mediante dos elementos: una variable de propiedad y un procedimiento de propiedad.
La variable de propiedad, tal y como su nombre indica, es una variable con ámbito privado a nivel de la clase, que se encarga de guardar el valor de la propiedad. Por su parte el procedimiento de propiedad o Property, es el encargado de actuar de puente entre el código cliente y la variable de propiedad, realizando las operaciones de acceso y asignación de valores a dicha variable.
Por lo tanto, para crear una propiedad en nuestra clase, declararemos en primer lugar una variable Private, y en segundo lugar un procedimiento de tipo Property, que consta de dos bloques: Get, paradevolver el valor de la variable de propiedad; y Set, para asignárselo.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CREACIÓN DE PROPIEDADES A UNA CLASE
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – UTILIZANDO PROPIEDADES A UNA CLASE
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – VENTAJAS DE UTILIZAR UN CAMPO Ó PROPIEDAD
La ventaja de utilizar propiedades sobre campos es en definitiva mucho más eficiente. Debido que si deseamos realizar operaciones complejas que van mucho mas alla de asignar datos, estamos en la obligación de utilizar propiedades.
Ejemplo:Se desea establecer categorias de sueldos, definiendo lo siguiente:
Categoria Rango de Sueldo
1 500 – 7502 Mayor a 750
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – DESARROLLANDO CON CAMPOS
NO SE PUEDE VALIDAR
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO DESARROLLANDO CON
PROPIEDADES
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – DESARROLLANDO CON CAMPOS
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – PROPIEDADES DE SÓLO LECTURA Ó SÓLO ESCRITURA
Estas propiedades, nos permiten la creación de las denominadas propiedades de sólo lectura o sólo escritura, en las que utilizando las palabras clave ReadOnly y WriteOnly,conseguimos que a una determinada propiedad, sólo podamos asignarle o recuperar su valor.
Debido a esto, en una propiedad ReadOnly no podremos escribir el bloque Set, ya que no tendría sentido, puesto que no se va a utilizar. Lo mismo podemos aplicar para una propiedad WriteOnly, sólo que en esta, el bloque que no podremos codificar será Get.
Igualmente obtendremos un error del compilador, si en el código cliente intentamos asignar un valor a una propiedad ReadOnly, u obtener un valor de una propiedad WriteOnly.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – PROPIEDADES DE SÓLO LECTURA Y ESCRITURA
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – PROPIEDADES DE SÓLO LECTURA Y ESCRITURA - MANEJO
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – PROPIEDAD VIRTUAL
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – PROPIEDAD VIRTUAL -UTILIZACIÓN
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – PROPIEDAD POR DEFECTO
POO – PROPIEDAD POR DEFECTO
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – METODOS EN UNA CLASE
Lo métodos en una clase, nos permiten realizar una serie de paso ordenados logicamente logrando realizar alguna tarea en específico.
Dentro de la definición de la clase, el Visual Basic .Net considera como métodos a los siguientes bloques de código:
•Bloque Sub... End Sub•Bloque Function.. End Function
Los bloques Sub, nos permiten realizar tareas, pero no devuelven un valor como resultado al bloque que lo referencio. Estos bloques de código reciben parametros.
Los Bloques Function, nos permiten realizar tareas, devolviendo como resultado final una tipo de dato. Estos bloques de código reciben parametros.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – METODOS EN UNA CLASE
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – METODOS EN UNA CLASE
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – METODOS EN UNA CLASE
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – METODOS EN UNA CLASE
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – OVERLOADING \OVERRIDING
Las propiedades y Métodos Overloading y Overriding, son parte de las nuevas características del Visual Basic .Net. A continuación se definen cada uno de ellos:
OverloadingSe refiere a tener varios metodos, constructos ópropiedades, que tienen el mismo nombre; pero distintas listas de parametros.
OverridingSe puede implementar un nuevo método en una nueva clase a partir de un método y clase existente.
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – OVERLOADINGCreando la Clase
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – OVERLOADINGCreando la Aplicación
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – OVERLOADINGCreando la Aplicación
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – OVERLOADINGNo Aplica...
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – OVERRIDABLECreando la Clase
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – OVERLOADINGCreando la Aplicación
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – METODO CONSTRUCTOR (NEW() )
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – METODO CONSTRUCTOR (NEW() )
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – MODIFICANDO METODO CONSTRUCTOR (NEW() )
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – MODIFICANDO METODO CONSTRUCTOR (NEW() )
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – METODO DESTRUCTOR – GARBAGE COLLECTION
Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net
POO – CLASES – METODO DESTRUCTOR – GARBAGE COLLECTION
Visual Basic .Net