Guía 6. Windows Forms y Programación Orientada a Objetos PDF
Document Details
ITCA
Tags
Summary
Esta guía proporciona una introducción a Windows Forms y la programación orientada a objetos, con ejemplos prácticos que incluyen crear interfaces de usuario en Windows Forms usando Visual C#. Se detalla la creación de proyectos y la programación de eventos.
Full Transcript
ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial....
ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial. Materia: Desarrollo de Aplicaciones de Escritorio. GUÍA DE EJERCICIOS PRÁCTICOS # 6 “WINDOWS FORMS Y PROGRAMACIÓN ORIENTADA A OBJETOS” RESULTADOS DE APRENDIZAJE Al terminar esta práctica el estudiante tendrá la competencia para: Diseñar y Programar controles de Windows Forms Aplicar conceptos de programación orientada a objetos en el desarrollo de las aplicaciones de escritorio. WINDOWS FORMS Formularios Windows Forms. Windows Forms es una de las dos tecnologías que se utiliza en Visual C# para crear aplicaciones cliente inteligentes basadas en Windows que se ejecutan en.NET Framework. Definición MSDN https://msdn.microsoft.com/es-sv/library/hk4ts42s(v=vs.90).aspx Creando proyecto con Windows Form Para crear un proyecto usando Windows Form, seleccionar del menú principal según el siguiente orden: Archivonuevoproyecto En el siguiente cuadro de dialogo siga las siguientes instrucciones: 1) Seleccionar el lenguaje de programación C# 2) Seleccione el tipo de proyecto “Aplicación de Windows forms” 3) Escriba un nombre al proyecto 4) Recuerde donde lo está guardando… 5) Aceptar Herramientas importantes dentro de la IDE 39 ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial. Materia: Desarrollo de Aplicaciones de Escritorio. Cuadro de Herramientas Este cuadro se ubica generalmente en la parte izquierda de nuestro IDE, aquí se encuentran todos los controles que se usan para diseñar las interfaces gráficas. Basta con arrastrar y soltar sobre el formulario para diseñar. Área de diseño El área de diseño se encuentra en la parte central de nuestra IDE y se presenta desde un inicio un formulario vacío como base para el diseño de la interfaz a diseñar. Ventana de Propiedades Cada control del cuadro de herramientas, cuando es colocado en el formulario, posee diversas propiedades modificables con el objetivo de satisfacer las necesidades de programación. Cada vez que se selecciona un control del formulario cambian las propiedades de esta ventana. EVENTOS DE LOS CONTROLES Los eventos son las determinadas sucesos que ocurren sobre los controles (los del cuadro de herramientas). Los controles de formularios Windows Forms heredan más de sesenta eventos de System.Windows.Forms.Control. Algunos de ellos son Click : Occurs when the control is clicked DoubleClick: Occurs when the control is double-clicked. GotFocus: Occurs when the control receives focus. Load: Occurs before a form is displayed for the first time. MouseHover: Occurs when the mouse pointer rests on the control TextChanged: Occurs when the Text property value change Entre otros … EJEMPLO Se desea crear un programa con interfaz gráfica que posea un botón que al momento de presionar clic con el mouse muestre un cuadro de dialogo con un mensaje que diga “Hola Mundo”. Solución: Paso 1) Crear un proyecto de Windows Forms 40 ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial. Materia: Desarrollo de Aplicaciones de Escritorio. Paso 2) Agregar desde el cuadro de herramientas un control Button Paso 3) Seleccionar el botón (1), luego clic a el botón (2) en la caja de propiedades, posteriormente buscar el evento clic (3) y dar doble clic en el espacio en blanco. Paso 4) Debería abrirse el código de la clase del formulario Cada formulario puede verse a nivel de diseño [Diseño] y a nivel de código … Ahora escribir el siguiente código dentro de los { } MessageBox.Show(this,"Hola Mundo"); Paso 5) Ahora programar los eventos MouseHover para que cambie de color el botón cuando el cursor pase sobre el control, recuerde seguir los pasos que se marcan en la imagen 41 ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial. Materia: Desarrollo de Aplicaciones de Escritorio. Ahora escribir el siguiente código dentro de los { } this.button1.BackColor = Color.Aqua; Ahora programar el evento MouseLeave y escribir: this.button1.BackColor = Color.Silver; PROGRAMACION ORIENTADA A OBJETOS La programación orientada a objetos (POO) es un modelo de programación que utiliza los objetos, ligados mediante mensajes, para la solución de problemas. La idea central es simple: organizar los programas a imagen u semejanza de la organización de los objetos del mundo real. Esta programación se basa en 4 pilares fundamentales: 1. Abstracción 2. Encapsulamiento 3. Herencia 4. Polimorfismo Abstracción Consiste en captar las características y acciones de un objeto del mundo real y expresarlas en una clase. Estas características y acciones son las que distinguen al objeto de los demás. Se considerarán las características y acciones que interesan en el procesamiento de la información del objeto real en el sistema informático a realizar. Ejemplo: Se va realizar un sistema en el cual se procesará información de vehículos para un sistema de venta de vehículos. De cada vehículo hay cierta información que es necesario procesar, se pide aplicar el proceso de abstracción para el diseño de una clase, la cual servirá para del sistema a realizar. Vehiculo marca: String modelo: String kilometraje: doublé Abstracción precio: Double color: string Vehuculo() Comprar() Vender() Etc() Toda clase consta de: Atributos o campos, métodos y constructores. 42 ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial. Materia: Desarrollo de Aplicaciones de Escritorio. Atributos: Para el ejemplo anterior los atributos son las características del objeto (marca, modelo, kilometraje, precio y color) Métodos: Son las acciones que hace el objeto dentro de nuestro sistema, para el ejemplo anterior son comprar(), vender(), etc… dentro de los paréntesis se escriben los parámetros de entrada si los fuere necesario. Constructor: Es un método, el cual tiene como función principal inicializar los atributos de la clase. Ejemplo de una clase en C#: Los {get; set;} permiten acceder a los valores de los Lista de atributos, campos desde la instancia, class Vehiculo se escribirá solo set o get poseen modificador de { acceso y tipo de dato. public string marca {get; set;} según sea necesario. private string modelo {get; set;} protected double precio { get; set; } Método constructor, este public Vehiculo() código dependerá de la { Los métodos de la clase necesidad de pueden ser diversos } programación public string getDetalles(){ según la necesidad de string detalles; programación. detalles = "Marca " + this.marca; detalles = "\n Modelo " + this.modelo; detalles = "\n Precio " + this.precio; return detalles; } Encapsulamiento Es una técnica de programación que consiste en organizar atributos y métodos en una estructura específica, conciliando el modo en que le objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. El ocultamiento depende de los modificadores de acceso tanto de los métodos como los campos de una clase, estos modificadores de acceso son: Public: Permiten que el atributo o método sea accedido desde afuera de la clase. Private: Permite que cualquier método de la misma clase acceda al atributo o método, pero no es posible acceder desde afuera de la clase donde se ha declarado. Protected: Es parecido al Private con la diferencia que permite el acceso al atributo o clase desde afuera de la clase siempre y cuando se haya aplicado herencia. Ejemplo: Se ha diseñado una clase que permite procesar información de los Vehiculos de una empresa y tiene el siguiente código. 43 ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial. Materia: Desarrollo de Aplicaciones de Escritorio. class Vehiculo { public string marca; private string modelo; protected double precio; public Vehiculo(){ this.precio=3000; } public double getPrecio(){ if (precio < 2500){ precio = precio + (precio * 0.2); }else{ precio = precio + (precio * 0.05); } return precio; } } Cuando se usa la clase, se crea un objeto, éste es una copia entera de la clase, si se usa la clase el código sería. Vehiculo micarro = new Vehiculo(); //el objeto se llama micarro //de forma automática se llamó al método constructor de la clase cuando se crea el objeto Console.WriteLine(“El precio del Vehiculo es : $” + micarro.getPrecio()); //el resultado es “El precio del Vehiculo es: $3000.00” Del código anterior se visualiza que al llamar al método getPrecio() de la clase Vehiculo se imprime la cantidad que tiene guardado el campo Precio ¿Cómo se calculó ese precio? La respuesta es que esta encapsulado el proceso. Herencia Consiste en transmitir atributos y métodos de una clase padre a una clase hija. Por ejemplo: Se tiene la clase padre Vehículo y se aplica herencia hacia la clase Moto, eso hace que la clase moto contenga todos los atributos y métodos de la clase Vehículo aunque no estén escritos dentro de la clase Moto. Vehiculo marca: String modelo: String Moto kilometraje: doublé cilindraje: String precio: Double kilometraje: double color: string Vehuculo() Moto() Comprar() getDetalles() Vender() Etc() Etc() Si se crease un objeto de tipo moto, por medio de este objeto puede llamarse a los métodos comprar(), vender(), etc. El objetivo de la herencia es la reutilización de código. En C# la herencia se aplica por medio del operador : Ejemplo Class Moto:Vehiculo { … } 44 ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial. Materia: Desarrollo de Aplicaciones de Escritorio. Polimorfismo Polimorfismo significa “la facultad de asumir muchas formas”, refiriendo se a la facultad de llamar a las distintas versión es que adopta un método definido en una clase usando el mismo medio de acceso. El polimorfismo se representa por dos caras: Sobre carga de métodos Sobre escritura de métodos Sobre carga de métodos Consiste en escribir métodos con el mismo nombre pero con diversa cantidad de parámetros de entrada. Esto se hace dependiendo de la necesidad de la programación. Por ejemplo: public Vehiculo(){ this.precio=3000; } public Vehiculo(double nuevoPrecio){ this.precio = nuevoPrecio; } public Vehiculo(string marc, string model){ this.marca = marc; this.modelo = model; } Sobre escritura de métodos Esto sucede cuando un método es heredado o implementado y se desea sobre escribir en la clase que lo implementa…. Por ejemplo, en las clases antes mencionadas Vehiculo y Moto, se observa que la clase Moto hereda de Vehiculo, entonces se dice que la clase Moto posee el método Comprar(), pero si por motivos diversos se desea modificar el contenido de este método se puede hacer por sobre escritura. Clase padre Vehiculo Clase hija Moto Class Vehiculo{ Class Moto:Vehiculo{ Public string marca {get; set;} Public double cilindraje {get;set;} Public string modelo {get; set;} Public Vehiculo(){ Public new void Comprar(){ //constructur } //aquí se escribe el código que va Public void Comprar(){ variar respecto a la definición Console.WriteLine(“Se esta original de este metodo comprando”); } } } } } 45 ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial. Materia: Desarrollo de Aplicaciones de Escritorio. De lo anterior analizamos que la clase Moto hereda por medio del operador : de la clase Vehiculo, por tanto la clase Moto tiene todos los métodos y atributos de la clase Vehiculo, pero por diversos motivos se puede reescribir un método en la clase hija… a eso se le llama sobre escritura y se escribe el modificador new para que el compilador omita el método heredado. Entonces decimos que polimorfismo significa múltiples formas, y se representa por sobrecarga (mismo método diferente comportamiento, diferente cantidad de parámetros) y sobre escritura de métodos (mismo método en diferente clase con diferente comportamiento) Si se aplica sobre escritura el método sobre escrito debe tener la misma cantidad de parámetros del método original, sino no es sobre escritura más bien sobre carga. EJERCICIOS PRÁCTICOS 1) Crear un proyecto que contenga las siguientes clases Empleado Ordenanza nombre: string carnet : int apellidos: string ubicacion: string salario: double renta:double dui: string Double Calculo_renta() Double Calcular_salario(); Aplique herencia de Empleado a Ordenanza y sobre escriba el método Calcular_salario() en Ordenanza de tal forma que siempre reciba un bono extra de 5%. Cree un formulario como se muestra a continuación: El objetivo es que en la programación del evento clic del botón, debe crear un objeto que sea instancia a la clase Ordenanza y llenará el objeto con los datos del formulario, posteriormente 46 ESCUELA DE INGENIERÍA EN COMPUTACIÓN Carrera: Técnico en Ingeniería de Sistemas Informáticos. Modalidad: Presencial. Materia: Desarrollo de Aplicaciones de Escritorio. mostrará en un cuadro de dialogo los datos registrados mostrando también el valor de descuento de renta, tal como se muestra a continuación: No olvide que debe crear un método dentro dela clase ordenanza que calculará el monto de la renta. 2) Del ejercicio anterior, mostrar los datos agregados en un control DataGridView. 3) Investigar sobre el uso de interfaces y clases abstractas en C# y presentar un ejemplo básico de su uso. 47