ORIENTADA A OBJETOS

 Programaci贸n orientada a objetos馃槚

 

¿Qu茅 es la Programaci贸n Orientada a Objetos?


La Programaci贸n Orientada a Objetos (POO) es un paradigma de programaci贸n, es decir, un modelo o un estilo de programaci贸n
 que nos da unas gu铆as sobre c贸mo trabajar con 茅l. Se basa en el concepto de clases y objetos.
 Este tipo de programaci贸n se utiliza para estructurar un programa de software en piezas simples y reutilizables de planos de c贸digo

 (clases) para crear instancias individuales de objetos. Con el paradigma de Programaci贸n Orientado a Objetos lo que buscamos es dejar de centrarnos en la l贸gica pura de los programas, para empezar a pensar en objetos, lo que constituye la base de este paradigma. Esto nos ayuda much铆simo en sistemas grandes, ya que en vez de pensar en funciones, pensamos en las relaciones o interacciones de los diferentes componentes del sistema.

Un programador dise帽a un programa de software organizando piezas de informaci贸n y comportamientos relacionados en una plantilla llamada clase. Luego, se crean objetos individuales a partir de la plantilla de clase. Todo el programa de software se ejecuta haciendo que varios objetos interact煤en entre s铆 para crear un programa m谩s grande.




HISTORIA DE POO

Podemos considerar como inicio del paradigma de Programaci贸n Orientada a Objetos (Object Oriented Programming) el lenguaje de programaci贸n Simula desarrollado por Kristen Nygaard y Ole-Johan Dahl en la mitad de los a帽os 60 en el Centro de Computaci贸n Noruego (The Norwegian Computing Center). Simula se defini贸 como un lenguaje de programaci贸n orientado a la simulaci贸n de procesos, con el que se pod铆an definir distintos tipos de actividades. En este lenguaje aparecen por primera vez los conceptos de clases y objetos.

¿Por qu茅 POO?

La Programaci贸n Orientada a objetos permite que el c贸digo sea reutilizable, organizado y f谩cil de mantener. Sigue el principio de desarrollo de software utilizado por muchos programadores DRY (Don´t Repeat Yourself), para evitar duplicar  el c贸digo y crear de esta manera programas eficientes. Adem谩s, evita el acceso no deseado a los datos o la exposici贸n de c贸digo propietario mediante la encapsulaci贸n y la abstracci贸n, de la que hablaremos en detalle m谩s adelante.

Clases, objetos e instancias

Una clase es una plantilla que va a definir las caracter铆sticas y compartimientos de los datos o m茅todos. A partir de ah铆 se podr谩 definir las entidades (datos) ya que una clase se considera como un molde.

Un objeto se trata de un entre abstracto, que permite separar los diferentes componentes del programa, reduciendo as铆 su elaboraci贸n, depuraci贸n y posteriores mensajes.

Programaci贸n Orientada a Objetos 
  • La encapsulaci贸n

Es una manera o mecanismo el cual permite o sirve para reunir los datos o m茅todos dentro de una estructura, ocultando la funci贸n del objeto, en otras palabras impidiendo el acceso a los datos por cualquier medio que no sean los servicios propuestos.
 
  • La abstracci贸n
Son como las caracter铆sticas especificas de un objeto, que son aquellas que los distinguen de los dem谩s tipos de objetos y que logran definir limites a quien esta haciendo dicha abstracci贸n del objeto 

  • La herencia

La herencia facilita la creaci贸n de objetos a partir de otros objetos o clases ya existentes , es as铆 como permite que una subclase obtenga todos los comportamientos y atributos de la superclase o clase padre.

  • El polimorfismo
Es la capacidad que tienen ciertos lenguajes para hacer o invocar al mismo m茅todo desde distintos objetos, cada uno de los objetos pueden reaccionar de forma distinta 

  • Modularidad 
Se divide en diferentes m贸dulos en un programa para que puedan copilarse por separado, pero aun tendr谩n conexi贸n con otros m贸dulos.

