Programación Orientada a Objetos en .NET con C# (1ª parte)

24. September 2008 17:24 by Oscar.SS in Desarrollo .NET, Formación  //  Tags: ,   //   Comments (0)

1. Introducción


¿Qué es un objeto?

Antesde nada deberíamos comenzar por saber que es un objeto para un lenguajede programación y que es un objeto para los lenguajes de la plataforma.NET.

En la vida real es muy fácil determinarque es un objeto. Por ejemplo cojamos un objeto cualquiera, unmartillo. Ahora pasemos a describir o explicar que es un martillo paraalguien que no sabe lo que es.

“Un martilloes una herramienta con un mango alargado (comúnmente de madera) con unacabeza pesada (comúnmente de metal) en su extremo, que se utiliza paradeformar o desplazar otros objetos”.

Seguroque álguien se está preguntando…¿Qué tiene que ver esto con laprogramación?. Pues bien, la respuesta es todo. En seguida lo vemos.

Prestemosatención a la definición que hemos dado de este objeto. Primeramentehemos mencionado a que “familia” pertenece este objeto.

“Un martillo es una herramienta…”

Seguido hemos descrito dos características o atributos del objeto.

“…con un mango alargado (comúnmente de madera) con una cabeza pesada (comúnmente de metal) en su extremo …”

A continuación hemos comentado cual es su función.

“…que se utiliza para deformar o desplazar otros objetos.”

Precisamenteesto es un objeto para un lenguaje de programación. Un fragmento decódigo (o bloque) fácilmente identificable que dispone de atributos ymétodos (o funciones).

¿Quieres másejemplos?. Supongamos que estas diseñando una aplicación de tipoadministrativo que actualiza los datos de una empresa. Esta empresaseguramente tiene empleados y clientes. Ambos, empleados y clientes,pueden ser objetos en nuestro código y en ambos podemos definir atributos (nombre, apellidos, dirección, teléfono, etc) y métodos(entrar y salir del trabajo, hacer pedidos, darse de alta como cliente,etc).

¿Otro ejemplo?. Hablemos ahora de unaaplicación bancaria. Una cuenta de ahorros puede ser un objeto ennuestro código con atributos (nombre de cliente, número de cuenta,saldo, tipo de interés, etc) y con métodos (ingreso, reintegro, mostrarsaldo actual, etc)

En el ejemplo del martillovimos también que pertenecía a una familia de objetos, la familia delas herramientas. Este concepto tiene que ver con la herencia, locomentaremos más adelante.

Por el momento es suficiente con tener la idea básica de que los objetos disponen de atributos y métodos.

 

¿Qué es un lenguaje orientado a objetos?

Ahoraque ya tenemos claro (más o menos) que es un objeto para un lenguaje deprogramación, parece lógico responder a esta pregunta.

Seconsidera que un lenguaje está totalmente orientado a objetos cuando escapaz de soportar las siguientes cualidades; encapsulación, herencia, ypolimorfismo.

Daremos brevemente una pequeñaintroducción de estos conceptos para que el lector comience afamiliarizarse con ellos. En los siguiente artículos profundizaremostodo lo posible en ellos por tratarse del pilar de la programaciónorientada a objetos.

- Encapsulamiento.Esta cualidad permite agrupar en un mismo bloque de código losatributos (que contendrán los datos) y los métodos (que manipularánestos datos).

- Herencia.Es la cualidad que permite que un objeto derive de otro implementandotoda su funcionabilidad, es decir, adquiriendo todas los atributos ymétodos del objeto base.

- Polimorfismo.Posiblemente esta cualidad es la más difícil de entender y de explicar.Por el momento basta con decir que permite que varios objetos distintostengan la misma funcionabilidad (atributos y métodos).

 

¿Qué es esto de la abstracción de datos?

Supongoque hasta ahora todo lo dicho es un poco confuso. Sobre todo si es laprimera vez que el lector se enfrenta con estos conceptos que sonbastante abstractos.

No hay que desesperar,al principio cuesta bastante pero poco a poco, el lector seacostumbrará a esta manera de pensar que no deja de ser un ejercicio deabstracción.

¿Por qué abstracción?. Es unaforma de coger los datos reales de la vida cotidiana e implementarlosen líneas de código. Por ejemplo, un coche es un objeto tangible en lavida real, se puede tocar, conducir, etc. Pero en el mundo de loslenguajes de programación es algo intangible.

Enalgunos libros, se refieren a la “abstracción de datos” como a laposibilidad de acceder a los datos de un objeto sin importarnos comoestén internamente implementados en el objeto.

Personalmenteopino que este tipo de definiciones no ayudan en nada a la comprensiónde la programación orientada a objetos. Por lo menos a mi no meayudaron. Por lo tanto, en la medida de lo posible intentaremosevitarlas en este estudio.

Seamos prácticos,de momento es suficiente con que el lector, sobre todo los que vienende lenguajes procedurales (o secuenciales), cambien el chip y comiencena pensar que la vida real puede ser representada por objetos deprogramación. Nuestro axioma es que…¡¡todo son objetos!!

En el siguiente artículo trataremos la encapsulación a fondo.

Recent Comments

Comment RSS

Month List