Está en la página 1de 7

Unidad 1 Programación Orientada a Objetos

1.1 introducción
1.1.1 paradigma y metodología
La POO es un paradigma de programación (o técnica de programación) que utiliza objetos
e interacciones en el diseño de un sistema.
Este paradigma se basa en dividir el programa en pequeñas unidades lógicas de código. A
estas pequeñas unidades lógicas de código se les llama objetos. También proporciona
conceptos y herramientas con las cuales se modela y representa el mundo real tan
fielmente como sea posible.
La programación orientada a objetos tomó posición como la metodología 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.

1.2 CONCEPTOS BASICOS

1.2.1 Reutilización- el programador orientado a objetos modifica una funcionalidad del


programa existente sustituyendo elementos antiguos u objetos por nuevos objetos, o bien
conectando simplemente nuevos objetos en la publicación. Se puede reutilizar el código,
creando automáticamente una subclase y anulando alguno de sus métodos.

Muchos lenguajes orientados a objetos fomentan la reutilización mediante el uso de


bibliotecas robustas de clases pre construidas, así como otras herramientas como los
“browser”, para localizar clases de interés y depuradores para ayudar al programador.

1.2.2 Polimorfismo- es la propiedad que indica, literalmente, la posibilidad de que una


entidad tome muchas formas. El polimorfismo permite referirse a objetos de clases
diferentes mediante el mismo elemento de programa y realizar la misma operación de
diferentes formas. El polimorfismo requiere ligadura tardía o postergada, y esto solo se
puede producir en lenguajes de programación orientada a objetos.

1.2.3 Genericidad- las clases parametrizadas (mediante plantillas) sirven para soportar un
alto grado de reutilización. Estos elementos genéricos se diseñan con parámetros
formales, que se instanciaran con parámetros reales, para crear instancias de módulos que
se compilan y enlazan, y ejecutan posteriormente.

1.2.7 clase- una clase es la descripción de un conjunto de objetos, consta de métodos y


datos que resumen características comunes de un conjunto de objetos. Una clase es la
declaración de un tipo de objeto.

1.2.8 objeto- es una instancia de una clase. Son tipos abstractos de datos, al que se
añaden importantes innovaciones en compartición de código y reutilización.

1.2.10 robustez- capacidad de los productos de software de funcionar incluso en


situaciones anormales.
1.3 lenguajes orientados a objetos

1.3.1 Características de los POO

La programación orientada a objetos es una forma de programar que trata de encontrar


una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían
conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Encapsulamiento- es la propiedad que permite asegurar que el contenido de la


información de un objeto esta oculta al mundo exterior. La encapsulación permite la
división de un programa en módulos.

Modularidad- es la propiedad que permite subdividir una aplicación en partes más


pequeñas, llamadas módulos, cada una de las cuales debe ser independiente de la
aplicación y de los demás módulos.

Abstracción- es la propiedad que permite representar las características esenciales de un


objeto.

Herencia- 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. 

Método- Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se


desencadena tras la recepción de un "mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio
en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para
otro objeto del sistema.

Atributos- Características que tiene la clase.