Beneficios de Programaci贸n Orientada a Objetos

  • Reutilizaci贸n del c贸digo.
  • Convierte cosas complejas en estructuras simples reproducibles.
  • Evita la duplicaci贸n de c贸digo.
  • Permite trabajar en equipo gracias al encapsulamiento ya que minimiza la posibilidad de duplicar funciones cuando varias personas trabajan sobre un mismo objeto al mismo tiempo.
  • Al estar la clase bien estructurada permite la correcci贸n de errores en varios lugares del c贸digo.
  • Protege la informaci贸n a trav茅s de la encapsulaci贸n, ya que solo se puede acceder a los datos del objeto a trav茅s de propiedades y m茅todos privados.
  • La abstracci贸n nos permite construir sistemas m谩s complejos y de una forma m谩s sencilla y organizada.


DESVENTAJAS DE PROGRAMACI脫N ORIENTADA A OBJETOS 
  • La duraci贸n de los programas desarrollados utilizando lenguaje OOP es mucho mayor que el enfoque procedimental. Dado que el programa aumenta de tama帽o, requiere m谩s tiempo para ejecutarse, lo que conduce a una ejecuci贸n m谩s lenta del programa.
  • No podemos aplicar la POO en todas partes ya que no es un lenguaje universal. Se aplica solo cuando se requiere. No es adecuado para todo tipo de problemas.
  • Los programadores deben tener habilidades de dise帽o y programaci贸n brillantes junto con una planificaci贸n adecuada porque usar OOP es un poco complicado.
  • Los POO toman tiempo para acostumbrarse. El proceso de pensamiento involucrado en la programaci贸n orientada a objetos puede no ser natural para algunas personas.
  • Todo se trata como un objeto en POO, por lo que antes de aplicarlo debemos tener un pensamiento excelente en t茅rminos de objeto

C++

A C++ primero se le conoci贸 como “C con clases”. Luego se cambi贸 a C++ que significa “incremento de C”, dando a entender que se trata de una extensi贸n del lenguaje de programaci贸n C.



CARACTERISTICAS

Compatibilidad con bibliotecas: A trav茅s de bibliotecas hay muchas funciones que est谩n disponible y que ayudan a escribir c贸digo r谩pidamente.

Orientado a Objetos: El foco de la programaci贸n est谩 en los objetos y la manipulaci贸n y configuraci贸n de sus distintos par谩metros o propiedades.

Rapidez: La compilaci贸n y ejecuci贸n de un programa en C++ es mucho m谩s r谩pida que en la mayor铆a de lenguajes de programaci贸n.

Compilaci贸n: En C++ es necesario compilar el c贸digo de bajo nivel antes de ejecutarse, algo que no ocurre en otros lenguajes.

Punteros: Los punteros del lenguaje C, tambi茅n est谩n disponibles en C++.

Did谩ctico: Aprendiendo programaci贸n en C++ luego es mucho m谩s f谩cil aprender lenguajes como Java, C#, PHP, Javascript, etc.

VENTAJAS

  • Alto rendimiento: el alto rendimiento que ofrece. Esto es debido a que puede hacer llamadas directas al sistema operativo, es un lenguaje compilado para cada plataforma, posee gran variedad de par谩metros de optimizaci贸n y se integra de forma directa con el lenguaje ensamblador.
  • Lenguaje actualizado: A pesar de que ya tiene muchos a帽os, el lenguaje se ha ido actualizando, permitiendo crear, relacionar y operar con datos complejos y ha implementado m煤ltiples patrones de dise帽o.
  • Multiplataforma
  • Extendido: C y C++ est谩n muy extendidos. Casi cualquier programa o sistema est谩n escritos o tienen alguna parte 

DESVENTAJAS
tiene que tener una compilaci贸n por plataforma y su depuraci贸n se complica debido a los errores que surgen. Adem谩s el manejo de librer铆as es m谩s complicado que otros lenguajes como Java o .Net y su curva de aprendizaje muy alta. 

IDE (ENTORNO DE DESARROLLO INTEGRADO)
· Emplea el compilador MinGW.
· Se trata de un software libre, sencillo y f谩cil de usar, ligero y eficiente, para la plataforma Windows.
· Es perfecto para comenzar a programar en C++.


JAVA 

el logotipo de Java representaba una taza de caf茅 azul con vapor rojo encima. El s铆mbolo fue un tributo a los desarrolladores de Java, que bebieron mucho caf茅 mientras trabajaban en el lenguaje. Como era principalmente caf茅 de los granos de caf茅 de Java, el nombre y el s铆mbolo se eligieron lo suficientemente r谩pido.

La marca denominativa roja en todas las may煤sculas se coloc贸 debajo del emblema. La inscripci贸n «Java» presentaba su primera letra ampliada y estaba ejecutada en un tipo de letra serif cl谩sico con elegante serif y l铆neas claras y definidas.


