Anda di halaman 1dari 7

La programacin 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 programacin estructurada, que consiste en descomponer el
problema objeto de resolucin en subproblemas y ms subproblemas hasta llegar
a acciones muy simples y fciles de codificar
La programacin orientada a objetos es otra forma de descomponer problemas.
Este nuevo mtodo de descomposicin es la descomposicin en objetos; vamos a
fijarnos no en lo que hay que hacer en el problema, sino en cul es el escenario
real del mismo, y vamos a intentar simular ese escenario en nuestro programa.
En el caso de los lenguajes orientados a objetos
como es el caso de C++ y Java, el elemento bsico no es la funcin, sino un ente
denominado precisamente objeto. Un objeto es la representacin en un programa
de un concepto, y contiene toda la informacin necesaria para abstraerlo: datos
que describen sus atributos y operaciones que pueden realizarse sobre los
mismos.
.NET es un framework de Microsoft que hace un nfasis en la transparencia
de redes, con independencia de plataforma de hardware y que permita un rpido
desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una
estrategia horizontal que integre todos sus productos, desde el sistema
operativo hasta las herramientas de mercado.
.NET podra considerarse una respuesta de Microsoft al creciente mercado de los
negocios en entornos Web, como competencia a la plataforma Java de Oracle
Corporation y a los diversos framework de desarrollo web basados en PHP. Su
propuesta es ofrecer una manera rpida y econmica, a la vez que segura y
robusta, de desarrollar aplicaciones o como la misma plataforma las denomina,
soluciones permitiendo una integracin ms rpida y gil entre empresas y un
acceso ms simple y universal a todo tipo de informacin desde cualquier tipo de
dispositivo.
La palabra inglesa "framework" (infraestructura, armazn, marco) 1 define, en
trminos generales, un conjunto estandarizado de conceptos, prcticas y criterios

para enfocar un tipo de problemtica particular que sirve como referencia, para
enfrentar y resolver nuevos problemas de ndole similar.
En el desarrollo de software, un framework o infraestructura digital, es una
estructura conceptual y tecnolgica de soporte definido, normalmente con
artefactos o mdulos concretos de software, que puede servir de base para la
organizacin y desarrollo de software. Tpicamente, puede incluir soporte
deprogramas, bibliotecas, y un lenguaje interpretado, entre otras herramientas,
para as ayudar a desarrollar y unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de
las entidades del dominio, y provee una estructura y una especial metodologa de
trabajo, la cual extiende o utiliza las aplicaciones del dominio

C# es un lenguaje de programacin que se ha diseado para compilar diversas


aplicaciones que se ejecutan en .NET Framework. C# es simple, eficaz, con
seguridad de tipos y orientado a objetos. Las numerosas innovaciones de C#
permiten desarrollar aplicaciones rpidamente y mantener la expresividad y
elegancia de los lenguajes de estilo de C.

Atributos
Los atributos son las caractersiticas individuales que diferencian un objeto de otro
y determinan su apariencia, estado u otras cualidades. Los atributos se guardan
en variables denominadas de instancia, y cada objeto particular puede tener
valores distintos para estas variables.
Las variables de instancia tambin denominados miembros dato, son declaradas
en la clase pero sus valores son fijados y cambiados en el objeto.
Adems de las variables de instancia hay variables de clase, las cuales se aplican
a la clase y a todas sus instancias. Por ejemplo, el nmero de ruedas de un
automvil es el mismo cuatro, para todos los automviles.
Funcin (Programacin).
En computacin, una subrutina o subprograma (tambin llamada procedimiento,
funcin o rutina), como idea general, se presenta como un subalgoritmo que forma

