jueves, 17 de septiembre de 2009

Orientación a Objetos

El objetivo de este blog es exponerlos fundamentos básicos para la programación orientada a objetos, en la actualidad en cualquier lugar donde se lleve a cabo esta actividad se deberá conocer sobre este paradigma o forma de tirar líneas de código.

Pero en que te ayuda?
1.- Hace el código mas manejable, aun que esto va depender del grado de abstracción que tenga el arquitecto, líder o programador.
2.- Menos propenso a fallos esto si esta debidamente encapsulado y con un manejo de errores adecuado.
3.-Permite la reutilización de procesos, acciones, métodos etc.

Para no tirar tanto rollo y ser mas específico solo manejare los conceptos y su definición, para cualquier aclaración duda, sugerencia u otro, por favor consultar el google o la wikipedia.

Fundamentos.
  • Encapsulación: forma de guardar los datos, meterlos en una caja(Clase, class), que solo se vean los métodos expuestos(public), con esto ocultamos el funcionamiento de la clase y solo permitimos ver y manupular los metodos publicos.
  • Herencia: es la forma de poder crear nuevas clases en base de otras. Métodos, propiedades, eventos, etc.
  • Polimorfismo: es la forma de utilizar un método idéntico(Firma) en una clase con una implementación diferente, Por ejemplo escribimos un método en una clase con un funcionamiento y lo sobre-escribimos en otra, no confundir con la sobrecarga de métodos. Polimorfismo Wikipedia, Microsoft.

La Clase es la definición de un objeto o contenedor de datos, algunos le llaman abtracción, yo lo veo como la forma de pasar lo real al código, analizas alguna cosa(objeto) creas un segmento de código llamado con el, le defines métodos, propiedades, eventos (acciones) y listo(Ojo para cada lenguaje trae su forma, semántica). La clase es el objetivo de esta forma de programación, por lo que veremos clases y mas clases durante todo el tiempo.
Para que una clase tome vida es necesario Instanciarla(declarar, en si que tome un espacio de memoria y pueda ser manipulada).

Interfaces, representan un contrato, hace que las clases implementen métodos, propiedades o eventos declarados en ella, unifica y ayuda a la utilización del polimorfismo y al uso genérico de la programación. Las interfaces no se implementa código solo se declara.


martes, 1 de septiembre de 2009

Clases y Objetos

Una clase es un plano que se puede usar para crear objetos.
Un objeto es una instancia de una clase, esto quiere decir cuando el programa toma vida y puede ejecutar sus metodos, accesar a sus propiedades y eventos. Si la clase es un plano un objeto es lo que se crea de este.
El ejemplo común un Casa, la definición sería la casa en si y sus especificaciones como el color, el alto, el área.

Campos: miembros de una clase y representan los de un objeto o clase.
Propiedades: miembros de la clase que proveen acceso a los elementos de un objeto o clase.
Métodos: miembros de la clase que definen las acciones que el objeto o clase puede ejecutar.
Eventos: Acciones que responden a determinadas acciones de la clase.

Los tipos de propiedades pueden ser de lectura, escritura o ambas. En C# para definir el acceso se usa el get{} y el set{} .

Lectura - Escritura : get y set
Lectura: get
Escritura: set

Ejemplo de una clase.

public class BankAccount
{
private string _name;
private decimal _balance;
private decimal _maximumAllowableWithdrawal;

public string Name
{
get { return _name; }
set { _name = value; }
}

public decimal Balance
{
get { return _balance; }
}

public decimal MaximumAllowableWithdrawal
{
set { _maximumAllowableWithdrawal = value; }
}
}

Definiendo constructores.

Un constructor es un método que el CLR invoca automáticamente cuando tu creas un objeto.
  • Un constructor no debe especificar un valor de retorno, pero si puede tener parámetros.
  • Puedes definir varios constructores con diferentes parámetros
  • Los constructores se declaran con acceso publico.
  • Generalmente en los constructores se inicializan algunos o todos los campos.