less vbnet sem05visual.net

61
Programación Orientada a Objetos Visual Basic .Net Ing. Enrique Alejandro Barboza Vilca

Upload: lesly-rosadio-garcia

Post on 27-Dec-2015

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Less Vbnet Sem05visual.net

Programación Orientada a

Objetos

Visual Basic .NetIng. Enrique Alejandro Barboza Vilca

Page 2: Less Vbnet Sem05visual.net

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.

Page 3: Less Vbnet Sem05visual.net

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.

Page 4: Less Vbnet Sem05visual.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.

Page 5: Less Vbnet Sem05visual.net

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.

Page 6: Less Vbnet Sem05visual.net

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.

Page 7: Less Vbnet Sem05visual.net

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.

Page 8: Less Vbnet Sem05visual.net

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.

Page 9: Less Vbnet Sem05visual.net

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.

Page 10: Less Vbnet Sem05visual.net

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.

Page 11: Less Vbnet Sem05visual.net

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.

Page 12: Less Vbnet Sem05visual.net

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

Page 13: Less Vbnet Sem05visual.net

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

Page 14: Less Vbnet Sem05visual.net

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.

Page 15: Less Vbnet Sem05visual.net

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.

Page 16: Less Vbnet Sem05visual.net

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.

Page 17: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CREANDO CLASES

Page 18: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CREANDO CLASES

Page 19: Less Vbnet Sem05visual.net

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.

Page 20: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CÓDIGO DE CLASE Y CÓDIGO CLIENTE

Código Clase

Page 21: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CÓDIGO DE CLASE Y CÓDIGO CLIENTE

Código Cliente

Page 22: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CÓDIGO DE CLASE Y CÓDIGO CLIENTE

Page 23: Less Vbnet Sem05visual.net

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.

Page 24: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – INSTANCIACIÓN DE OBJECTOS

Page 25: Less Vbnet Sem05visual.net

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.

Page 26: Less Vbnet Sem05visual.net

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.

Page 27: Less Vbnet Sem05visual.net

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.

Page 28: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – UTILIZANDO CAMPOS DE CLASE

Page 29: Less Vbnet Sem05visual.net

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.

Page 30: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CREACIÓN DE PROPIEDADES A UNA CLASE

Page 31: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – UTILIZANDO PROPIEDADES A UNA CLASE

Page 32: Less Vbnet Sem05visual.net

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

Page 33: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – DESARROLLANDO CON CAMPOS

NO SE PUEDE VALIDAR

Page 34: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO DESARROLLANDO CON

PROPIEDADES

Page 35: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – DESARROLLANDO CON CAMPOS

Page 36: Less Vbnet Sem05visual.net

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.

Page 37: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – PROPIEDADES DE SÓLO LECTURA Y ESCRITURA

Page 38: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – PROPIEDADES DE SÓLO LECTURA Y ESCRITURA - MANEJO

Page 39: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – PROPIEDAD VIRTUAL

Page 40: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – PROPIEDAD VIRTUAL -UTILIZACIÓN

Page 41: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – PROPIEDAD POR DEFECTO

Page 42: Less Vbnet Sem05visual.net

POO – PROPIEDAD POR DEFECTO

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

Page 43: Less Vbnet Sem05visual.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.

Page 44: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – METODOS EN UNA CLASE

Page 45: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – METODOS EN UNA CLASE

Page 46: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – METODOS EN UNA CLASE

Page 47: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – METODOS EN UNA CLASE

Page 48: Less Vbnet Sem05visual.net

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.

Page 49: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – OVERLOADINGCreando la Clase

Page 50: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – OVERLOADINGCreando la Aplicación

Page 51: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – OVERLOADINGCreando la Aplicación

Page 52: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – OVERLOADINGNo Aplica...

Page 53: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – OVERRIDABLECreando la Clase

Page 54: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – OVERLOADINGCreando la Aplicación

Page 55: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – METODO CONSTRUCTOR (NEW() )

Page 56: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – METODO CONSTRUCTOR (NEW() )

Page 57: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – MODIFICANDO METODO CONSTRUCTOR (NEW() )

Page 58: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – MODIFICANDO METODO CONSTRUCTOR (NEW() )

Page 59: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – METODO DESTRUCTOR – GARBAGE COLLECTION

Page 60: Less Vbnet Sem05visual.net

Ing. Enrique Alejandro Barboza VilcaVisual Basic .Net

POO – CLASES – METODO DESTRUCTOR – GARBAGE COLLECTION

Page 61: Less Vbnet Sem05visual.net

Visual Basic .Net