parte del algoritmo principal, el cual permite resolver una tarea especfica.
Algunos lenguajes de programacin, como Visual Basic.NET o Fortran, utilizan el
nombre funcin para referirse a subrutinas que devuelven un valor.
Desde un punto de vista prctico, podemos decir que una funcin es una parte de
un programa (subrutina) con un nombre, que puede ser invocada (llamada a
ejecucin) desde otras partes tantas veces como se desee. Un bloque
de cdigo que puede ser ejecutado como una unidad funcional. Opcionalmente
puede recibir valores; se ejecuta y puede devolver un valor. Desde el punto de
vista de la organizacin, podemos decir que una funcin es algo que permite un
cierto orden en una maraa de algoritmos.
Las funciones son la parte central de la programacin. Algunos lenguajes, como
Pascal, distinguen entre procedimientos ("Procedures") y funciones. En C++ las
funciones desempean ambos papeles, aunque en cierto modo, los ficheros
desempean algunas funcionalidades de lo que, en otros lenguajes como Modula2, se denominan mdulos. Otra diferencia substancial es que C++ no permite el
anidamiento de funciones, es decir, definir funciones dentro de otras. En C++
todas las funciones se definen a nivel de fichero, con lo que tienen mbito global al
fichero.
Existe una excepcin a esta regla; se refiere a las funciones miembro de las
clases, que pueden ser declaradas y definidas dentro de las propias clases.
Aunque las clases no son por supuesto funciones en el sentido estricto, si
representan cierta compartimentacin de datos y procedimientos (un tipo de
"mdulos").

En la programacin, un mtodo
es una subrutina cuyo cdigo es definido en una clase y puede pertenecer tanto a
una clase, como es el caso de losmtodos de clase o estticos, como a
un objeto, como es el caso de los mtodos de instancia. Anlogamente a los
procedimientos en lenguajes imperativos, un mtodo consiste generalmente de
una serie de sentencias para llevar a cabo una accin, un juego de parmetros de
entrada que regularn dicha accin o, posiblemente, un valor de salida (o valor de
retorno) de algn tipo.
La diferencia entre un procedimiento (generalmente llamado funcin si devuelve
un valor) y un mtodo es que ste ltimo, al estar asociado con un objeto o clase
en particular, puede acceder y modificar los datos privados del objeto

correspondiente de forma tal que sea consistente con el comportamiento deseado


para el mismo. As, es recomendable entender a un mtodo no como una
secuencia de instrucciones sino como la forma en que el objeto es til (el mtodo
para hacer su trabajo). Por lo tanto, podemos considerar al mtodo como el pedido
a un objeto para que realice una tarea determinada o como la va para enviar un
mensaje al objeto y que ste reaccione acorde a dicho mensaje.

Un objeto
no es ms que un conjunto de variables (o datos) y mtodos (o funciones)
relacionados entre s. Los objetos en programacin se usan para modelar objetos
o entidades del mundo real (el objeto hijo, madre, o farmacutica, por ejemplo). Un
objeto es, por tanto, la representacin en un programa de un concepto, y contiene
toda la informacin necesaria para abstraerlo: datos que describen sus atributos y
operaciones que pueden realizarse sobre los mismos. La siguiente figura muestra
una representacin visual de un objeto.

Clase
Normalmente en el mundo real existen varios objetos de un mismo tipo, o como
diremos enseguida, de una misma clase. Por ejemplo, mi bicicleta es una de las
muchas bicicletas que existen en el mundo. Usando la terminologa de la
programacin orientada a objetos, diremos que mi bicicleta es una instancia de la
clase de objetos conocida como bicicletas. Todas las bicicletas tienen algunos
estados o atributos (color, marcha actual, cadencia actual, dos ruedas) y algunos
mtodos (cambiar de marcha, frenar) en comn. Sin embargo, el estado particular
de cada bicicleta es independiente del estado de las dems bicicletas. La
particularizacin de estos atributos puede ser diferente. Es decir, una bicicleta
podr ser azul, y otra roja, pero ambas tienen en comn el hecho de tener una
variable color. De este modo podemos definir una plantilla de variables y
mtodos para todas las bicicletas. Las plantillas para crear objetos son
denominadas clases. Una clase es una plantilla que define las variables y los
mtodos que son comunes para todos los objetos de un cierto tipo.

Encapsulamiento

En programacin modular, y ms especficamente en programacin orientada a


objetos, se denomina Encapsulamiento al ocultamiento del estado, es decir, de
los datos miembro de un objeto de manera que slo se pueda cambiar mediante
las operaciones definidas para ese objeto.
Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera
se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los
datos asociados de un objeto contra su modificacin por quien no tenga derecho a
acceder a ellos, eliminando efectos secundarios e interacciones.
De esta forma el usuario de la clase puede obviar la implementacin de los
mtodos y propiedades para concentrarse slo en cmo usarlos. Por otro lado se
evita que el usuario pueda cambiar su estado de maneras imprevistas e
incontroladas.

La abstraccin encarada desde el punto de vista de la programacin orientada a


