Programación orientada a objetos (introducción).
Es importante conocer la diferencia que existe entre programación orientada a objetos y un lenguaje orientado
a objetos. La programación orientada a objetos es una “filosofía”, un modelo de programación, con su teoría y
su metodología, que conviene conocer y estudiar antes incluso de trabajar con un lenguaje de programación.
Un lenguaje orientado a objetos es un lenguaje de programación que permite el diseño de aplicaciones
orientadas a objetos. Dicho esto, lo normal es que toda persona que vaya a desarrollar aplicaciones
orientadas a objetos aprenda primero la “filosofía” orientada objetos y después el lenguaje de programación,
porque “filosofía” sólo hay una y lenguajes hay muchos.
La programación orientada a objetos surge en la historia como un intento para dominar la complejidad que, de
forma innata, posee el software. Tradicionalmente, la forma de enfrentarse a esta complejidad ha sido
empleando lo que llamamos programación estructurada, que como sabemos consiste en descomponer el
problema objeto de resolución en subproblemas y más subproblemas hasta llegar a acciones muy simples y
fáciles de codificar.
La programación orientada a objetos es otra forma de descomponer problemas. Este nuevo método de
descomposición consiste en descomponer un problema en objetos; centrándose no en lo que hay que hacer
en el problema, sino en cuál es el escenario real del mismo, e intentando simular ese escenario en el
programa.
Elementos y Características de la POO.
Clases y objetos.
Los términos clase y objeto se utilizan a veces indistintamente, pero de hecho, las clases describen
los tipos de objetos, mientras que los objetos son utilizables mediante instancias de clases. Por lo tanto, se
llama a la acción de crear un objeto creación de instancias. Con la analogía de plano, una clase es un plano y
un objeto es un edificio construido a partir de ese plano.
Una clase es una plantilla que define las variables y los métodos que son comunes para todos los objetos de
un cierto tipo.
class Plano
{
}
Plano edificio = new Plano();
Propiedades.
Las propiedades son las características intrínsecas de los objeto. Éstas, se representan a modo de variables,
solo que técnicamente, pasan a denominarse propiedades.
Métodos.
Los métodos (operaciones o servicios) describen el comportamiento asociado a un objeto. La ejecución de un
método puede conducir a cambiar el estado del objeto o dato local del objeto.
Eventos.
Un evento es una acción que un objeto reconoce, como hacer clic con el mouse (ratón) o presionar una tecla,
y para el que puede escribir código para responder. Los eventos se producen como consecuencia de una
acción del usuario o de código de programa, o bien pueden ser desencadenados por el sistema
Mensajes.
Un mensaje es una petición de un objeto a otro objeto al que le solicita ejecutar uno de sus métodos. Por
convenio, el objeto que envía la petición se denomina emisor y el objeto que recibe la petición se
denomina receptor.
Encapsulación.
El encapsulamiento o encapsulación es la propiedad que permite asegurar que el contenido de la información
de un objeto esta oculta del mundo exterior: el objeto A no conoce lo que hace el objeto B, y viceversa.
Herencia.
Una de las herramientas disponibles en lenguajes orientados a objetos más potente es la herencia. Esta
propiedad permite a los objetos ser construidos a partir de otros objetos. El objetivo final es
la reutilizabilidad o reutilización, es decir, reutilizar código anteriormente ya desarrollado.
La herencia supone una clase base y una jerarquía de clases que contiene las clases derivadas de la clase
base. Las clases derivadas pueden heredar el código y los datos de su clase base, añadiendo su propio
código especial y datos a ellas, incluso cambiar aquellos elementos de la clase base que necesita sean
diferentes.
Polimorfismo.
Es la propiedad que indica, literalmente, la posibilidad de que una entidad tome muchas formas. En términos
prácticos, el polimorfismo permite referirse a objetos de clases diferentes mediante el mismo elemento de
programa y realizar la misma operación de diferentes formas, según sea el objeto que se referencia en ese
momento.
Introducción a C#.
Durante la época de los años ochenta y noventa (1980-2000), C y C++ han sido los lenguajes elegidos para
desarrollar aplicaciones comerciales y de negocios. Estos lenguajes proporcionan un altísimo grado de control
al programador permitiéndole el uso de punteros y muchas funciones de bajo nivel. Sin embargo cuando
comparamos lenguajes como Microsoft Visual Basic con C/C++, nos daremos cuenta de que aunque C y C++
son lenguajes muchos más potentes, se necesita mucho más tiempo para desarrollar una aplicación con ellos.
Muchos programadores de C/C++ temían a la idea de cambiar a lenguajes como Visual Basic porque podrían
perder gran parte del control de bajo nivel al que estaban acostumbrados.
Lo que la comunidad de programadores necesitaba era un lenguaje que estuviera entre los dos; un lenguaje
que ayudara a desarrollar aplicaciones rápidas pero que también permitiese un gran control y un lenguaje que
se integrase bien con el desarrollo de aplicaciones Web, XML (Lenguaje de Marcado Extensible) y muchas de
las tecnologías emergentes.
Facilitar la transición para los programadores de C/C++y proporcionar a la vez un lenguaje sencillo para los
programadores inexpertos son solo dos de las ventajas del nuevo lenguaje C#. Microsoft presentó el nuevo
lenguaje C# al público en la Professional Developer Conference en Orlando, Florida en el verano del año
2000.
C# combina las mejores ideas de lenguajes como C, C++ y Java con las mejoras de productividad de .NET
Framework de Microsoft y brinda una experiencia de codificación muy productiva tanto para los nuevos
programadores como para los ya veteranos.