Sandramarcela’s Weblog

Just another WordPress.com weblog

CONCEPTO PROGRAMACION ORIENTADA A OBJETOS julio 21, 2008

Filed under: Uncategorized — sandramarcela @ 10:07 pm

1.Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo. Al parecer, en este centro, trabajaban en simulaciones de naves, y fueron confundidos por la explosión combinatoria de cómo las diversas cualidades de diversas naves podían afectar unas a las otras. La idea ocurrió para agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamiento. Fueron refinados más tarde en Smalltalk, que fue desarrollado en Simula en Xerox PARC (y cuya primera versión fue escrita sobre Basic) pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar “en marcha” en lugar de tener un sistema basado en programas estáticos.

 

 

La programación orientada a objetos

Filed under: Uncategorized — sandramarcela @ 10:06 pm

 tomó posición como el estilo de programación dominante a mediados de los años ochenta, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.

 

Las características de orientación a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, entre otros. La adición de estas características a los lenguajes que no fueron diseñados inicialmente para ellas condujo a menudo a problemas de compatibilidad y a la capacidad de mantenimiento del código. Los lenguajes orientados a objetos “puros”, por otra parte, carecían de las características de las cuales muchos programadores habían venido a depender. Para saltar este obstáculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en métodos orientados a objetos, pero permitiendo algunas características imperativas de maneras “seguras”. El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparición de Internet, y a la implementación de la máquina virtual de Java en la mayoría de navegadores. PHP en su versión 5 se ha ido modificando y soporta una orientación completa a objetos, cumpliendo todas las características propias de la orientación a objetos.[1]

 

 

programación orientada a objetos

Filed under: Uncategorized — sandramarcela @ 10:04 pm

2.El concepto de (OOP) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella. Dado que la OOP. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una característica fundamental del mismo.

El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.

Esta definición especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bién estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica o de otro tipo.[2]

 

 

programacion orientada a objetos

Filed under: Uncategorized — sandramarcela @ 10:03 pm

3.término de Programación Orientada a Objetos indica más una forma de diseño y una metodología de desarrollo de software que un lenguaje de programación, ya que en realidad se puede aplicar el Diseño Orientado a Objetos (En inglés abreviado OOD, Object Oriented Design), a cualquier tipo de lenguaje de programación.

El desarrollo de la OOP empieza a destacar durante la década de lo 80 tomando en cuenta la programación estructurada, a la que engloba y dotando al programador de nuevos elementos para el análisis y desarrollo de software.

 

El propósito de este trabajo es explicar el diseño orientado a objeto y no una explicación de su programación, puesto que no nos alcanzaría toda la currícula para hacerlo.

 

Básicamente la OOP permite a los programadores escribir software, de forma que esté organizado en la misma manera que el problema que trata de modelizar. Los lenguajes de programación convencionales son poco más que una lista de acciones a realizar sobre un conjunto de datos en una determinada secuencia. Si en algún punto del programa modificamos la estructura de los datos o la acción realizada sobre ellos, el programa cambia.

 

La OOP aporta un enfoque nuevo, convirtiendo la estructura de datos en el centro sobre el que pivotan las operaciones. De esta forma, cualquier modificación de la estructura de datos tiene efecto inmediato sobre las acciones a realizar sobre ella, siendo esta una de la diferencias radicales respecto a la programación estructurada.

 

Para quienes no están familiarizados con la programación estructurada diré que una de las bases de esta escuela de programación parte del diseño arriba – abajo. En esta forma de diseño se descomponen los requerimientos del programa paso a paso, hasta llegar a un nivel que permite expresarlos mediante procedimientos y funciones. La OOP estructura los datos en objetos que pueden almacenar, manipular y combinar información.

 

En resumen, la programación estructurada presta atención al conjunto de acciones que manipulan el flujo de datos (desde la situación inicial a la final), mientras que la programación orientada a objetos presta atención a la interrelación que existe entre los datos y las acciones a realizar con ellos.

 

Muchos habrán oído comentarios sobre la incidencia de la OOP sobre la programación convencional. Se ha llegado a decir que el cambio introducido por la OOP es similar al producido por la aparición del ensamblador sobre el código de máquina.[3]

 

 

CARACTERISTICAS

Filed under: Uncategorized — sandramarcela @ 10:02 pm

 

Hay un cierto desacuerdo sobre exactamente qué características de un método de programación o lenguaje le definen como “orientado a objetos”, pero hay un consenso general en que las características siguientes son las más importantes (para más información, seguir los enlaces respectivos):

 

Abstracción: Cada objeto en el sistema sirve como modelo de un “agente” abstracto que puede realizar trabajo, informar y cambiar su estado, y “comunicarse” con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.

Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.

Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en “tiempo de ejecución”, esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en “tiempo de compilación”) de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple. [4]

 

 

LENGUAJES ORIENTADOS A OBJETOS

Filed under: Uncategorized — sandramarcela @ 10:01 pm

 

Entre los lenguajes orientados a objetos se destacan los siguientes:

 

ABAP

ActionScript

ActionScript 3

Ada

C++

C#

Clarion

Lenguaje de programación D

Object Pascal (Delphi)

Harbour

Eiffel

Java

JavaScript (la herencia se realiza por medio de la programación basada en prototipos)

Lexico (en castellano)

Objective-C

Ocaml

Oz

Lenguaje de programación R

Perl (soporta herencia múltiple. La resolución se realiza en preorden, pero puede modificarse al algoritmo C3 por medio del módulo Class::C3 en CPAN)

PHP (en su versión 5)

Python

Ruby

Smalltalk

Magik (SmallWorld)

VB.NET

Visual FoxPro (en su versión 6)

Visual Basic

XBase++

Gambas

Flex builder (adobe) [5]

 

 

QUE ES UNA CLASE

Filed under: Uncategorized — sandramarcela @ 10:00 pm

 

1.Una clase es una descripción de un grupo de objetos con:

Propiedades en común (atributos)

Comportamiento similar (operaciones)

La misma forma de relacionarse con otros objetos (relaciones)

Una semántica en común (significan lo mismo)

Una clase es una abstracción que:

Enfatiza las características relevantes

Suprime otras características (simplificación)

Un objeto es una instancia de una clase.

 

2. Las clases son declaraciones o abstracciones de objetos, lo que significa, que una clase es la definición de un objeto. Cuando se programa un objeto y se definen sus características y funcionalidades, realmente se programa una clase.

 

Una clase es un contenedor de uno o más datos (variables o propiedades miembro) junto a las operaciones de manipulación de dichos datos (funciones/métodos). Las clases pueden definirse como estructuras (struct), uniones (union) o clases (class) pudiendo existir diferencias entre cada una de las definiciones según el lenguaje.

 

La sintaxis típica de una clase es:

 

class Nombre {

    // Variables miembro (habitualmente privadas)

    miembro_1; //lista de miembros

    miembro_2;

    miembro_3;

 

    // Funciones o métodos (habitualmente públicas)

    funcion_miembro_1( ); // funciones miembro conocidas

    funcion_miembro_2 ( ); // funciones como métodos

 

    // Propiedades (habitualmente públicas)

    propiedad_1;

    propiedad_2;

    propiedad_3;

    propiedad_4;

}