objetos expresa las caractersticas esenciales de un objeto, las cuales distinguen
al objeto de los dems. Adems de distinguir entre los objetos provee lmites
conceptuales. Entonces se puede decir que la encapsulacin separa las
caractersticas esenciales de las no esenciales dentro de un objeto. Si un objeto
tiene ms caractersticas de las necesarias los mismos resultarn difciles de usar,
modificar, construir y comprender sobre todo cuando es un mtodo de nmero
entero con terminacin fraccionaria.
La misma genera una ilusin de simplicidad dado a que minimiza la cantidad de
caractersticas que definen a un objeto.
Durante aos, los programadores se han dedicado a construir aplicaciones muy
parecidas que resolvan una y otra vez los mismos problemas. Para conseguir que
sus esfuerzos pudiesen ser utilizados por otras personas se cre la POO que
consiste en una serie de normas para garantizar la interoperabilidad entre usuarios
de manera que el cdigo se pueda reutilizar.
La modularidad es, en programacin modular y ms especficamente
en programacin orientada a objetos, la propiedad que permite subdividir una
aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales

debe ser tan independiente como sea posible de la aplicacin en s y de las


restantes partes.
Estos mdulos que se puedan compilar por separado, pero que tienen conexiones
con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la
Modularidad de diversas formas. La modularidad debe seguir los conceptos de
acoplamiento y cohesin.
Segn Bertrand Meyer: El acto de particionar un programa en componentes
individuales para reducir su complejidad en algn grado A pesar de particionar
un programa es til por esta razn, una justificacin ms poderosa para particionar
un programa es que crea una serie de lmites bien definidos y documentados en el
programa. Estos lmites, o interfaces, son muy valiosos en la comprensin del
programa.1
Por su parte Brbara Liskov establece que la modularizacin consiste en dividir
un programa en mdulos que pueden ser compilados de forma separada, pero
que tienen conexiones con otros mdulos

Herencia
En programacin orientada a objetos, la herencia es, despus de la agregacin o
composicin, el mecanismo ms utilizado para alcanzar algunos de los objetivos
ms preciados en el desarrollo de software como lo son la reutilizacin y la
extensibilidad. A travs de ella los diseadores pueden crear nuevas clases
partiendo de una clase o de una jerarqua de clases preexistente (ya comprobadas
y verificadas) evitando con ello el rediseo, la modificacin y verificacin de la
parte ya implementada. La herencia facilita la creacin de objetos a partir de otros
ya existentes e implica que una subclase obtiene todo el comportamiento
(mtodos) y eventualmente los atributos (variables) de su superclase.
Es la relacin entre una clase general y otra clase ms especfica. Por ejemplo: Si
declaramos una clase prrafo derivada de una clase texto, todos los mtodos y
variables asociadas con la clase texto, son automticamente heredados por la
subclase prrafo.
La herencia es uno de los mecanismos de los lenguajes de programacin
orientada a objetos basados en clases, por medio del cual una clase se deriva de

otra de manera que extiende su funcionalidad. La clase de la que se hereda se


suele denominar clase base, clase padre, superclase, clase ancestro (el
vocabulario que se utiliza suele depender en gran medida del lenguaje de
programacin).
En los lenguajes que cuentan con un sistema de tipos fuerte y estrictamente
restrictivo con el tipo de datos de las variables, la herencia suele ser un requisito
fundamental para poder emplear el Polimorfismo, al igual que un mecanismo que
permita decidir en tiempo de ejecucin qu mtodo debe invocarse en respuesta a
la recepcin de un mensaje, conocido como enlace tardo (late binding) o enlace
dinmico (dynamic binding).

polimorfismo
En programacin orientada a objetos, el polimorfismo se refiere a la propiedad por
la
que
es
posible
enviar
mensajes
sintcticamente
iguales
a objetos detipos distintos. El nico requisito que deben cumplir los objetos que se
utilizan de manera polimrfica es saber responder al mensaje que se les enva.
La apariencia del cdigo puede ser muy diferente dependiendo del lenguaje que
se utilice, ms all de las obvias diferencias sintcticas.
Por ejemplo, en un lenguaje de programacin que cuenta con un sistema de
tipos dinmico (en los que las variables pueden contener datos de cualquier tipo u
objetos de cualquier clase) como Smalltalk no se requiere que los objetos que se
utilizan de modo polimrfico sean parte de una jerarqua de clases.

Anda mungkin juga menyukai