Beruflich Dokumente
Kultur Dokumente
FACULTAD DE INGENIERA
TCNICAS DE PROGRAMACIN
TEMA4.PROGRAMACIN ORIENTADA A OBJETOS
La Programacin Orientada a Objetos
Los lenguajes de programacin siempre se han diseado en torno a dos conceptos fundamentales:
los datos y el cdigo que opera sobre ellos. Anteriormente los lenguajes de programacin estaban
construidos en base a procedimientos, es decir bloques de cdigo que trabajaban con un conjunto
de variables independientes definidas en el programa. La programacin procedural permita que
todos los procedimientos pudieran verse entre s y que las variables pudieran ser manipuladas
desde cualquier parte del cdigo.
En los aos 90 surgi un nuevo enfoque de programacin en el cual se expresaban las ideas por
medio de objetos, una visin que era ms 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 cmo 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 comunicacin 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.
Una clase es una coleccin de mtodos y variables. Las clases gestionan el estado en forma de
variables y el comportamiento en forma de mtodos.
Los objetos son entidades que tienen un conjunto de valores definidos (el estado del objeto) y un
conjunto de operaciones (mtodos) sobre ese objeto (los comportamientos del objeto). Los objetos
se construyen usando una clase como plantilla.
Para determinar la visibilidad de una clase, sus variables y sus mtodos utilizamos alguno de los
siguientes modificadores:
public: La clase, o el miembro (variable o mtodo), es visible en todos los mbitos. Las clases
pblicas pueden usarse desde mbitos con nombres externos al propio. Lo miembros pblicos de
una clase son accesibles, al crear un objeto, desde fuera de la propia clase.
protected: Este modificador slo 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
internal: Es similar a public. Esta clase o miembros de clase es visible desde fuera, pero su
alcance de visibilidad es slo dentro del mismo ensamblado. Una clase public puede usarse desde
otros ensamblados mientras que una clase internal no.
protected internal: Es una combinacin de visibilidad que permite que los miembros puedan ser
utilizados en el ensamblado en el que se han definido, as como en clases derivadas a pesar de
que se encuentren en otros ensamblados.
Ejemplo:
Class Point
{
public int X;
public int Y;
}
La clase Point maneja dos variables X y Y de clase pblica lo que indica que desde cualquier otra
clase, namespace o ensamblado se puede tener acceso a ellas. El problema en este caso es que
cualquiera desde fuera puede manipular las dos variables obteniendo su contenido o
modificndolo. Para evitar este problema utilizamos los modificadores y mtodos que permitan
utilizarlas de manera adecuada.
+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 mtodo) X y Y , y cuatro mtodos pblicos (Se definen con un
signo ms antes de la variable o mtodo). La variable X y Y de tipo int. Los mtodos getX y getY
devuelven valores int, los mtodos setY y setX devuelven valores void.
namespace point
{
class Program
{
static void Main(string[] args)
{
int a = 5, b = -3, c=15, d=7;
punto2D p1 = new punto2D();
punto2D p2 = new punto2D();
p1.X = a;
p1.Y = b;
Console.WriteLine("Valores x={0} y y={1}", p1.X, p1.Y);
p2.X = c;
p2.Y = d;
Console.WriteLine("Valores x={0} y y={1}", p2.X, p2.Y);
}
}
class punto2D
{
private int x;
private int y;
public int X
{
get
{
return x;
}
set
{
if (value < 0)
x = 0;
else
x = value;
}
}
public int Y
{
get
{
return y;
}
set
{
if (value < 0)
y = 0;
else
y = value;
}
}
}
}
A esta forma de acceder a las variables dentro de una clase le llamamos Propiedad.
Formularios Windows
A pesar de que .NET hace que asociemos Visual C# .NET con el desarrollo de aplicaciones y
servicios para Internet e Intranes corporativas, una gran parte de los proyectos que se desarrollan
tienen como destinatario el sistema operativo Windows en alguna de sus versiones. Por lo tanto
Visual C# .NET incorpora todos los elementos necesarios para desarrollar aplicaciones para
Windows. En realidad no podemos crear aplicaciones nativas para dicho sistema, sino aplicaciones
que se ejecutan en Windows con la plataforma .NET instaladada.
Durante las siguientes prcticas iremos utilizando de manera progresiva los componentes ms
importantes de la clase Windows Forms.
Fig. 1. Principales ventanas del entorno de desarrollo de la plataforma .NET utilizadas en las
soluciones de formularios Windows.
En la fig.2. podemos observar los principales archivos que se generan para cualquier solucin en
entorno grfico.
El archivo Form1 crea una clase que hereda de la clase System.Windows.Forms. Originalmente el
archivo se abre en modo de diseo (Form1.cs [Designer] Fig. 3) donde usted puede ver de
manera grfica el formulario que se desplegar al ejecutar su aplicacin, mostrando los controles,
colores, posiciones, formatos, imgenes, etc. que contendr su formulario.
El archivo Form1.Designer.cs (Fig.5) crea cada uno de los objetos contenidos en el formulario
definiendo sus atributos (propiedades como nombre, color, tamao, posicin) en cdigo partiendo
de la clase System.Windows.Form para crear sus objetos.
El archivo Program.cs (Fig.6) Contiene el mtodo Main() desde el cual se ejecutan los archivos del
formulario Windows.
Parte I. Propiedades.
Crea una nueva solucin llamada practica18
POO1. Y crea un proyecto Point en modo Consola. Compila el ejemplo de propiedades para una
clase Point. Ejectalo y anota tus comentarios y observaciones.
3. Selecciona del men la Caja de Texto (TextBox) con el botn derecho del mouse, despus
posicinate sobre el formulario (vers que el puntero del mouse aparece una cruz) da clic y
sin soltar el mouse arrstralo. Observars que se crea un cuadro de texto sobre el
formulario el cual al seleccionar podrs cambiar de tamao y posicin.
5. Del mismo modo que insertaste un cuadro de texto, inserta un Botn (Button) de la Caja
de Herramientas (Toolbox), y edita sus Propiedades:
(Name): btnAceptar
Text: Aceptar
6. Da un doble clic sobre el botn btnAceptar (te enviar al archivo Form1.cs) y escribe el
siguiente cdigo;
txtSaludo.Text = Hola mundo
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace hola_mundo_grafico
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
7. Ejecuta tu programa seleccionando Iniciar (Debug > Start debugging o bien Flecha
verde). Anota tus observaciones.
Modifica la propiedad PasswordChar del objeto txtPwd. Para ello vamos a ir a la ventana de
Propiedades y vamos a poner el siguiente carcter *
Ahora vamos a editar el evento clic del botn btnAceptar para que compare si el nombre de
usuario y contrrasea son iguales a determinadas variables, por ejemplo nombre de usuario:
tecnicas y contrasea: 123. Para ello de doble clic sobre el botn, y posteriormente escriba el
siguiente cdigo:
Adiciona un formulario a este proyecto que registre los siguientes datos: Nombre, nmero de
cuenta, edad y promedio. Posteriormente coloca un Button Mostrar datos, al dar clic deber
mostrar por medio de un MessageBox, esta informacin.
Ejemplo:
MessageBox.Show(Nombre + nombre.Text + , No. Cta. + ncuenta.Text);