Visual Basic.Net
UNIVERSIDAD TÉCNICA DE MANABÍ FACULTAD DE CIENCIAS INFORMÁTICAS I NFORMÁTICAS PROYECTO DE INVESTIGACIÓN
TEMA:
“Creación de Base de Datos en Visual Basic.Net” Portoviejo-Manabí-Ecuador Año 2009
1
Visual Basic.Net
INDICE DE CONTENIDOS
Introducción 1. El probl oblema ema 1.1 Contextualizació Contextualización n 1.2 Objetivos: Objetivos: General y Específic Específicos os 2. Marc Marco o Teóri eórico co 2.1 Marco Teórico Teórico y Referenci Referencial al Los fundamentos de la programación orientada a objeto Objetos Clases Instancias de una clase Características básicas de un sistema orientado a objeto Abstracción Encapsulación Polimorfismo Herencia Jerarquías de clases Relaciones entre objetos Herencia Pertenencia Utilización Reutilización Análisis y diseño orientado a objetos Creación de clases Organización de clases en uno o varios ficheros de código Código de clase y código cliente Reglas de ámbito generales para clases Instanciación de objetos
2
Visual Basic.Net
Miembros de la clase Definir la información de la clase Creación de campos para la clase Creación de propiedades para la clase Ventajas en el uso de propiedades Encapsulación a través de propiedades Propiedades de sólo lectura o sólo escritura Creación de métodos para la clase ¿Cuándo crear una propiedad y cuándo un método? Uso de me y myclass para llamar a los miembros de la propia clase Métodos constructores Herencia Todas las clases necesitan una clase base Reglas de ámbito específicas para clases Protected Friend Protected friend
3. Metodol dologí ogía 3.1 Métodos, Técnicas e Instrumentos 3.2 Procedimientos 4. Bibli ibliog ogra rafí fíaa 5. Anexos
3
Visual Basic.Net
INTRODUCCIÓN Esta Esta invest investiga igació ción n ha sido sido reali realizad zadaa para para desar desarrol rolla larr y expand expandir ir nuestros conocimientos adquiridos durante nuestro aprendizaje sobre Visual Basic.net.
Sabe Sabemo moss que el presen presente te y futuro futuro gira gira en torno torno a la tecno tecnolog logía, ía, enfocándonos en la informática y propiamente en la programación que cada día va cumpliendo un rol mas importante ya que al tener un conocimiento de un lenguaje de programación en este caso Visual Basi asic.net net,
que que
en
base base al
análisis sis
dond dondee
orga organ nizamos amos los
requerimientos que han sido obtenidos, nos da la facilidad de diseñar y desarrol desarrollar lar e integra integrarr sistem sistemas as que satisfa satisfagan gan las necesida necesidades des del mundo actual ya que un sistema puede llegar a ser un servicio, un p pro rodu duct cto, o, una una tecn tecnol olog ogía ía que que perm permit itaa proc proces esar ar y apli aplica carr la información para nuestro beneficio.
La inves investi tiga gació ción n que desar desarrol rolla lamo moss se basa basa en la progra programa maci ción ón orientada orientada a objetos, específicament específicamentee en el desarrollo de bases de datos por medio de clases en Visual Basic.Net, Basic.Net, combinando combinando dos gestores de bases de datos como son Microsoft Office Access y Microsoft SQL Server donde se explicaran conceptos y varios conocimientos para entender y poder desarrollar una aplicación.
4
Visual Basic.Net
1. EL PR PROBLEMA CONTEXTUALIZACIÓN 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 p per erm mite ite agru agrupa parr elem elemen ento toss de códi código go (rut (rutin inas as y dato datos) s) con con funcionalidades funcionalidades similares, bajo un sistema unificado de manipulación manipulación y acceso a dichos elementos.
En
la
programación
estructurada
procedural,
basada
en
procedimientos y funciones, el crecimiento de una aplicación hace que el mantenimiento de la misma se convierta en una tarea difícil, debido al gran gran número número de procedim procedimient ientos os interre interrelaci lacionad onados os que podemos podemos llegar a tener. El mero 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, no relacionadas por un nexo común. Se considera considera un lenguaje lenguaje orientado objetos objetos si soporta las las siguientes siguientes tres Encapsulación, Herencia y Polimorfismo.
La programación orientada a objetos es un excelente ejemplo de un mejor mejoram amie iento nto creci crecient ente. e.
Loss objet Lo objetos os son piezas piezas modul modulare aress con
interfaces bien definidas que explican el uso bien apropiado de los objetos. Los objetos objetos emplean la encapsulación encapsulación para prevenir prevenir accesos impropios impropios a la estructura interna interna de un objeto. Losa objetos objetos soportan herencia para perfeccionar el código reutilizado y diseño lógico.
5
Visual Basic.Net
OBJETIVOS OBJETIVO GENERAL Investigar lo relacionado a la creación de Bases de Datos en
Visual Basic.Net
OBJETIVOS ESPECÍFICOS a. Conocer Conocer los los concepto conceptoss básicos básicos que refie refieren ren a la creaci creación ón de Base de Datos en Visual Basic.Net.
b. Investi Investigar gar los concep conceptos tos princip principales ales sobre sobre la creaci creación ón de Base de Datos en Visual Basic.Net
c. Realiz Realizar ar una aplicaci aplicación ón que permita permita demostr demostrar ar los conocim conocimient ientos os aprendidos mediante la investigación de la creación de Base de Datos en Visual Basic.Net
6
Visual Basic.Net
II.
MARCO TEÓRICO
MARCO REFERENCIAL Visual Basic .NET, es una de las herramientas estrella para el desarrol desarrollo lo sobre sobre esta esta nueva nueva platafo plataforma rma de trabajo trabajo,, estamos estamos asistiendo a una evolución/revolución sin precedentes en el mund mundo o de la info inform rmát átic ica, a, que que sitú sitúaa a este este clás clásic ico o de la programación en una posición difícil de igualar y menos aún de superar.
Visual Basic .NET, como cada nueva versión de las que han aparecido en el mercado de este producto, incorpora, como es natur natural al,, un buen buen conjun conjunto to de nov noveda edade des. s. Sin Sin embar embargo, go, la incl inclusi usión ón de Visua Visuall Basic Basic en el entor entorno no de .NET .NET,, añade añade tam también bién un comp compen endi dio o de drás drásti tico coss cam cambios bios para para los los prog program ramado adores res de versi versione oness anter anterior iores, es, deriv derivado adoss en su conjunto, de la necesidad de afrontar con garantías de éxito el desa desarr rrol ollo lo de la nuev nuevaa gene genera raci ción ón de apli aplica caci cion ones es para para Interne Internet, t, objetivo objetivo persegui perseguido do por todas todas las herrami herramienta entass de desa desarr rrol ollo lo actu actual ales es.. Tale Taless camb cambio ios, s, como como deci decimo mos, s, son son necesarios para la plena integración de Visual Basic con el resto de lenguajes del entorno de .NET; un alto porcentaje, suponen la mejora sobre ciertas características del lenguaje y la elim elimina inaci ción ón de aspec aspectos tos obsol obsoleto etos, s, arrast arrastra rados dos por una compatibilidad, que en ocasiones como la actual, es necesario deja dejarr atrá atrás; s; en otro otross caso casos, s, se trat trataa de adap adapta tarr nues nuestr tras as costumbres a nuevos modos y hábitos de programar.
Visual Basic .NET es un lenguaje de programación orientado a objetos que se puede considerar una evolución de Visual Basic implem implementa entada da sobre sobre el fra framew mework ork .NE .NET T. Su introdu introducci cción ón
7
Visual Basic.Net
resu result ltó ó muy muy cont contro rove vert rtid ida, a, ya que que debi debido do a camb cambio ioss significativos en el lenguaje VB.NET no es compatible hacia atrás con Visual Basic, cosa que causó gran división en la comunidad de desarrolladores de Visual Basic.
La gran mayoría de programadores de VB.NET utilizan el entorno entorno de program programació ación n Mic Microso rosoft ft Vis Visual ual Stud Studio io .Ne .Nett en alguna alguna de sus versione versiones, s, aunque aunque existen existen otras otras alterna alternativa tivas, s, como SharpDevelop (Es (Es un ento entorn rno o de prog progra rama maci ción ón integrado que permite programar en C# y en VB.NET. Es libre y se puede disponer del código fuente).
Visua Visuall Studi Studio o .NET .NET se pub publi licó có en 200 2002 2 y fue la prime primera ra versión de Visual Studio en introducir el framework .NET. Esta sta vers versió ión n de Visua isuall Studi tudio o intr introd oduj ujo, o, junt junto o con con el Framework .NET tres nuevos lenguajes de programación, C#, VB.NET y Visual J#.
8
Visual Basic.Net
MARCO TEÓRICO LOS
FUNDAMENTOS
DE
LA
PROGRAMACIÓN
ORIENTADA A OBJETO La organi organizac zació ión n de una apli aplicac cació ión n en OOP OOP se reali realiza za media mediant ntee 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 grupo de tarea tareass con un denom denomin inado adorr comú común. n. Una Una aplic aplicac ación ión orientada a objetos tendrá tantas estructuras de código como aspectos del programa sea necesario resolver.
Un procedimiento procedimiento que esté situado dentro de una de estructura estructura de este tipo, no podrá llamar ni ser llamado por otro procedimiento procedimiento situado en una estructura distinta, si no es bajo una serie de reglas. Lo mismo suceder sucederáá con los datos datos que contenga contenga la estructu estructura, ra, permanec permanecerán erán aislados del exterior, y sólo serán accesibles siguiendo ciertas normas.
Una Una estru estruct ctura ura de códig código, o, es lo que en OOP OOP ident identif ifica icamo moss como como objet objeto. o. Al ser las las estruc estructur turas as de códig código o u objet objetos, os, entida entidades des que contienen una información precisa y un comportamiento bien definido a través del conjunto de procedimientos que incluyen, pueden ser clasificados en función de las tareas que desempeñan. Precisamente, uno de los fines perseguidos por la OOP es conseguir una mejor cata catalo loga gaci ción ón
del del
códi código go,,
en
base base
a
estr estruc uctu tura rass
jerá jerárq rqui uica cass
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.
9
Visual Basic.Net
Las motivaciones que han llevado al desarrollo de la OOP son facilitar una una mejor ejor orga organi niza zaci ción ón y clas clasif ific icac ació ión n pro propo porc rcio iona nada da
por por
la
prog progra ram mació ación n
del del códi código go,, proc proced edur ural al
que que la
trad tradic icio iona nal; l;
aproximando al mismo tiempo, el modo de programar a la manera en que nuestra mente trabaja para aplicar soluciones a los problemas planteados.
OBJETOS Un objeto es una agrupación de código, compuesta de propiedades y métodos odos,,
que que
pue pueden den
ser ser
manip nipula ulados
como omo
una
entidad dad
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 objeto es una pieza pieza que que se ocupa ocupa de desem desempeñ peñar ar un trabaj trabajo o concr concreto eto dentro dentro de una estru estruct ctura ura organ organiza izati tiva va de nivel nivel super superior ior,, formada por múltiples objetos, cada uno de los cuales ejerce la tarea particular para la que ha sido diseñado.
CLASES Una clase no es otra cosa que el conjunto de especificaciones o norm normas as que que defi define nen n cómo cómo va a ser ser crea creado do un obje objeto to de un tipo tipo determinado; determinado; algo parecido a un manual de instrucciones conteniendo las indicaciones para crear el objeto.
Los
términos
objeto
y
clase
son
utilizados
en
Object-
Oriented Programming (OOP) con gran profusión y en contextos muy simi simila lare res, s, por por lo que que para para inte intent ntar ar acla aclara rarr en lo posi posibl blee ambo amboss conce concepto ptos, s, direm diremos os que una clase clase consti constitu tuye ye la repre represen sentac tació ión n
10
Visual Basic.Net
abstracta abstracta de algo, mientras que un objeto constituye constituye la representación representación concreta de lo que una clase define.
La clase determina el conjunto de puntos clave que ha de cumplir un objeto para ser considerado perteneciente perteneciente a dicha clase o categoría, categoría, ya que no es obligatorio que dos objetos creados a partir de la misma clas clasee sean sean exac exacta tam mente ente igua iguale les, s, bast bastaa con con que que cum cumplan plan las las especificaciones clave de la clase.
Expongamos ahora las anteriores definiciones mediante un ejemplo pre preci ciso so:: un mold moldee para para crea crearr figu figura rass de cerá cerámi mica ca y las las figu figura rass obtenidas a partir del molde. 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 prop propied iedade adess difer diferent entes, es, deben deben tene tenerr el mism mismo o comp comport ortam amien iento to o métodos. Para explicar mejor esta circunstancia, tomemos el ejemplo de la clas clasee Coche oche;; pode podemo moss crea crearr dos dos coch coches es con con dife difere rent ntes es características (color, tamaño, potencia, etc.), pero cuando aplicamos sobre sobre ello elloss los los méto métodos dos Arra Arranca ncar, r, Acel Acelera erarr o Frena Frenar, r, ambos ambos se comportan o responden de la misma manera.
INSTANCIAS DE UNA CLASE El proc roceso eso por el cua cual se obti btiene un obje bjeto a par partir de las espec especifi ifica caci cione oness de una clase clase se conoc conocee como como insta instanci nciac ación ión de objetos. En la vemos un molde para fabricar figuras rectangulares, donde la clase Figura estaría representada por el molde, y cada uno de
11
Visual Basic.Net
los objetos Figura (iguales en forma pero con la propiedad Color distinta), representaría una instancia de la clase.
Instancia de objetos a partir de una clase
CARACTERÍSTICAS
BÁSICAS
DE
UN
SISTEMA
ORIENTADO A OBJETO Para que un lenguaje o sistema sea considerado orientado a objeto, debe cumplir las características de los siguientes apartados.
POLIMORFISMO El polimorfismo determina que el mismo nombre de método, realizará diferentes diferentes acciones según el objeto sobre el que sea aplicado. aplicado. Al igual que sucedía en la encapsulación, el programador que haga uso del objeto, no necesita conocer los detalles de implementación de los métodos, se limita a utilizarlos.
Pasan asando do a un ejem ejempl plo o real real,, tom tomamos amos dos dos obje objeto tos: s: Pelo Pelota ta y VasoCristal; si ejecutamos sobre ambos el método Tirar, el resultado
12
Visual Basic.Net
en ambos casos será muy diferente; mientras que el objeto Pelota rebotará al llegar al suelo, el objeto VasoCristal se romperá.
En un ejem ejempl plo o apli aplica cado do a la prog progra rama maci ción ón,, supo supong ngam amos os que que disponemos de los objetos Ventana y Fichero; si ejecutamos sobre ambos el método Abrir, el resultado en Vent Ventana ana será será la visua visuali liza zació ción n de una venta ventana na en el monit monitor or del usuario; mientras que en el objeto Fichero, se tomará un fichero en el equipo del usuario y se dejará listo para realizar sobre él operaciones de lectura o escritura.
HERENCIA Se trata de la característica más importante de la OOP, y establece que partiendo de una clase a la que denominamos clase base, padre o superclase, superclase, creamos una nueva clase denominada denominada clase derivada, hija, o subclase. En esta clase derivada dispondremos de todo el código de la clas clasee base base,, más más el nuev nuevo o códi código go prop propio io de la clas clasee hija hija,, que que escribamos para extender sus funcionalidades. A su vez podemos tomar una clase derivada, creando una nueva subclase a partir de ella, y así sucesivamente, componiendo lo que se denomina una jerarquía de clases, que explicaremos seguidamente. Existen dos tipos de herencia: simple y múltiple. La herencia simple es aquella aquella en la que creamos creamos una clase clase derivada derivada a partir partir de una sola clase base, mientras que la herencia múltiple nos permite crear una clase derivada a partir de varias clases base. El entorno de .NET Framework sólo permite utilizar herencia simple.
Como ejemplo real de herencia, podemos usar la clase Coche como clase base; en ella reconocemos una serie de propiedades como Motor, Ruedas, Ruedas, Volante, Volante, etc., etc., y unos métodos como como Arranca Arrancar, r, Acelerar Acelerar,, Frenar, etc. Como clase derivada creamos CocheDeportivo, en la cual,
13
Visual Basic.Net
además de todas las características mencionadas para la clase Coche, encontramos propiedades y comportamiento específicos como ABS, Turbo, etc.
Un ejemplo basado en programación consistiría en disponer de la ya conocida clase Empleado. Esta clase se ocupa, como ya sabemos, de las operaciones de alta de empleados, pago de nóminas, etc.; pero en un momento dado, surge la necesidad de realizar pagos a empleados que que no trab trabaj ajan an en la cent centra rall de la empr empres esa, a, ya que que se trat trataa de comerciales comerciales que pasan la mayor parte del tiempo desplazándose. Para realizar dichos pagos usaremos Internet, necesitando el número de tarjeta de crédito y la dirección email del empleado. Resolveremos esta situación creando la clase derivada CiberEmpleado, que hereda de la clase Empleado, en la que sólo tendríamos que añadir las nuevas propiedades propiedades y métodos para las transacciones transacciones electrónicas, puesto que las operaci operaciones ones tradici tradicional onales es ya las tendríam tendríamos os disponib disponibles les por el mero hecho de haber heredado de Empleado, programa, sin necesidad de disponer aún de su implementación; nos basta con reconocer los aspectos conceptuales que cada objeto debe resolver.
JERARQUÍAS DE CLASES Como decíamos en un apartado anterior, uno de los fines de la OOP consiste en la clasificación clasificación del código; para ello se emplean jerarquías o árboles de clases, en los que a base de niveles, se muestra un conj conjun unto to de clas clases es cone conect ctad adas as por por una una rela relaci ción ón de here herenc ncia ia.. Observemos el esquema de la Figura, en el que se muestra un ejemplo de la jerarquía de clases de medios de transporte.
14
Visual Basic.Net
Jerarquía de clases de medios de transporte
En esta representación de ejemplo, como nivel superior de la jerarquía o clase base estaría Medios de transporte, de la que se derivarían las clases Barco, Tren, Automóvil, y a su vez, de estas últimas, partirían nuevas clases hijas.
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS Antes Antes de comenz comenzar ar la escrit escritur uraa del progra programa ma,, se hace hace neces necesari ario o real realiza izarr un análi análisis sis de los proble problema mass a resol resolver ver,, que nos permi permita ta identificar qué procesos debemos codificar. Si prete pretende ndemo moss ademá además, s, aborda abordarr la progra programa maci ción ón util utiliza izando ndo un enfoque orientado a objetos, debemos emplear técnicas adecuadas a este tipo de programación.
Cuand Cuando o se reali realiza za un análi análisis sis basad basado o en proced procedim imie iento ntos, s, de los problemas planteados, se identifican los verbos como elementos de los proces procesos os a traslad trasladar ar a procedim procedimient ientos os y funcione funciones. s. Sin embargo embargo,, cuando se trata de un análisis basado en objetos, se identifican en este
15
Visual Basic.Net
caso caso los los nombre nombress existe existent ntes es en los proces procesos, os, como como elem element entos os a trasladar a objetos.
Tomemos Tomemos el siguiente siguiente planteamiento: “Crear una aplicación en la que podamos realizar sobre una base de datos, las siguientes operaciones: añadir, borrar y modificar clientes. Por otro lado, será necesario crear facturas, grabando sus datos generales y calcular su importe total”. Analiz Analizando ando la exposici exposición ón del anterior anterior problem problema, a, si necesitá necesitáramo ramoss reso resolv lver erlo lo
medi median ante te
una una
apli aplica caci ción ón
con con
enfo enfoqu quee
proc proced edur ural al,,
separarí separaríamo amoss los verbos verbos para crear crear los siguient siguientes es procedim procedimien ientos: tos: AñadirCliente( AñadirCliente( ), BorrarCliente( BorrarCliente( ), ModificarClient ModificarCliente( e( ), GrabarFac( ), CalcularTotalFac( ). Si por el contrario efectuamos sobre la misma exposición, un análisis orientado a objetos, extraeríamos los siguientes nombres como los objetos a crear: Cliente, Factura.
Para Para el objet objeto o Clie Cliente nte,, defini definirí ríam amos os entre entre otras otras,, las las propie propieda dades des Nom Nombr bre, e,
Apel Apelli lido dos, s,
Dire Direcc cció ión, n,
DNI, NI,
etc; etc;
crea creand ndo o
para para
su
comportamiento, los métodos Añadir( ), Borrar( ), Modificar( ), etc. Para Para el objeto objeto Fact Factura ura,, defini definirí ríam amos os entre entre otras, otras, las las propie propiedad dades es Número, Fecha, Importe, etc; creando para su comportamiento, los métodos Grabar( ), CalcularTotal ( ), etc.
Una vez obtenido el correspondiente análisis, pasaremos a la siguiente fase del desarrollo, la escritura de las diferentes clases que van a componer nuestro programa, y que veremos a continuación.
CREACIÓN DE CLASES Desar Desarrol rolla larem remos os una clase clase que conte contenga nga todas todas las las opera operacio ciones nes a realizar por el empleado; en definitiva, crearemos la clase Empleado, cuyo proceso describiremos a continuación.
16
Visual Basic.Net
Podemos escribir una clase en VB.NET utilizando diferentes tipos de aplicac aplicación, ión, en este caso emplea emplearem remos os una aplicac aplicación ión de consola. consola. Iniciaremos en primer lugar VS.NET, creando un proyecto de tipo conso consola la.. A conti continua nuaci ción ón selec seleccio cionar narem emos os el menú menú Proye Proyecto cto + mostraráá la venta ventana na para para agrega agregarr nuevos nuevos Agregar Agregar clase clase, que nos mostrar elementos al proyecto. El nombre por defecto asignado por el IDE para la clase será Class1; cambiaremos dicho nombre por Empleado, y pulsaremos Abrir. Ver Figura.
Añadir una clase a un proyecto
Se
creará
de
esta
forma
un
nuevo
fichero
de
código
(EMPLEADO.VB), mostrándose el editor de código con su contenido. Observemos en este sentido, que la definición de una clase se realiza utilizando las palabras clave Class...End Class; entre estas palabras escribiremos el código de la clase.
Código fuente:
17
Visual Basic.Net
CÓDIGO DE CLASE Y CÓDIGO CLIENTE Antes de comenzar a realizar pruebas con las clases que vayamos escribiendo, 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 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 encuentra fuera de la clase.
REGLAS DE ÁMBITO GENERALES PARA CLASES Las normas de ámbito para variables y procedimientos procedimientos escritos dentro de una clase son las mismas que las ya explicadas en el tema sobre el lenguaje, pero debemos tener en cuenta que en el caso actual, el ámbito a nivel de módulo debe ser equiparado con el ámbito a nivel de clase.
Por ejemplo, cuando declaremos una variable dentro de las palabras clave Class...End Class...End Class, pero fuera de todo procedimiento procedimiento de la clase, dicha variable tendrá un ámbito a nivel de clase, siendo accesible por los procedimientos procedimientos de la clase o por todo el código, según la hayamos hayamos definido privada o pública.
18
Visual Basic.Net
INSTANCIACIÓN DE OBJETOS En este este mome momento nto,, nuestr nuestraa clase clase Emple Empleado ado cuenta cuenta con con el códig código o mínim mínimo o para para pod poder er ser ser util utiliz izada ada,, para para lo que debem debemos os instanciar objetos a partir de la misma. Como omo ya se expl explic icó ó en un apar aparta tado do ante anteri rior or,, el proc proces eso o de instanciación
consiste
en
crear
un
objeto
a
partir
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.
Inst Instanc anciar iarem emos os un objet objeto o en el código código util utiliza izando ndo la sintax sintaxis is de declaración de variables junto a la palabra clave New, empleando como tipo de dato el nombre de la clase. Todo este código lo podemos situar en un módulo dentro del proyecto, proyecto, bien en un fichero de código aparte o en el mismo fichero en donde estamos escribiendo la clase. El Código fuente fuente muestra las formas formas disponibles disponibles de instanciar un objeto y asignarlo a una variable.
Código Fuente:
19
Visual Basic.Net
Si bien es cierto que ya es posible crear objetos a partir de nuestra clase, no lo es menos el hecho de que no podemos hacer grandes cosas con ellos, puesto que la clase se encuentra vacía de código.
Debem Debemos os añadi añadirr propi propieda edades des y métod métodos os para para conse consegui guirr que los los objetos actúen en nuestra aplicación.
PROPIEDADES DE SÓLO LECTURA O SÓLO ESCRITURA Se nos plantea ahora un nuevo caso para nuestra clase Empleado: debemos guardar el valor del código de cuenta bancaria del empleado en el objeto, pero sin permitir que dicha información sea accesible desde el código cliente. Igualmente Igualmente y en función de los primeros dígitos dígitos de la cuenta bancaria, necesitamos mostrar el nombre de la entidad, pero sin permitir al código cliente su modificación, ya que esta va a ser siempre una operación que debe calcular el código de la clase. Utilizando campos de clase no es posible resolver esta situación, ya que al ser de ámbito público, permiten tanto la escritura como lectura de sus valores.
Pero si empleamos propiedades, estas 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.
20
Visual Basic.Net
Igualme Igualmente nte obtendre obtendremos mos un error error del compilador compilador,, si en el código código cliente cliente intentamo intentamoss asignar asignar un valor valor a una propiedad propiedad ReadOnl ReadOnly, y, u obtener un valor de una propiedad WriteOnly. Veamos a continuación, en el Código fuente, un ejemplo de cómo resolver el problemacomentado al comienzo de este apartado.
Código Fuente:
21
Visual Basic.Net
CREACIÓN DE MÉTODOS PARA LA CLASE Para crear un método en una clase debemos escribir un procedimiento procedimiento de tipo Sub o Function, en función de si necesitamos devolver o no,
22
Visual Basic.Net
un valor desde el método. Por este motivo, podemos deducir que un método es lo mismo que un procedimiento, siendo las diferencias existentes existentes entre ambos tan sólo a nivel conceptual: conceptual: mientras que a una rutina de código dentro de un módulo se le denomina procedimiento, si la escribimos dentro de una clase se le denomina método.
Loss métod Lo métodos, os, tal tal y como como expli explica camo moss en los los prim primer eros os apart apartado adoss teóricos teóricos sobre OOP de este tema, son aquellos miembros de una clase que definen el comportamiento de los objetos, como consecuencia de las las acci accion ones es que que llev llevan an a cabo cabo al ser ser ejec ejecut utad ados os.. Veam eamos a continuación, un ejemplo concreto de creación de método.
En la clase Empleado necesitamos realizar un cálculo del día en que va a final finaliza izarr un empl emplead eado o sus vacac vacacio iones nes;; para para ello ello preci precisam samos os conocer la fecha de comienzo y la cantidad de días que va a estar de vacaciones, vacaciones, por lo que escribiremos escribiremos un método en nuestra clase al que llamaremos CalcularVacaciones( ); a este método le pasaremos los parámetros de la fecha de inicio y el número de días, devolviendo, al ser de tipo Function, la fecha de finalización del periodo vacacional.
Código Fuente:
23
Visual Basic.Net
Llegados Llegados a este punto, hemos completado todos los pasos elementales elementales en cuanto a la creación de una clase. Retomemos pues, el caso del ejemplo ejemplo expuesto al comienzo comienzo del tema, de manera que si sustituimos sustituimos
24
Visual Basic.Net
el enfoque procedural de los procesos del empleado, por uno orientado a objeto, la clase Empleado resultante podría ser algo similar a la mostrada en el Código fuente.
25
Visual Basic.Net
Códigofuente:
26
Visual Basic.Net
27
Visual Basic.Net
Gracias a que la codificación codificación de todos los procesos reside ahora en la clase, el código cliente que tenga que tratar ahora con el empleado, quedaría simplificado y reducido a lo que se muestra en el Código fuente.
28
Visual Basic.Net
Código Fuente:
Una vez codificada la clase, tan sólo hemos de hacer uso de ella instanciando el correspondiente objeto; con la ventaja añadida de que podemos tener varios objetos de la misma clase funcionando al mismo tiempo.
¿CUÁN CUÁND DO CREAR REAR UNA UNA PROPI ROPIED EDAD AD Y CUÁ CUÁNDO NDO UN MÉTODO? Debido a que una propiedad, a través de su procedimiento Property asoc asocia iado do,, pued puedee ejec ejecut utar ar códi código go,, la deci decisi sión ón de escr escrib ibir ir cier cierta ta operación en una clase empleando una propiedad o un método, es en algunas ocasiones difícil, ya que existen procesos que pueden ser resueltos utilizando ambos modos.
Sin ir más lejos, el método CalcularVacaci CalcularVacaciones( ones( ), visto en el ejemplo del apartado anterior, bien podría haberse resuelto a través de una propiedad, propiedad, como muestra el Código fuente. En él hemos incluido sólo las las parte partess modif modific icada adass de la clase clase Emple Emplead ado o para para soluc solucio ionar nar este este problema.
29
Visual Basic.Net
Código Fuente:
30
Visual Basic.Net
31
Visual Basic.Net
Queda por lo tanto, en manos del programador, determinar el criterio por el cual un proceso se resolverá mediante una propiedad o un método, debiendo ser una decisión flexible y no basarse en unas normas rígidas.
USO DE ME Y MYCLASS PARA LLAMAR A LOS MIEMBROS DE LA PROPIA CLASE Cuando desde el código de una clase queramos hacer referencia a un miembro de la propia clase: campo, propiedad o método, podemos util utiliz izar ar las las palabr palabras as clave clave Me y My MyCl Class ass para para manip manipula ularr dicho dicho elemento. Veamos el Código fuente. Código Fuente:
32
Visual Basic.Net
Como acabamos de ver, desde el código de la propia clase Empleado llamamos a una variable y a un método situados también en la clase, anteponiendo la palabra clave Me y MyClass respectivamente. Aunque el uso de estas palabras clave no es obligatorio, ya que el comp compil ilad ador or reco recono noce ce el miem miembr bro o que que quer querem emos os ejec ejecut utar ar,, sí es recomendable ya que facilita la lectura de nuestro código.
MÉTODOS CONSTRUCTORES El primer método que es ejecutado al instanciar un objeto de la clase se denomina constructor. Este tipo de método resulta útil para tareas de configuración iniciales sobre el objeto.
33
Visual Basic.Net
No es necesario escribir un método constructor en la clase, ya que en el caso caso de que que no exis exista ta,, el comp compil ilad ador or se enca encarg rgaa de crea crearl rlo o implícitamente.
Para escribir nuestros propios constructores de clase, crearemos un método con el nombre New (), como vemos en el Código fuente. En dicho ejemplo, al instanciarse un objeto de la clase Empleado, se asignará a una de sus propiedades la fecha actual.
Código Fuente:
Al igual que ocurre en un método normal, New( ) admite parámetros; esto nos sirve para asignar valores de inicio al objeto en el momento de su instanciación. La denominación para este tipo de métodos es constructor parametrizado . Código Fuente:
34
Visual Basic.Net
Combinando las características de métodos constructores junto a las de
sobre obreca carg rga, a,
pode podem mos
crea crearr
u
conj conjun unto to
sobrecargados para la clase. Ver el Código fuente.
Código Fuente:
35
de cons constr truc ucto tore ress
Visual Basic.Net
HERENCIA Este es uno de los aspectos más importantes, sino el más importante, en un lenguaje orientado a objetos. VB.NET es la primera versión de este lenguaje que incorpora herencia, una característica demandada por un amplio colectivo de los programadores de esta herramienta; y es que, a pesar de haber sido incorporados progresivamente aspectos de orientación a objetos al lenguaje, este era el elemento fundamental que faltaba para ser plenamente OOP.
Empleando la herencia podemos crear una clase base o padre, con especifi especificac cacione ioness general generales, es, y a partir partir de ella, ella, crear crear nuevas nuevas clases clases derivadas o hijas. En el momento de declarar una clase derivada, y sin haber escrito más código, ya tenemos acceso a todos los miembros de la clase base; post poster erior iorme mente nte,, pod podem emos os escri escribi birr código código adici adicion onal al en la clase clase derivada para ampliar sus funcionalidades. Una clase hija puede servir a su vez como clase base para la creación de otra otra clase clase deriva derivada, da, y así suces sucesiva ivame mente nte,, con con lo que pod podem emos os componer nuestra propia jerarquía con la estructura de clases que necesitemos. Para crear una clase derivada, debemos declarar una nueva clase, especificando especificando cuál es su clase base mediante mediante la palabra clave Inherits. En el Código fuente se muestran los dos modos disponibles de crear una clase heredada.
Código Fuente:
36
Visual Basic.Net
Una Una vez vez que que cree creemo moss la clas clasee deri deriva vada da,, tend tendre remo moss a nues nuestr traa disposición disposición todos los elementos de la clase base, tanto desde la propia clase, como desde el código cliente. Por ejemplo, supongamos que se nos plantea la necesidad de crear un tipo de empleado, con características más especializadas de las que ahora tiene nuestra clase Empleado. Podemos optar por modificar toda la imple impleme menta ntaci ción ón ya existe existent ntee para para la clase clase Empl Emplead eado, o, lo que afectaría afectaría al código cliente que ya utiliza dicha clase, y seguramente de forma negativa; negativa; o bien, podemos crear una nueva clase, que herede de Empleado, y en la que definiríamos el comportamiento de este nuevo tipo tipo de empl emplea eado do.. A esta esta nuev nuevaa clas clasee le dare daremo moss el nomb nombre re Administrativo, y su código podemos verlo en el Código Fuente:
Observemos en el único método de esta clase, que estamos haciendo refer referenc encia ia a las propie propiedad dades es Nomb Nombre re y Apel Apelli lidos dos;; al hered heredar ar de Empleado, no ha sido necesario crear de nuevo dichas propiedades, estamos reutilizando las existentes en la clase base.
De igual modo sucede al instanciar instanciar un objeto de la clase, como vemos en el Código Código fuent fuente, e, hemos hemos creado creado un objet objeto o Admi Adminis nistra trativ tivo, o, y estamos haciendo uso tanto del nuevo método que tiene dicho objeto, como de todos los pertenecientes a su clase padre.
Código Fuente:
37
Visual Basic.Net
TODAS LAS CLASES NECESITAN UNA CLASE BASE El diseño del CLR dicta como norma que toda clase creada necesita heredar de una clase base. Esto puede resultar un tanto confuso al principio, ya que en los ejemplos con la clase Empleado, no hemos heredado, al menos aparentemente, de ninguna clase. Cuando creamos una nueva clase, si en ella no establecemos una relación explícita de herencia con otra clase, el CLR internamente la creará haciendo que herede de la clase Object, que se encuentra en el espacio de nombres System. Esto es debido a que el tipo de herencia en .NET Framework es simple, y en la jerarquía de clases de la plataforma, Object es la clase base, a partir de la cual, se deriva el resto de clases.
Por este motivo, motivo, las declarac declaracione ioness mostrad mostradas as en el Código Código fuente fuente serían equivalentes.
Código Fuente:
REGLAS DE ÁMBITO ESPECÍFICAS PARA CLASES
38
Visual Basic.Net
Las normas de ámbito ámbito que ya conocem conocemos, os, establec establecen en que cuando cuando declaramos un miembro de clase con el modificador de ámbito Public, dicho elemento será accesible por todo el código de la clase, clases heredadas heredadas y código cliente; mientras que si lo declaramos con Private, ese miembro sólo será accesible por el código de la propia clase. Veamos el Código fuente.
Código Fuente:
En la anter anterior ior fuent fuente, e, la variab variable le msNo msNomb mbre re de la clase clase Usuar Usuario io,, declarada privada a nivel de clase, sólo es manipulada por los métodos de la propia clase. Por otro lado, el método AsignarNombre( ), al decla declara rarse rse púb públi lico, co, es utili utiliza zado do desde desde clase clasess hered heredade adess y código código cliente.
39
Visual Basic.Net
Adem demás de esta estass norm normas as,, ya cono conoci cida das, s, disp dispon onem emos os de los los modificadores descritos en los siguientes apartados, diseñados para resolver problemas concretos de ámbito entre clases.
PROTECTED Un miembro de clase declarado con este modificador, será accesible desde el código de su propia clase y desde cualquier clase heredada. El Código fuente muestra un ejemplo del uso de Protected
40
Visual Basic.Net
FRIEND Un miembro de clase declarado con este modificador, será accesible por todo el código de su proyecto o ensamblado.
41
Visual Basic.Net
Para poder comprobar el comportamiento comportamiento utilizando el ámbito friend, debemos crear una solución formada por un proyecto de tipo consola y uno de biblioteca de clases; en este último escribimos una clase defin definie iendo ndo alguno alguno de sus miem miembro bross con este este modi modific ficado ador, r, como como vemos en el Código fuente.
Código Fuente:
A conti continua nuaci ción, ón, agreg agregam amos os una refer referenc encia ia desde desde el proy proyect ecto o de consola hacia el proyecto de biblioteca de clases, y en el módulo de códi código go,, impo import rtam amos os el espa espaci cio o
de nomb nombre ress del del ensa ensamb mbla lado do
correspo correspondie ndiente nte a la bibliot biblioteca eca de clases, clases, escribi escribiendo endo después después en
42
Visual Basic.Net
Main( ), código que interactúe con un objeto de la clase Empleado, comprobaremos cómo no es posible manipular los miembros friend del objeto Empleado. Ver Código fuente.
Código Fuente:
Aunque hemos descrito su modo de manejo a través de clases, la palabra clave Friend también puede ser utilizada como modificador de ámbit ámbito o para para varia variable bless y proced procedim imie ient ntos os situad situados os en módul módulos os de código.
PROTECTED FRIEND Los miembros de clase declarados al mismo tiempo con Protected y Friend, obtendrán una combinación de ambos modificadores; por lo tanto, serán accesibles accesibles desde el código de su clase, clases derivadas, y por todo el código que se encuentre dentro de su ensamblado.
43
Visual Basic.Net
III.
METODOLOGÍA
3.1 MÉTODOS, TÉCNICAS E INSTRUMENTOS INSTRUMENTOS El método que vamos a llevar a cabo es el Método Cuasi Experimental porque el fenómeno que estamos investigando es real y está producido naturalmente lo cual será muy provechoso para nuestro estudio.
Las Las técni técnica cass que vamo vamoss a empl emplear ear es nuestr nuestraa invest investig igaci ación ón es de observación e investigación bibliográfica.
De obser observac vación ión para para anali analiza zarr de forma forma deta detalla llada da el proble problema ma e Investigación Bibliográfica porque en base a fuentes de información analizaremos y sustentaremos el problema estudiado.
Los instrumentos utilizados están basados en recursos materiales y humano humanoss como como por ejempl ejemplo o las las fuent fuentes es de inform informaci ación ón docum document entos, os, histo histori rial, al, Inter Internet net,,
ya sea
person personas as rela relacio cionad nadas as al tema tema,,
además medios medios que nos faciliten faciliten la elaboración elaboración del proyecto proyecto como como cuadernos, ordenador, impresora, etc.
44
Visual Basic.Net
3.2
PROCEDIMIENTOS
Para el desarrollo de esta investigación, investigación, contamos con la autorización, guía y capacitación adecuada del Catedrático Ing. Javier López de la Unive Universi rsidad dad Técn Técnica ica de Manab Manabíí en la que estam estamos os estudi estudian ando do el Quinto Semestre, y éste proyecto es uno de los pasos para llegar a culminar con éxito este periodo lectivo en esta prestigiosa institución.
Además como recursos disponibles a lo largo de nuestro proyecto tenemos:
HUMANOS: Los investigadores. El catedrático.
TÉCNICOS: Técnica de Observación Modelos de Proyectos
MATERIALES: Papel, materiales de escritorio. Computadora Impresora Internet
ECONÓMICOS: El costo aproximado del presente trabajo investigativo fue de $ 15.00
45
Visual Basic.Net
IV.
BIBLIOGRAFÍA
Internet:
www.wikipedia.com;; Concepto de Visual Basic.Net www.wikipedia.com Basic.Net
www.colabora.net.com;; www.colabora.net.com
Creación
de
clases
en
Visual
Basic.Net
www.arquitectuba.com tuba.com.ar; .ar; Manual Manual www.arquitec Basic.Net.pdf, Adobe Reader.
46
Programación Programación de Visual
Visual Basic.Net
V.
ANEXOS
OBJETOS SIN INTERFAZ GRÁFICA 1. Abrir Abrir Micro Microsoft soft Visual Visual Studio Studio 2005
2. Agre Agregar gar Nuevo Nuevo Proy Proyec ecto to
47
Visual Basic.Net
3. Abrir Abrir Windows Windows Applic Applicatio ation n (Aplicac (Aplicación ión para Window Windows) s)
4. Agre Agregar gar una nueva nueva clase clase
48
Visual Basic.Net
5. Decl Declara aramo moss los camp campos os de la cla clase se
49
Visual Basic.Net
6. Definim Definimos os las las propied propiedades ades de los los campos campos
7. Creamo Creamoss una interfaz interfaz gráfi gráfica ca en donde donde podamos podamos hacer hacer uso de la clase que ya hemos creado
50
Visual Basic.Net
8. Program Programamo amoss para utiliz utilizar ar la clase clase en nuestra nuestra interf interfaz az
Código fuente:
OBJETOS CON INTERFAZ GRÁFICA 1. Abrir Abrir Micro Microsoft soft Visual Visual Studio Studio 2005
51
Visual Basic.Net
2. Abrir brir nuev nuevo o proy proyec ecto to en Arch Archiv ivo o de la barr barraa de menú menús, s, escogemos Biblioteca de controles de Windows
3. Nos apa aparec rece una una inte nterfaz con con un nom nombre UserControl1.vb
52
por def defecto
Visual Basic.Net
4. Dentro Dentro de esta esta interfaz interfaz monta montamos mos los objeto objetoss que van a definir definir nuestro propio objeto de usuario, botones, textos, etc. En este caso creamos un cronómetro, que guardamos y nos fijamos la dirección de nuestro archivo de extensión (dll) que se guarda el proyecto antes de cerrarlo
53
Visual Basic.Net
Dirección
Archivo de extensión dll que se crea a partir de nuestro objeto
5. Abri Abrimo moss nuevam nuevament entee un nuevo proyect proyecto o para para Apli Aplicac cació ión n de Windows de Visual Studio 2005
54
Visual Basic.Net
6. En el nuevo nuevo formulari formulario o podemos podemos llamar llamar a nuestro nuestro nuevo objeto objeto creado, en el cuadro de herramientas, herramientas, hacemos clic derecho en General y escogemos Elegir elementos…
7. En la venta ntana que se nos apar parece esco scogem gemos la opció ción examinar y debemos recordarnos de la dirección de nuestro archivo con extensión dll para encontrar nuestro objeto.
55
Visual Basic.Net
56
Visual Basic.Net
escogerr nuestr nuestro o objet objeto o coloc colocam amos os en acept aceptar ar y nuestr nuestro o 8. Al escoge obje objeto to apar aparec ecee auto automá máti tica came ment ntee en nues nuestr tro o cuad cuadro ro de herrami herramient entas as que cuando cuando lo selecci seleccionam onamos os aparece aparece nuestro nuestro objeto en nuestro formulario
Código fuente:
Option Explicit On Public Class UserControl1 Dim I As Long 'Contador. Dim Tiempo As String 'Tiempo total transcurrido.
Private Sub Timer1_Tick(ByVal Timer1_Tick(ByVal sender As sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick I=I+1 Tiempo = Format(Int(I / 36000) Mod 24, "00" "00")) & ":" & _ Format(Int(I / 600) Mod 60, "00" "00")) & ":" & _ Format(Int(I / 10) Mod 60, "00" "00")) & ":" & _ Format(I Mod 10, "00" "00")) TextBox1.Text = Tiempo
57
Visual Basic.Net
End Sub Private
Sub Button4_Click_1(ByVal Button4_Click_1(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles Button4.Click Timer1.Enabled = False End Sub Private
Sub Button3_Click_1(ByVal Button3_Click_1(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles Button3.Click I = 0 'Inicializar el contador. Timer1.Enabled = True
'Detener el cronometro
TextBox1.Text = "" 'Limpiar Timer1.Interval = 1
'Iniciar el cronometro
End Sub
End Class
HERENCIA 1. Abrir Abrir Micro Microsoft soft Visual Visual Studio Studio 2005
58
Visual Basic.Net
2. Agre Agregar gar Nuevo Nuevo Proy Proyec ecto to
3. Abrir Abrir Windows Windows Applic Applicatio ation n (Aplicac (Aplicación ión para Window Windows) s)
59
Visual Basic.Net
4. Agregamos tres nuevas clases
60
Visual Basic.Net
5. Declaramos los campos de las clases y luego las propiedades
61
Visual Basic.Net
6. Creamo Creamoss una interfaz interfaz gráfi gráfica ca en donde donde podamos podamos hacer hacer uso de la clase que ya hemos creado
62
Visual Basic.Net
7. Program Programamo amoss para utiliz utilizar ar la clase clase en nuestra nuestra interf interfaz az
Código fuente:
63
Visual Basic.Net
Public Class Mediosdetransporte Dim velocidad As String Dim color As color As String Public Property lavelocidad() As String Get Return velocidad End Get Set((ByVal vel As String Set String)) velocidad = vel End Set End Property
Public Property elcolor() As String Get Return color End Get Set((ByVal col As String Set String)) color = col End Set End Property
End Class
Public Class barco Inherits Mediosdetransporte Dim nombre As String Dim tipo As String Public Property elnombre() As String Get Return nombre
64
Visual Basic.Net
End Get Set((ByVal nom As String Set String)) nombre = nom End Set End Property Public Property eltipo() As String Get Return tipo End Get Set((ByVal tip As String Set String)) tipo = tip End Set End Property End Class
Public Class tren Inherits Mediosdetransporte Dim nombre As String Dim capacidad As Integer Public Property elnombre() As String Get Return nombre End Get Set((ByVal nom As String Set String)) nombre = nom End Set End Property Public Property lacapacidad() As String Get Return capacidad End Get Set((ByVal cap As String Set String))
65
Visual Basic.Net
capacidad = cap End Set End Property End Class
Public Class Form1 Dim B As As New New barco Dim T As As New New tren
Private Sub Button1_Click(ByVal Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click B.elnombre = Me Me.TextBox1.Text .TextBox1.Text B.eltipo = Me Me.TextBox2.Text .TextBox2.Text B.elcolor = Me Me.TextBox5.Text .TextBox5.Text End Sub
Private Sub Button2_Click(ByVal Button2_Click(ByVal sender As sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click T.elnombre = Me Me.TextBox3.Text .TextBox3.Text T.lacapacidad = Me Me.TextBox4.Text .TextBox4.Text T.elcolor = Me Me.TextBox6.Text() .TextBox6.Text() End Sub
Private Sub Button3_Click(ByVal Button3_Click(ByVal sender As sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click MsgBox("El MsgBox("El nombre del barco es: " & Me Me.TextBox1.Text .TextBox1.Text & " " & "el tipo del barco es: " & Me Me.TextBox2.Text .TextBox2.Text & " " & "el color del barco es: " & Me Me.TextBox5.Text) .TextBox5.Text) End Sub
Private Sub Button4_Click(ByVal Button4_Click(ByVal sender As sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
66
Visual Basic.Net
MsgBox(" MsgBox("El nombre del TREN es " & Me.T Me .Text extBo Box3. x3.Te Text xt
&
"el
tipo
de l
barco
es"
&
Me.T Me .Text extBo Box4. x4.Te Text xt
&
"el
color
del
barco
es"
&
Me.TextBox6.Text) Me .TextBox6.Text) End Sub End Class
67