You are on page 1of 13

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE INGENIERÍA
TÉCNICAS DE PROGRAMACIÓN
TEMA4.PROGRAMACIÓN ORIENTADA A OBJETOS
La Programación Orientada a Objetos

Los lenguajes de programación siempre se han diseñado en torno a dos conceptos fundamentales:
los datos y el código que opera sobre ellos. Anteriormente los lenguajes de programación estaban
construidos en base a procedimientos, es decir bloques de código que trabajaban con un conjunto
de variables independientes definidas en el programa. La programación procedural permitía que
todos los procedimientos pudieran verse entre sí y que las variables pudieran ser manipuladas
desde cualquier parte del código.

En los años 90 surgió un nuevo enfoque de programación en el cual se expresaban las ideas por
medio de objetos, una visión que era más aproximada a la realidad humana.

El desarrollo de software orientado a objetos tiene dos claras ventajas sobre el desarrollo de
software procedural : La primera ventaja es que se puede especificar lo que debe hacer el software
y cómo lo hará usando un vocabulario familiar a los usuarios. El software se estructura usando
objetos. Estos objetos pertenecen a clases con las que el usuario final está familiarizado.
Esto reduce el trabajo y facilita la comunicación con la gente ajena al software y que está
interesada en el producto final.
La segunda ventaja es que ahora se pueden tener ámbitos de nivel de clases que permiten ocultar
variables.

Definiciones básicas de la Programación Orientada a Objetos:

Una clase es una colección de métodos y variables. Las clases gestionan el estado en forma de
variables y el comportamiento en forma de métodos.

Los objetos son entidades que tienen un conjunto de valores definidos (el estado del objeto) y un
conjunto de operaciones (métodos) sobre ese objeto (los comportamientos del objeto). Los objetos
se construyen usando una clase como plantilla.

Abstracción. La abstracción es el proceso de modelar los elementos necesarios para representar
un ámbito de la vida real. En este proceso se deben identificar todos los aspectos importantes de
un entorno de acuerdo con lo que se desea representar en el programa. Por ejemplo si deseamos
modelar una clase persona puede tener muchos estados: nombre, nacionalidad, dirección,
teléfono, edad, estudios,…,etc. sin embargo para resolver un problema sólo nos interesa saber su
nombre, edad y teléfono.

Encapsulacion.Mediante la encapsulación los datos se ocultan o se encapsulan dentro de una
clase y la clase implementa un diseño que permite que otras partes tengan acceso a los datos de
forma eficiente.

Para determinar la visibilidad de una clase, sus variables y sus métodos utilizamos alguno de los
siguientes modificadores:

public: La clase, o el miembro (variable o método), es visible en todos los ámbitos. Las clases
públicas pueden usarse desde ámbitos con nombres externos al propio. Lo miembros públicos de
una clase son accesibles, al crear un objeto, desde fuera de la propia clase.

protected: Este modificador sólo es aplicable a miembros de una clase. Un miembro protegido no
es accesible externamente. Las variables protegidas son accesibles desde el interior de sus clases
derivadas, pero no son accesibles desde el exterior

Practica18. POO conceptos básicos. Formularios I
Página | 1

