Anda di halaman 1dari 10

Introduccin a la Programacin Orientada a Objetos

noviembre 24, 2010

Posted by arevalomaria in Introduccion a la Programacin.


trackback
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

diciembre 20, 2010

Posted by arevalomaria in Introduccion a la Programacin.


trackback
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
}
}
ADVE RTI SEM EN T

Me gusta:
Me gusta
S el primero en decir que te gusta esta post.

Comentarios

1. Joe - septiembre 28, 2011


Entiendo que por ms simple que sea el cdigo, debieran ponerlos en VB.NET
tambin, No solo en C#.
Responder

2. Jesus Antonio Londoo Muoz - octubre 3, 2011


para los que pedian el codigo en Vb.Net aqui esta:
Imports System
Imports Noixno.common
Namespace MVAEscuela.Core.BE
_

Partial Public Class Alumno


Inherits Persona
#Region .::. Campos privados .::.
Private m_idAlumno As Integer
Private m_FechaDeNacimiento As DateTime
#End Region
#Region .::. Propiedades Publicas .::.
Public Property idAlumno() As Integer
Get
Return m_idAlumno
End Get
Set(ByVal value As Integer)
m_idAlumno = value
End Set
End Property
Public Property FechaDeNacimiento() As DateTime
Get
Return m_FechaDeNacimiento
End Get
Set(ByVal value As DateTime)
m_FechaDeNacimiento = value
End Set
End Property
#End Region
End Class
End Namespace

Ejemplo de Herencia

diciembre 20, 2010

Posted by arevalomaria in Introduccion a la Programacin.


trackback
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
}
}
ADVE RTI SEM EN T

Me gusta:

Ejemplo Polimorfismo

diciembre 20, 2010

Posted by arevalomaria in Introduccion a la Programacin.


trackback
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 diciembre 20, 2010
Posted by arevalomaria in Introduccion a la Programacin.
trackback
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://www.noixnogroup.net/foro/demos/MVAEscuela.zip
Link Script BD: http://www.noixnogroup.net/foro/demos/MVAEscuelaDB_Script.zip
Para finalizar la grafica del Diagrama de Componente para este ejemplo:

ADVE RTI SEM EN T