CARACTERISTICAS

  •  ORIENTADO A OBJETOS
  •  DISTRIBUIDO
  •  ROBUSTO
  • ARQUITECTURA NEUTRAL
  •  SEGURO
  •  PORTABLE
  •  INTERPRETADO
  • MULTITHREADED
  • DINAMICO
VENTAJAS 

1. Tiene una curva de aprendizaje corta

2. Est谩 orientado a los objetos

3. Es multiplataforma

4. Cuenta con liberaci贸n de memoria

5. Es compatible con librer铆as est谩ndar y editores

6. Ofrece una gesti贸n de error

7. Brinda la posibilidad de crear aplicaciones distribuidas

8. Es seguro

9. Es econ贸mico

10. Admite subprocesos m煤ltiples

11. Tiene una compilaci贸n de c贸digos seguro

12. Es un lenguaje de c贸digo abierto

DESVENTAJAS

1. Es de lenguaje Interpretado

2. Requiere de experiencia en programaci贸n

3. Es de sintaxis compleja

4. Es dependiente

5. Se ejecuta solo en dispositivos y equipos aptos

6. Sus opciones 3D son limitadas

7. No cuenta con una funci贸n de copia de seguridad

8. Requiere un espacio de memoria significativo

9. Sus marcos de trabajo carecen de una apariencia de interfaz gr谩fica de usuario

10. Sus c贸digos escritos son detallados

IDE 

Los IDE de Java son herramientas eficientes que ayudan a sus desarrolladores a producir c贸digo de calidad para el desarrollo de software. No solo agilizan el proceso general de desarrollo de software, sino que tambi茅n le ofrecen muchos beneficios.


Visual Basic
El lenguaje de programaci贸n Visual Basic fue desarrollado por Alan Cooper; un programador Estadounidense. La primera publicaci贸n, la versi贸n 1.0  fu茅 presentada  en 1991, luego entre este a帽o y 1998  se publicaron las versiones 2.0,  3.0, 4.0,  5.0 y  6.0
CARACTERISTICAS
  • Visual Basic est谩 orientado a los objetos.
  • Los programas de Visual Basic son conducidos por eventos.
  • El c贸digo de Visual Basic est谩 «orientado a la familia»
  • Dise帽ador de formularios WYSIWYG.
  • Agregar c贸digos a cada objeto.
VENTAJAS 

  • Es uno de los lenguajes m谩s utilizados, as铆 que es muy sencillo encontrar informaci贸n, documentaci贸n y fuentes para los proyectos.
  • Tiene acceso a casi toda la API de Windows y puede usar la plataforma de sistemas Windows.
  • A帽ade soporte para ejecutar scripts en las aplicaciones con VBScript o JScript, gracias a Microsoft Script Control.7.
  • Al ser de Windows, integra su dise帽o e implementaci贸n de formularios.
DESVENTAJAS 

  • En sus librer铆as Runtime.dll, tiene problemas de versionado.
  • Pese a ser una programaci贸n orientada a objetos, tiene un soporte escaso.
  • Para crear aplicaciones multihilo, es necesario realizar llamadas a la API de Windows.
IDE 
  • La forma de dise帽o.

  • El explorador de proyectos.

  • La caja de herramientas.

  • La ventana Dise帽o de formulario.

  • La ventana Propiedades.

  • La barra de herramientas.

  • La barra de men煤.

 


Conclusi贸n

La Programaci贸n Orientada a Objetos es actualmente el paradigma que m谩s se utiliza para dise帽ar aplicaciones y programas inform谩ticos. Son muchas sus ventajas, principalmente cuando necesitas resolver desaf铆os de programaci贸n complejos. Permite una mejor estructura de datos y reutilizaci贸n del c贸digo, lo que facilita el ahorro de tiempo a largo plazo. Eso s铆, para ello se requiere pensar bien en la estructura del programa, planificar al comienzo de la codificaci贸n, as铆 como analizar los requisitos en clases simples y reutilizables que se pueden usar para dise帽ar instancias de objetos. 

No hay comentarios.:

Publicar un comentario

PSEINT

EJEMPLOS ORIENTADA A OBJETOS  https://programacionylenguajes789.blogspot.com/p/orientada-objetos.html  crear un programa que muestre una pal...