Y los miembros de una clase sólo pueden verse desde el interior de la clase nunca desde fuera. y cuatro métodos públicos (Se definen con un signo más antes de la variable o método). POO conceptos básicos. Una clase public puede usarse desde otros ensamblados mientras que una clase internal no. protected internal: Es una combinación de visibilidad que permite que los miembros puedan ser utilizados en el ensamblado en el que se han definido. punto2D -X: int -Y: int +getX(): int +getY(): int +setX():void +setY():void En este diagrama la clase punto2D tiene dos variables privadas (se definen con un signo menos antes de la variable o método) X y Y . así como en clases derivadas a pesar de que se encuentren en otros ensamblados. public int Y. Ejemplo: Class Point { public int X. Una clase privada sólo puede utilizarse en el interior de un namespace no se puede ver desde otro namespace.PROGRAMACIÓN ORIENTADA A OBJETOS private: Es el ámbito más reducido. pero su alcance de visibilidad es sólo dentro del mismo ensamblado. El problema en este caso es que cualquiera desde fuera puede manipular las dos variables obteniendo su contenido o modificándolo. Para evitar este problema utilizamos los modificadores y métodos que permitan utilizarlas de manera adecuada. namespace o ensamblado se puede tener acceso a ellas. Ahora mostraremos su notación en UML y después su desarrollo en C#. los métodos setY y setX devuelven valores void. Practica18. incluyendo clases derivadas internal: Es similar a public. La variable X y Y de tipo int. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4. Esta clase o miembros de clase es visible desde fuera. Formularios I Página | 2 . Los métodos getX y getY devuelven valores int. } La clase Point maneja dos variables X y Y de clase pública lo que indica que desde cualquier otra clase.

p2. } } class punto2D { private int x. Console.Y). punto2D p2 = new punto2D(). using System. p1.Y = d. else x = value. } } public int Y { get { return y. private int y. POO conceptos básicos.X = c. else y = value. } set { if (value < 0) x = 0.Y = b. d=7.X. c=15. public int X { get { return x. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4. p1.Generic. } set { if (value < 0) y = 0. p1. Console. p1. punto2D p1 = new punto2D().WriteLine("Valores x={0} y y={1}". p2.Text. } } } } Practica18.Y).Collections. Formularios I Página | 3 . p2.WriteLine("Valores x={0} y y={1}". b = -3.PROGRAMACIÓN ORIENTADA A OBJETOS using System.X. p2. namespace point { class Program { static void Main(string[] args) { int a = 5. using System.X = a.

En Visual C# .NET hace que asociemos Visual C# . Formularios Windows A pesar de que . métodos. Una gran ventaja de este lenguaje es que los asistentes y diseñadores se encargan de generar la clase derivada e ir personalizándola a medida que se insertan componentes. Practica18.NET instaladada. edición de propiedades de ventana y escritura de código importante como la lógica del sistema asociada a eventos. sino aplicaciones que se ejecutan en Windows con la plataforma . Básicamente en cualquier aplicación de Windows utilizaremos el diseñador de formularios. clase que representa al típico formulario base de este tipo de aplicaciones.Windows.PROGRAMACIÓN ORIENTADA A OBJETOS Como pudimos observar en este ejemplo podemos utilizar métodos para que las variables puedan ser utilizadas de acuerdo con los que hayamos programado. Formularios I Página | 4 .NET un formulario Windows es un objeto de la clase System. El trabajo del programador se limitará en gran parte a operaciones de arrastrar y soltar. POO conceptos básicos. en el que existen múltiples clases cuya finalidad es facilitar el desarrollo de aplicaciones Windows.NET incorpora un ámbito. Estas clases pueden ser utilizadas desde cualquier lenguaje .Forms.NET con el desarrollo de aplicaciones y servicios para Internet e Intranes corporativas.NET y Visual Basic .Windows.NET. Durante las siguientes prácticas iremos utilizando de manera progresiva los componentes más importantes de la clase Windows Forms. Por lo tanto Visual C# . modifican propiedades y gestionan eventos. la ventana de Propiedades y la Caja de Herramientas.Form o de una clase derivada de ésta. concretamente System.Forms.NET incorpora todos los elementos necesarios para desarrollar aplicaciones para Windows. además incorpora asistentes y diseñadores capaces de generar y administrar el código de este tipo en dos lenguajes: Visual C# . UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4. En realidad no podemos crear aplicaciones nativas para dicho sistema. En conclusión nuestra clase estará formada por variables. A esta forma de acceder a las variables dentro de una clase le llamamos Propiedad. La plataforma . Una de las clases existentes en dicho ámbito es Form.. una gran parte de los proyectos que se desarrollan tienen como destinatario el sistema operativo Windows en alguna de sus versiones. propiedades y subclases.NET.

POO conceptos básicos. Practica18. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4.NET utilizadas en las soluciones de formularios Windows. 1.PROGRAMACIÓN ORIENTADA A OBJETOS Fig. Principales ventanas del entorno de desarrollo de la plataforma . Formularios I Página | 5 .

En la fig.Windows. Fig. etc. podemos observar los principales archivos que se generan para cualquier solución en entorno gráfico.3. 2. imágenes. que contendrá su formulario. posiciones.Forms. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4. formatos. Form1 en modo de diseño. Formularios I Página | 6 . mostrando los controles. Fig. POO conceptos básicos. 3) donde usted puede ver de manera gráfica el formulario que se desplegará al ejecutar su aplicación.2. colores.cs [Designer] Fig. Practica18. Principales archivos de un proyecto Windows Forms.PROGRAMACIÓN ORIENTADA A OBJETOS En la ventana de soluciones y la de desarrollo podrá observar los principales archivos de un proyecto de cualquier formulario Windows. Originalmente el archivo se abre en modo de diseño (Form1. El archivo Form1 crea una clase que hereda de la clase System.

El archivo Program. color.5) crea cada uno de los objetos contenidos en el formulario definiendo sus atributos (propiedades como nombre. posición) en código partiendo de la clase System. archivo donde se crean los objetos del formulario.Designer. Form1. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4.cs (Fig.Windows.4.Designer.cs.6) Contiene el método Main() desde el cual se ejecutan los archivos del formulario Windows.Form para crear sus objetos. Fig. Practica18.cs (Fig. el desarrollador puede programar los eventos de todos los controles colocados en el Formulario. tamaño. El archivo Form1.PROGRAMACIÓN ORIENTADA A OBJETOS En el archivo Form1 en modo código (Fig. 5. Fig. POO conceptos básicos.cs Archivo donde se programan los eventos de cada control. Formularios I Página | 7 . Form1. 4).

POO conceptos básicos. Practica18.PROGRAMACIÓN ORIENTADA A OBJETOS Fig. Si requiere crear clases adicionales puede hacerlo seleccionando de la ventena de soluciones >Agregar > nuevo archivo. 6. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4. Formularios I Página | 8 . Archivo principal desde donde es llamada la aplicación gráfica.

Adiciona un nuevo proyecto seleccionando la opción Windows Application. Parte II. 1. En el formulario que se despliega da un clic en la parte lateral izquierda en la Caja de Herramientas (toolbox). Hola Mundo Gráfico En la práctica de hoy se analizarán los tres principales componentes de cualquier formularios Windows: las Cajas de Texto. Compila el ejemplo de propiedades para una clase Point. POO conceptos básicos. Crea una nueva solución llamada practica18 POO1. Ejecútalo y anota tus comentarios y observaciones. Formularios I Página | 9 . Practica18.PROGRAMACIÓN ORIENTADA A OBJETOS Ejercicios de la Práctica. Propiedades. Y nombra al proyecto hola_mundo_grafico 2. Y posteriormente selecciona la pestaña Controles Comunes (Common Controls). las etiquetas y los Botones. Parte I. Y crea un proyecto Point en modo Consola. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4.

4. Formularios I Página | 10 . después posiciónate sobre el formulario (verás que el puntero del mouse aparece una cruz) da clic y sin soltar el mouse arrástralo. Selecciona del menú la Caja de Texto (TextBox) con el botón derecho del mouse. Observarás que se crea un cuadro de texto sobre el formulario el cual al seleccionar podrás cambiar de tamaño y posición.PROGRAMACIÓN ORIENTADA A OBJETOS 3. Seleccionado el control (Cuadro de texto) ve a la ventana de Propiedades y edita los siguientes atributos: (Name): txtSaludo Practica18. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4. POO conceptos básicos.

cs) y escribe el siguiente código.Windows. using System. using System.Forms. inserta un Botón (Button) de la Caja de Herramientas (Toolbox).ComponentModel.Text. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4.Data. using System. Practica18. Del mismo modo que insertaste un cuadro de texto.Generic.Drawing. POO conceptos básicos.Text = “Hola mundo” Tu archivo Form1. using System.PROGRAMACIÓN ORIENTADA A OBJETOS 5.Collections. Da un doble clic sobre el botón btnAceptar (te enviará al archivo Form1. txtSaludo.cs se verá similar al que se muestra a continuación: using System. y edita sus Propiedades: (Name): btnAceptar Text: Aceptar 6. using System. namespace hola_mundo_grafico { public partial class Form1 : Form { public Form1() { InitializeComponent(). using System. Formularios I Página | 11 .

8. Ejecuta tu programa seleccionando Iniciar (Debug > Start debugging o bien Flecha verde). POO conceptos básicos. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4. EventArgs e) { txtSaludo. Abre el archivo Form1. Practica18.Text = "Hola mundo". Formularios I Página | 12 .Designer. } } } 7. Anota tus observaciones. observa el código y anota tus conclusiones.PROGRAMACIÓN ORIENTADA A OBJETOS } private void btnAceptar_Click(object sender.cs.

Show("Nombre de Usuario o contraseña Incorrecta").Show("Bienvenido Usuario"). número de cuenta. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TÉCNICAS DE PROGRAMACIÓN TEMA4.Text == "123")) MessageBox. Formularios I Página | 13 . Cta. “+ ncuenta. por ejemplo nombre de usuario: “tecnicas” y contraseña: “123”.Show(“Nombre “ + nombre. Para ello de doble clic sobre el botón. y posteriormente escriba el siguiente código: private void btnAceptar_Click(object sender. Validación de usuario Crea un nuevo proyecto en modo Windows Application llamado validacion_usuario cuya interfaz grafica deberá ser similar a la que se muestra a continuación. Ejemplo: MessageBox. Practica18. al dar clic deberá mostrar por medio de un MessageBox. edad y promedio. else MessageBox. esta información. Posteriormente coloca un Button “Mostrar datos”. llama al formulario validacion_usuario: Modifica la propiedad PasswordChar del objeto txtPwd.Text == "tecnicas") && (txtPwd. Para ello vamos a ir a la ventana de Propiedades y vamos a poner el siguiente carácter * Ahora vamos a editar el evento clic del botón btnAceptar para que compare si el nombre de usuario y contrraseña son iguales a determinadas variables.Text + “.PROGRAMACIÓN ORIENTADA A OBJETOS Parte III. No.Text). EventArgs e) { if ((txtLogin. POO conceptos básicos. } Parte IV. Datos de usuario Adiciona un formulario a este proyecto que registre los siguientes datos: Nombre.