Está en la página 1de 7

Introduccin a la Programacin Orientada a Objetos

Introduccin

Emprender un proyecto de desarrollo de software, es un reto que nos lleva a pensar en la


elaboracin de un producto final que cumpla con las caractersticas de un software
exitoso: Solido, robusto, confiable, escalable, interoperable y lo mejor de todo para
quienes estamos desarrollando esgenerar cdigo que pueda ser reutilizado.

Bajo esta premisa surge la necesidad de trabajar con una filosofa de programacin
orientada a objetos. Ahora bien, en este momento se preguntaran, una filosofa?, la
respuesta es sencilla, antes de aprender a programar en un lenguaje orientado a objeto
como C# o Vb.net, es importante aprender a pensar, bajo un modelo de desarrollo, con su
teora y su metodologa, como lo es la programacin orientada a objetos, para encontrar
una solucin a un problema que se plantee.

Conceptos Fundamentales
Clase:

Vamos a iniciar este concepto con un ejemplo: Para construir un modelo de automvil se
deben haber plasmado una serie de caractersticas y funcionalidades que estarn guiando
la construccin del mismo. Cada vez que se procede a crear este mismo modelo de auto,
se deber cumplir con las caractersticas y funcionalidades predefinidas.

En programacin orientada a objeto, una clase define las caractersticas y


comportamientos comunes de los objetos, en otras palabras la clase es el molde para la
creacin de los mismos. Para nuestro ejemplo,un plano del modelo del auto es el smil de
la clase auto. Aunque la clase especifica las caractersticas propias del objeto cada
implementacin es nica tal como sucede en el mundo real pues el valor de sus atributos
puede variar, por ejemplo el color, kilmetros recorridos, etc.

Objeto:

Los objetos tienen caractersticas y comportamientos que estn definidas de la clase de


donde se instancian, sin embargo, aunque varios objetos provengan de una clase pueden
tener identidad propia; en otras palabras: La identidad es el valor o estado de la propiedad
que permite a un objeto diferenciarse de otros. En programacin orientada a objetos cada
Auto se conocer como una instancia de la clase Auto.
Pilares de la Programacin Orientada a Objetos

Es importante entender los cuatro pilares de la programacin orientada a objetos:


abstraccin, encapsulacin, herencia y polimorfismo.

Abstraccin:

Como se explico anteriormente, los objetos tienen atributos o caractersticas que


representan los datos asociados al mismo, estos atributos y sus valores en un momento
dado, determinan el estado de un objeto. De igual forma los objetos tienen
funcionalidades o comportamientos llamados mtodos en la programacin orientada a
objetos. Con estos mtodos accedemos a los atributos de una manera predefinida y se
implementan el comportamiento del objeto.

Cuando desarrollemos un software, crearemos muchos objetos, que en algn momento


vamos a requerir para resolver una situacin planteada. Es aqu donde entra el concepto
de abstraccin. Con la abstraccin podremos tomar lo que hace falta de un objeto del
mundo real para el sistema en un momento dado, es captar las caractersticas esenciales
de un objeto, as como su comportamiento.

Veamos como lo aplicamos a un ejemplo. En un taller mecnico se desea registrar los


automviles que ingresan al mismo. Es decir que vamos a tomar para registro de ingreso
Marca, Modelo, Ao, Cliente, Rif, Direccin Fiscal, telfono del cliente. En este Caso
tomamos del objeto automvil solo los datos que necesitamos Marca, Modelo y Ao. Del
Objeto Cliente, el cliente su RIF, direccin fiscal y telfono.

Encapsulamiento

El objetivo es meter todo en una capsula, juntar las piezas que hacen que funcione como
un todo. Ejemplo meto el motor dentro del auto.

Polimorfismo

Lograr que un objeto se comporte como si fuese una implementacin de otra clase.
Ejemplo: Un carro comportndose como una gra.

Herencia

Tomar caractersticas y funcionalidades definidas en otras clases. Ejemplo: Auto hereda de


vehculo motorizado. Como gra tambin hereda de vehculo automotor.

Las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de
clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases
a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento
permitiendo a los objetos ser definidos y creados como tipos especializados de objetos
preexistentes.
Ejemplo de Clase

Como haba comentado en un post anterior, en programacin orientada a objeto, una


clase define las caractersticas y comportamientos comunes de los objetos, en otras
palabras la clase es el molde para la creacin de los mismos. En las Prximas lneas les
presento un ejemplo de la Clase Alumno en .net

La clase alumno es una abstraccin con los atributos, comportamientos bases para
nuestro sistema.

