Está en la página 1de 8

Programacin orientada a objetos.

La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un paradigma de programacin que usa objetos y sus interacciones, para disear aplicaciones y programas informticos. Est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y encapsulamiento. Su uso se populariz a principios de la dcada de los aos 1990. En la actualidad, existe variedad de lenguajes de programacin que soportan la orientacin a objetos.

Conceptos fundamentales.
La programacin orientada a objetos es una forma de programar que trata de encontrar una solucin a estos problemas. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas. Definicin de clase: Antes de que un programa pueda crear objetos de cualquier clase, sta debe ser definida. La definicin de una clase significa que se debe dar a la misma un nombre, dar nombre tambin a los elementos que almacenan sus datos y describir los mtodos que realizarn las acciones consideradas en los objetos. Herencia: (por ejemplo, herencia de la clase C a la clase D) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos mtodos y variables pblicas declaradas en C. Los componentes registrados como "privados" (prvate) tambin se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y slo pueden ser accedidos a travs de otros mtodos pblicos. Esto es as para mantener hegemnico el ideal de OOP. Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (mtodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase. Mtodo: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en las propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema. Evento: Es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir como evento, a la reaccin que puede desencadenar un objeto, es decir la accin que genera. Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener.

Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus caractersticas predeterminadas, y cuyo valor puede ser alterado por la ejecucin de algn mtodo. Estado interno: es una variable que se declara privada, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase. Componentes de un objeto: atributos, identidad, relaciones y mtodos. Identificacin de un objeto: un objeto se representa por medio de una tabla o entidad que est compuesta por sus atributos y funciones correspondientes.

En comparacin con un lenguaje imperativo, una "variable", no es ms que un contenedor interno del atributo del objeto o de un estado interno, as como la "funcin" es un procedimiento interno del mtodo del objeto.

La Mquina Virtual de Java (JVM, Java Virtual Machine) La mquina virtual de Java se denomina al procesador o entorno virtual que se utiliza para interpretar los bytecodes de los binarios de Java, ya que como sabemos Java se hizo para correr en cualquier plataforma sin recompilar los binarios. De esta manera este entorno virtual se puede obtener para nuestra arquitectura y sistema operativo sin modificaciones a nuestro programa original (esto no es cierto si utilizamos una mala dinmica de programacin). Podemos entonces generar un binario y este podr Correr en Linux, MAC OSX, FreeBSD, Solaris, o Windows, y para las arquitecturas disponibles en las que podamos obtener la JVM, como ser AMD64, SPARC, PIV, etc. etc. La mquina virtual de Java ha tenido la caracterstica de ser un entorno de ejecucin pesado en trminos de recursos del procesador y memoria, que por medio de una administracin rigurosa del sistema operativo estos podran llegar a ser insuficientes y las aplicaciones ejecutarse de manera muy lenta. Esto no es cierto en la actualidad, existen alternativas a la JVM provista por Sun Microsystems que permiten una velocidad comparable a una aplicacin compilada en C++ nativa en la arquitectura, un ejemplo de esto es Kaffe, Kaffe (www.kaffe.org) es una mquina de Java OpenSource que puede compilarse sin mayores modificaciones en nuestra arquitectura necesaria y correr increblemente ms rpida que la distribucin estndar de JVM de Sun Microsystems y consumir muchos menos recursos. Kit de desarrollo y Entorno de ejecucin (JDK, JRE) El Kit de desarrollo conocido como JDK (Java Development Kit) provee de un compilador, un mecanismo para comprimir un proyecto en un solo archivo de tipo JAR (que es compatible con ZIP) y un entorno de ejecucin para nuestros binarios. Cuando nuestro proyecto terminado se prepara para distribuir, no es necesario tener el compilador y la mayora de las herramientas que se proveen en el JDK, entonces podemos prescindir de dicho JDK y utilizar el entorno de ejecucin que es ms

pequeo en cuestiones slo de espacio en disco. Este JRE (Java Runtime Environment) tambin puede redistribuirse sin problemas de licencias. En las plataformas basadas en Linux, existen mejores herramientas de desarrollo y por supuesto en casi todas las distribuciones de Linux, se encuentra disponible Kit de desarrollo o JDK. As como recomendamos Kaffe como JVM para proyectos avanzados o de alto rendimiento, recomendamos Jikes como compilador de byteCodes para Java, Jikes no es interpretado como el compilador proporcionado en el JDK de Sun Microsystems. Comandos que inician el JDK, JRE Java: Inicia el entorno de ejecucin recibiendo como argumento el nombre del binario ejecutable en formato ByteCodes sin la extensin de archivo .class que identifica de manera visual un binario java. Este comando es parte de JDK y JRE Javac: Inicia el compilador Java recibiendo como argumento todos los archivos de cdigo fuente cuya terminacin es .java incluida dicha extensin. Este comando no es parte de JRE. Jar: Por medio de este comando iniciamos el empaquetador de clases y archivos de Java que nos permiten fabricar un nico archivo contenedor de nuestras aplicaciones, multimedia y grficos. Este comando es parte slo de J

Tipo se datos bsicos y funciones: 8 tipos de datos primitivos o integrados:

- 4 tipos enteros (byte, short, int, long). - 2 tipos de coma flotante (float, double). - Booleano (boolean). - Carcter (char). No son objetos.

Se definen de forma (casi) idntica en cada mquina en la que se ejecuta Java, algo que no ocurre en otros lenguajes de programacin. Java es un lenguaje de programacin fuertemente tipado: - Cada variable debe tener un tipo declarado. Operadores aritmticos: Un operador es un smbolo especial que indica al compilador que debe efectuar una operacin matemtica o lgica. Java reconoce los siguientes operadores aritmticos: Operador Operacin + Suma - Resta

* Multiplicacin / Divisin % Residuo o Mdulo Operadores relacionales: Permiten comparar variables segn relacin de igualdad/desigualdad o relacin mayor/menor. Devuelven siempre un valor boolean. '>': Mayor que '<': Menor que '==': Iguales '=': Distintos '>=': Mayor o igual que '<=': Menor o igual que Operadores Lgicos: Nos permiten construir expresiones lgicas. '&&' : devuelve true si ambos operandos son true. '||' : devuelve true si alguno de los operandos son true. '!' : Niega el operando que se le pasa. '&' : devuelve true si ambos operandos son true, evalundolos ambos. '|' : devuelve true uno de los operandos es true, evalundolos ambos. Operadores de asignacin: Sirve para asignar valores a las variables. Variable = valor;

Introduccin al Lenguaje JAVA

1. Historia de JAVA A finales de los aos ochenta Sun Microsystems decide introducirse en el mercado de la electrnica de consumo y ms concretamente en los equipos domsticos, incluyendo la televisin interactiva. Java, nace como un lenguaje ideado en sus comienzos para programar electrodomsticos! En sus primeras versiones, se llam OAK. 2. Objetivos de diseo de los creadores de JAVA LENGUAJE FAMILIAR: Java no sera un lenguaje totalmente nuevo, se parecera a lo que conocemos como C++, as que no le sera tan complicado recalar en los programadores escpticos. LENGUAJE ORIENTADO A OBJETOS: Para que un lenguaje pueda considerarse orientado a objetos debe soportar como mnimo las caractersticas de: - encapsulacin - herencia - polimorfismo - enlace dinmico. LENGUAJE ROBUSTO: Uno de los problemas ms comunes en los lenguajes de programacin es la posibilidad de escribir programas que pueden bloquear el sistema. Algunas veces este bloqueo puede ser inmediato, pero en otras ocasiones llega a aparecer inesperadamente porque, por ejemplo, la aplicacin accede a zonas de memoria que no estaban siendo ocupadas por otros programas hasta ese momento. Un ejemplo claro de lenguaje no robusto es C. Al escribir cdigo en C o C++ el programador debe hacerse cargo de la gestin de memoria de una forma explcita, solicitando la asignacin de bloques a punteros y liberndolos cuando ya no son necesarios. En Java, los punteros, la aritmtica de punteros y las funciones de asignacin y liberacin de memoria (malloc ( ) y free ( )) no existen. En lugar de los punteros se emplean referencias a objetos, los cuales son identificadores simblicos. El gestor de memoria de Java lleva una contabilidad de las referencias a los objetos. Cuando ya no existe una referencia a un objeto, ste se convierte en candidato para la recogida de basura (garbage collection). LENGUAJE DE ALTO RENDIMIENTO (MLTIPLES THREADS): Una de las caractersticas del lenguaje es que soporta la concurrencia a travs de threads. En ocasiones puede interesarnos dividir una aplicacin en varios flujos de control independientes, cada uno de los cuales lleva a cabo sus funciones de manera

concurrente. Cuando los distintos flujos de control comparten un mismo espacio lgico de direcciones, se denominan threads. LENGUAJE PORTABLE: El principal objetivo de los diseadores de Java, y dado el gran crecimiento de las redes en los ltimos aos, fue el de desarrollar un lenguaje cuyas aplicaciones una vez compiladas pudiesen ser inmediatamente ejecutables en cualquier mquina y sobre cualquier sistema operativo. Por ejemplo, un programa desarrollado en Java en una estacin de trabajo Sun que emplea el sistema operativo Solaris, debera poderse llevar a un PC que utilice sistema operativo Windows NT. LENGUAJE LO MS SIMPLE POSIBLE: Los diseadores de Java trataron de mantener las facilidades bsicas del lenguaje en un mnimo y proporcionar un gran nmero de extras con las libreras de clases. LENGUAJE SEGURO: Se pretenda construir un lenguaje de programacin que fuese seguro, esto es, que no pudiera acceder a los recursos del sistema de manera incontrolada. Por este motivo se elimin la posibilidad de manipular la memoria mediante el uso de punteros y la capacidad de transformacin de nmeros en direcciones de memoria ( tal y como se hace en C ) evitando as todo acceso ilegal a la memoria. Esto se asegura porque el compilador Java efecta una verificacin sistemtica de conversiones. 3. Lo nuevo en JAVA La gran novedad que aporta Java dentro de las nuevas generaciones de navegadores es la capacidad de desplazar el control de la interactividad de los servidores hacia las mquinas de los usuarios que se utilizan para recorrer Internet. Por la misma estructura del lenguaje, los nuevos navegadores permiten la telecarga de "applets", pequeos fragmentos de programas compactos, precompilados, que pueden entonces interpretar de modo distinto los datos telecargados para producir por ejemplo animaciones, sonido y especialmente la verdadera interactividad. El lenguaje Java, visto desde un navegador de Internet, es pues un lenguaje que no es ni totalmente interpretado, ni totalmente compilado. El lenguaje se transforma en un cdigo elemental parecido al ensamblador, llamado tambin p-code o byte-code. Posee la particularidad de ser compacto y por tanto puede ser compilado (traducido a lenguaje mquina) muy rpidamente, en el transcurso de la propia ejecucin del programa. El p-code constituye una capa intermedia que facilita enormemente la portabilidad de un entorno o de una mquina a otra. La facilita hasta el punto de lograrla desaparecer. Aparece entonces la "mquina virtual". Una mquina virtual es una capa lgica que hace creer al programa Java que se ejecuta en un ordenador real (con registros, memoria y procesador), cuando en realidad slo ve una reconstruccin lgica de un ordenador.

Para ejecutar un programa Java compilado (que est en p-code), es preciso tambin que cuente con una implementacin de la mquina virtual especfica donde se desea ejecutar, la cual efecta la transformacin del p-code en un programa comprensible para la mquina.

REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION SUPERIOR INSTITUTO UNIVERSITARIO DE TECNOLOGIA VENEZUELA EXTENSION MATURIN

INTEGRANTES: CARLOS ROJAS, COD. 3000699 ALBIS AGUILERA, COD.3000701

30 de abril de 2012