Mensaje- Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus
métodos con ciertos parámetros asociados al evento que lo generó.
1.3.2 Historia de los POO

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. En este centro se trabajaba en simulaciones de
naves, que fueron confundidas por la explosión combinatoria de cómo las diversas
cualidades de diferentes naves podían afectar unas a las otras. La idea surgió al agrupar los
diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de
objetos de definir sus propios datos y comportamientos. Fueron refinados más tarde
en Smalltalk, desarrollado en Simula en Xerox PARC (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 "sobre la marcha" (en tiempo de ejecución) en lugar
de tener un sistema basado en programas estáticos.

La programación orientada a objetos se fue convirtiendo en 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 y 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 en la capacidad de
mantenimiento del código. Los lenguajes orientados a objetos "puros", por su 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 modificado; soporta una orientación completa a objetos, cumpliendo todas
las características propias de la orientación a objetos.
1.3.3 Comparación de los POO más populares.

Tipado estático: Mejorar la legibilidad y permite al compilador detectar errores, mucho


antes de que puedan convertirse en un problema de tiempo de ejecución; esto ahorra
tiempo de desarrollo, ahorra dinero y rendimiento al momento de producir código más
confiable.
Tipado dinámico: Existe cuando una misma variable puede tomar valores de distinto tipo
en distintos momentos.

C ++: Utiliza tipado estático, sin embargo soporta el estilo de C "casts"


Java: Utiliza tipado estático en la mayoría de los casos, aunque en algunas estructuras
requiere de tipado dinámico.
Eiffel: Utiliza tipado estático en todo momento.
SmallTalk: Utiliza tipado dinámico.

Compilación de tecnología: La compilación es necesaria para la eficiencia en tiempo de


ejecución, la interpretación de eficiencia y rendimiento.

C ++: Compilado generalmente sin problemas.


Java: No se puede decir que Java pueda compilar el código con un máximo de eficiencia, y
aprovechar los beneficios en cuanto a velocidad de código máquina nativo. Aunque los
compiladores cada vez son más avanzados, no todas las librerías de Java tienen asociado
un código máquina equivalente que utilizar.
Eiffel: Combinación de interpretación y compilación en el mismo entorno.
SmallTalk: Históricamente intérprete basado, en la mezcla de interpretación y compilación.

Eficiencia de código generado:


C++: Genera ejecutables rápido.
Java: Ampliamente informado de problemas de rendimiento.
Eiffel: Genera ejecutables rápido.
SmallTalk: Los ejecutables requieren una imagen de SmallTalk.

Manejo de excepciones: Es una estructura de control diseñada para manejar condiciones


anormales que pueden ser tratadas por el mismo programa que se desarrolla.

 C++: Posee manejo de excepciones


Java: Posee manejo de excepciones
Eiffel: Posee manejo de excepciones
SmallTalk: Posee manejo de excepciones.

Característica Java Smalltalk C++


Sencillez Sí Sí No
Robustez Sí Sí No
Seguridad Sí Algo No
Interpretado Sí Sí No
Dinamicidad Sí Sí No
Portabilidad Sí Algo No
Neutralidad Sí Algo No
Garbage Colection Sí Sí No
Excepciones Sí Sí Algunas
Representación Alta Media Alta

1.3.4 Lenguaje JAVA-

Java es un lenguaje de programación y la primera plataforma informática creada por Sun


Microsystems en 1995. Es la tecnología subyacente que permite el uso de programas
punteros, como herramientas, juegos y aplicaciones de negocios.

Es un lenguaje de programación de propósito general, concurrente, orientado a


objetos y basado en clases que fue diseñado específicamente para tener tan pocas
dependencias de implementación como fuera posible. Su intención es permitir que
los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en
cualquier dispositivo, lo que quiere decir que el código que es ejecutado en una
plataforma no tiene que ser recompilado para correr en otra. 

El lenguaje Java se creó con cinco objetivos principales:

 Debería usar el paradigma de la programación orientada a objetos.


 Debería permitir la ejecución de un mismo programa en múltiples sistemas
operativos.
 Debería incluir por defecto soporte para trabajo en red.
 Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
 Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos,
como C++.

1.3.5 Compilación y ejecución de programas en JAVA

La compilación de un archivo de código fuente .java se realiza a través del


comando javac.exedel JDK. Si se ha establecido correctamente la variable de entorno
Path, javac podrá ser invocado desde el directorio en el que se encuentre el archivo .java.
Tras ejecutar este comando, se generarán tantos archivos .class como clases existan en el
código fuente.
Ejecución. Para hacer esto utilizamos el comando java.exe, seguido del nombre de la clase
que contiene el método main ().
Es necesario que la variable de entorno CLASSPATH esté correctamente configurada e
incluya el carácter " . " (Directorio actual) en la lista de direcciones, lo que permitirá
invocar al comando java desde el directorio en el que se encuentra el .class. 

1.3.6 Documentación del API

El  API (Interfaz de Programación de Aplicaciones o Application Programming Interface)  de


Java representa una librería de Java extensiva. Estas librerías son escritas cuidadosamente,
son robustas y están probadas exitosamente.

La documentación del API de Java es generada por la herramienta Javadoc. Javadoc


produce un conjunto de páginas HTML a partir de los comentarios Javadoc de un archivo
fuente de Java.
Los comentarios Javadoc documentan las clases, variables y métodos de una aplicación.
Utilizaremos comentarios Javadoc en nuestro código fuente para que la documentación de
nuestras aplicaciones cuente con la misma organización y formato que el API de Java.
Como el lenguaje Java es un Lenguaje Orientado a Objetos, la API de Java provee de un
conjunto de clases utilitarias para efectuar toda clase de tareas necesarias dentro de un
programa.

La API Java está organizada en paquetes lógicos, donde cada paquete contiene un


conjunto de clases relacionadas semánticamente.

1.3.7 Estructura de un archivo

Un archivo de programación java consta de los siguientes ítems:

1- Definición de librerías requeridas para su funcionamiento a través de la palabra


reservada import.
2- Definición de paquete de aplicación, utilizado en aplicaciones profesionales, se usa la
palabra package.
3- Definición de la estructura de clase, palabras class.
-dentro de la clase se definen variables.
-dentro de la clase se definen los métodos.

También podría gustarte