using System;
using Noixno.Common;
namespace MVAEscuela.Core.BE
{
[Serializable]
public partial class Alumno : Persona //Herencia
{
#region Private fields, to hold the state of the Alumno entity
private int m_IdAlumno;
private DateTime m_FechaDeNacimiento;
#endregion
#region Public properties, to expose the state of the entity
public int IdAlumno
{
get
{
return m_IdAlumno;
}
set
{
m_IdAlumno = value;
IsModified = true;
}
}
public DateTime FechaDeNacimiento
{
get
{
return m_FechaDeNacimiento;
}
set
{
m_FechaDeNacimiento = value;
IsModified = true;
}
}
#endregion
}
}
Ejemplo de Herencia

En el ejemplo que se muestra para la definicin de la Clase Instructor se toman


caractersticas y funcionalidades definidas en otra clase denominada Persona. Las clases
no estn aisladas, sino que se relacionan entre s, formando una jerarqua de
clasificacin. Esto se conoce como herencia.

using System;
using Noixno.Common;
namespace MVAEscuela.Core.BE
{
[Serializable]
public partial class Instructor : Persona //Herencia
{
#region Private fields, to hold the state of the Instructor entity
private int m_IdInstructor;
private DateTime m_FechaIngreso;
#endregion
#region Public properties, to expose the state of the entity
public int IdInstructor
{
get
{
return m_IdInstructor;
}
set
{
m_IdInstructor = value;
IsModified = true;
}
}
public DateTime FechaIngreso
{
get
{
return m_FechaIngreso;
}
set
{
m_FechaIngreso = value;
IsModified = true;
}
}
#endregion
}
}
Ejemplo Polimorfismo

En los ejemplos anteriores pudimos analizar las Clases Alumno e Instructor. En este
ejemplo veremos que se desarrollo un formulario para enviar notificaciones. En este caso
tanto alumno como instructor se comportaran como persona. Esto es lo que se conoce
como Polimorfismo.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Net.Mail;

using MVAEscuela.Core.BE;
using MVAEscuela.Core.BLL;
public partial class Notificacion : System.Web.UI.Page
{
Alumno_BLL m_Alumno_BLL = new Alumno_BLL();
Instructor_BLL m_Instructor_BLL = new Instructor_BLL();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Done_Click(object sender, ImageClickEventArgs e)
{
if (chkAlumnos.Checked)
{
Noixno.Common.CommonList<Instructor> Instructores = m_Instructor_BLL.GetAll(null);
foreach (Instructor instructor in Instructores)
{
Notificar(instructor);
}
}
if (chkInstructor.Checked)
{
Noixno.Common.CommonList<Alumno> Alumnos = m_Alumno_BLL.GetAll(null);
foreach (Alumno alumno in Alumnos)
{
Notificar(alumno);
}
}
}
//Polimorfismo ya quede recibir un instructor o un alummo ya que ambos heredan de persona
protected void Notificar(Persona persona)
{
string Cuerpo = @"<HTML><body><table border =1><tr><td>Estimado: " + persona.Nombre +
"</td></tr> <tr><td>Estimado: " + Notificacion.Text + "</td></tr> </table></body></HTML>";
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("server@noixnogroup.com");
mail.To.Add(persona.CorreoElectronico);

mail.Subject = " Notificacion :: MVA Escuela";

mail.IsBodyHtml = true;
mail.Priority = MailPriority.High;
mail.Body = Cuerpo;
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("Server@noixnogroup.com", "AmericaA00*");
SmtpServer.EnableSsl = true;
try
{
SmtpServer.Send(mail);
}
catch (SmtpException ex)
{
info.Text = ex.Message;
}
catch (Exception ex)
{
info.Text = ex.Message;
}
}
}
Ejemplo Introduccion a la Programacion Orientada a Objeto en .NET
Con la finalidad de entender todos los conceptos explicados en este blog sobre Introduccin a la
Programacin Orientada a Objetos se les coloca a continuacin un link con el cdigo completo de un
programa para hacerle tanto mantenimiento a las tablas de Alumnos e Instructores, como ejecutar el envo de
notificaciones a ambos.

La estructura del programa cumple con el modelo en capas donde se separan claramente las entidades de
negocio, las reglas, las capas de persistencia, presentacin.

Link Codigo Fuente: http://dl.dropbox.com/u/8067930/MVA/MVAEscuela.zip

Link Script BD: http://dl.dropbox.com/u/8067930/MVA/MVAEscuelaDB_Script.zip

Para finalizar la grafica del Diagrama de Componente para este ejemplo:

También podría gustarte