Sie sind auf Seite 1von 43

Programacin I

Ing. Reneria Garca Bermdez

UNIDAD I: LA POO Y EL LENGUAJE DE PROGRAMACION JAVA 1.1 Introduccin a la POO. 1.1.1. Que es programacin orientada a objetos (POO). 1.1.2. Historia de la POO. 1.1.3. Concepto de Objeto y Clase. 1.1.4. Abstraccin. 1.1.5. Encapsulamiento. 1.1.6. Herencia. 1.1.7. Polimorfismo.

1.1 INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS 1.1.1. Que es programacin orientada a objetos (POO). La programacin Orientada a objetos (POO) es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real que otros tipos de programacin. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en trminos de objetos, propiedades, mtodos y otras cosas que veremos rpidamente para aclarar conceptos y dar una pequea base que permita soltarnos un poco con este tipo de programacin. Cmo definira con sus propias palabras POO?

Motivacin Durante aos, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvan una y otra vez los mismos problemas. Para conseguir que los esfuerzos de los programadores puedan ser utilizados por otras personas se cre la POO. Que es una serie de normas de realizar las cosas de manera que otras personas puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el cdigo se pueda reutilizar. La POO no es difcil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede ser diferente segn el programador. Aunque podamos hacer los programas de formas distintas, no todas ellas son correctas, lo difcil no es programar orientado a objetos sino
Ing. En Sistemas 1

Programacin I

Ing. Reneria Garca Bermdez

programar bien. Programar bien es importante porque as nos podemos aprovechar de todas las ventajas de la POO. Cmo se piensa en objetos Pensar en trminos de objetos es muy parecido a cmo lo haramos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. Diramos que el coche es el elemento principal que tiene una serie de caractersticas, como podran ser el color, el modelo o la marca. Adems tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar. En un esquema POO el coche sera el objeto, las propiedades seran las caractersticas como el color o el modelo y los mtodos seran las funcionalidades asociadas como ponerse en marcha o parar. Por poner otro ejemplo vamos a ver cmo modelizaramos en un esquema POO una fraccin, es decir, esa estructura matemtica que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2. La fraccin ser el objeto y tendr dos propiedades, el numerador y el denominador. Luego podra tener varios mtodos como simplificarse, sumarse con otra fraccin o nmero, restarse con otra fraccin, etc. Estos objetos se podrn utilizar en los programas, por ejemplo en un programa de matemticas hars uso de objetos fraccin y en un programa que gestione un taller de coches utilizars objetos coche. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos tambin son objetos. Es decir, el taller de coches ser un objeto que utilizar objetos coche, herramienta, mecnico, recambios, etc. Escriba un ejemplo sencillo adems de los planteados de POO

1.1.2 Historia de la POO Al mismo tiempo que se da la Crisis del Software, por otro lado la Orientacin a Objetos (OO) se empez a discutir a fines de los aos 60 con el desarrollo del lenguaje SIMULA67 por Nygaard y Ole-Johan Dahl en el Centro de Clculo Noruego, en l, introdujeron los conceptos de clase, subclases y rutinas, muy parecidos los conceptos a los lenguajes orientados a objetos de hoy en da. A mitad de la dcada de los 70 los cientficos del Centro de Investigaciones Palo Alto de XEROX (PARC) (XEROX Palo Alto Research Center) crearon el lenguaje SMALLTALK, el primer
Ing. En Sistemas 2

Programacin I

Ing. Reneria Garca Bermdez

lenguaje orientado a objetos consistente y completo. En l cada elemento del lenguaje fue realizado un objeto. Este ltimo lenguaje evolucion a travs de varios lanzamientos realizados por PARC. A pesar de este movimiento temprano hacia los lenguajes orientados a objetos, slo se lograron pequeas incursiones en la comunidad de la programacin general. El progreso reciente se ha acelerado debido principalmente a la disponibilidad de las extensiones orientadas a objetos para dos lenguajes populares: C y PASCAL, y a las extensiones prometidas para otros lenguajes comerciales populares como BASIC y COBOL. En sus comienzos la programacin de computadores era una tarea relegada prcticamente a los "genios" de la computacin de aquel entonces; hacer un programa para computador demandaba miles de horas de tiempo invertido y desde luego miles de miles o millones de lneas de cdigo para llevar a cabo una tarea determinada. Bien la programacin de ese entonces tena un estilo particular llamado hoy da programacin en spaghetti, se llama as porque todo el cdigo generalmente sigue una lnea secuencial desde la primera instruccin hasta la ltima, ocasionalmente hay saltos entre instrucciones, pero generalmente se regresa al punto donde se origin el salto... los lenguajes ms populares en ese entonces eran desde luego el ASM, el FORTRAN y el COBOL. Luego los programas se fueron haciendo ms grandes y complejos, as que las cosas se comenzaron a hacer dificiles de manejar (es decir an ms dificiles de manejar), all naci una nueva forma de programacin... una nueva metodologa, la programacin estructurada. Programacin Estructurada La solucin a tantos problemas fue bsicamente sencilla, agrupar el cdigo por funcionalidad de tal forma que cada funcionalidad pueda ser invocada tantas veces como se necesite, esto permiti reducir las lneas de cdigo necesarias para crear un programa ya que si existe una rutina compleja que poda ser en algn grado repetitiva, esta se coloca en una funcin que sea aplicable en uno o ms casos diferentes, veamos un ejemplo... Supongamos que tenemos un programa que controla las cuentas de un banco (imaginemos un banco pequeo), as que se ha creado un conjunto de programas para tal fin. Dentro de esos programas tenemos una seccin de programa que lo que hace es manejar los retiros que ha hecho el dueo de la cuenta, lo cual implica descontar un valor determinado de una cuenta y elaborar el registo contable correspondiente... imaginemos otra parte del cdigo de ese programa, un cliente paga su tarjeta de crdito as que otra vez el programa descuenta el valor de la cuenta del cliente, tambin elabora el registro contable correspondiente y adicionalmente hace otros registros y abonos a la cuenta de la tarjeta de crdito... Este tipo de cosas las tendra que hacer el programa miles de veces, una vez cada que se presente una transaccin en el banco.
Ing. En Sistemas 3

Programacin I

Ing. Reneria Garca Bermdez

En programacin spaguetti eso tomara miles de lneas como lo vimos anteriormente, ya que por cada transaccin se requiere volver a repetir las instrucciones para hacer lo correspondiente; en programacin estructurada esto ya no es necesario ya que habramos creado algunas funcionalidades que nos permiten invocarlas cuando las necesitemos, as solamente crearamos el cdigo para registrar el abono o el descuento de dinero de una cuenta, y otro cdigo para hacer registros contables, as que cada vez que los necesitemos simplemente colocamos una lnea de cdigo haciendo el llamado a la funcionalidad, y no repitiendo nuevamente todo el cdigo que hace parte de la misma. Pero los das de la programacin estructurada estaban contados, los programas siguieron creciendo, tener un cdigo altamente estructurado ya no ayudaba lo suficiente, pues la complejidad y magnitud de las cosas que se deben hacer aumentaba exponencialmente...

Y lleg la POO Cuando las cosas se hicieron demasiado complejas, fue necesario tomar decisiones radicales, cuando naci la programacin estructurada la solucin fue sencilla... demasiado sencilla, agrupar las cosas en funcionalidades... funcion y de hecho funciona tanto que si se hubiese deseado disminuir nuevamente la complejidad de los problemas de la programacin a gran escala simplemente se hubiesen creado niveles de agrupamiento de funcionalidades, algo como funcionalidades de funcionalidades, pero el problema se volvera a repetir entre ms grande fuera el software, as que hubo necesidad de cambiar las cosas de una manera ms profunda. La forma en que se hacan los programas era siempre orientada a la funcionalidad, es decir que haga lo que debe y que lo haga de la manera ms rpida, ocasionalmente y si era posible reutilizar el cdigo ya creado, los incidentes comenzaron a aparecer veamos una ejemplo, sigamos con el banco... Bien, el banco ha crecido un poco ms razn por la cual necesitan modernizar su sistema (hardware, programas etc...) se ponen en la labor de crear nuevos programas, como los requieren en el menor tiempo imposible dividieron su rea de desarrollo en varios grupos: uno que har toda la parte con cuentas corrientes, otro que funciona con cuentas de ahorro, y otro con tarjetas debito, otro con CDT etc. Para evitar algunos problemas definen una serie de estndares de nomenclatura y ese tipo de cosas. Tiempo despus los mdulos del programa ya estn casi listos as que se disponen a integrar todos esos programas en un programa nico, pero cuando iniciaron con eso paso algo inesperado... Los seores del grupo de cuentas de ahorros crearon unas funciones, se llaman debito y crdito, mientras tanto los seores del grupo de CDTs , los de tarjetas, los de cuenta corriente etc. crearon tambin todos funciones llamadas dbito y
Ing. En Sistemas 4

Programacin I

Ing. Reneria Garca Bermdez

crdito, pero todas hacen cosas diferentes cada una para su caso puntual... resultado de la operacin: hay que renombrar todas las funciones dbito crdito para que todas se llamen diferentes, cosa que todos los grupos... con desagrado decidieron acatar, todos excepto dos.

El grupo de cuentas de ahorro y el de tarjeta de crdito no pueden hacer el cambio de una manera tan sencilla ya que han utilizado unas libreras provistas por terceros y que ya desde hace tiempo interactan con u sistema de transacciones a nivel internacional que requiere que el software cumpla con una serie de lineamientos e interfaces de programacin, y para completar el problema parte de esas interfaces implican no solo es usar el nombre que ya usan en sus funciones sino que el nombre que se ha propuesto utilizar ya es usado para otros fines en dichas libreras integradas, etc As las cosas les tardara un poco de tiempo a los seores hacer los cambios que necesitan porque definitivamente el programa integrador no se puede crear si hay dos funciones con el mismo nombre dentro del paquete, imaginemos todas las variables que habrn quedado con nombres parecidos, sino es que iguales... en un programa tan enorme evitar esa situacin es algo muy complicado. Pero en POO las cosas habran sido diferentes, puesto que desde que se han creado los mdulos cada uno es un componente por separado y las funciones de los Sre del CDT serian accedidas algo as como:

CDT.debito CDT.crdito Las Ahorros.debito Ahorros.crdito Y as sucesivamente con cada uno de los mdulos, de hecho todos podran tener las mismas variables: a, b, c, d, e, f y no pasara absolutamente nada. Otro problema con el sistema estructurado es que si los seores de CDT tienen una funcin para encripcin nica que no debe ser usada por nadie ms... no hay garanta de que ms adelante los seores de tarjeta de crdito la usen, y pueden hacerlo por que hace parte del mismo programa enlazado, eso sera muy difcil sino imposible de evitar en programacin estructurada, pero en POO sera muy sencillo ya que le diramos a nuestra funcin que fuera de uso privado, es decir solo utilizable dentro del grupo de CDT.
Ing. En Sistemas 5

de

ahorros

serian:

Programacin I

Ing. Reneria Garca Bermdez

Segn el texto ledo sobre programacin estructura y POO explique de forma sencilla porque afirmara usted que la POO posee ms ventajas que la Programacin estructurada.

Paradigma de la Programacin Orientada a Objetos. Para aquel que no es un programador, Orientacin a Objetos significa algo bastante familiar: considerar al mundo como un conjunto de entidades u objetos que estn relacionados y se comunican entre ellos. Esta es la forma en que la gente normal ve el mundo, as es que este pensamiento tiene intrnsecamente sentido. La Orientacin a Objetos se basa en estas ideas: un programa es un mundo que representa un subconjunto del mundo real. La estructura del programa se simplifica en gran medida si cada una de las entidades u objetos del problema que se est modelando corresponde directamente con un objeto que se puede manipular internamente en un programa. Para el desarrollo de sistemas, la orientacin a objetos es un nivel de abstraccin de computadora ms all de los procedimientos y los datos. La orientacin a objetos anima al desarrollador de sistemas a concentrarse en los temas importantes e ignorar el resto a la hora de la modelacin. El hecho de que el tema central sean los objetos, aunque intuitivamente, marca una desviacin significativa de los anteriores paradigmas de la programacin. Una ecuacin para reconocer una aproximacin a la Orientacin a Objetos es:
ORIENTACIN_OBJETOS = CLASES Y OBJETOS + HERENCIA + COMUNICACIN CON MENSAJES

Ing. En Sistemas

Programacin I

Ing. Reneria Garca Bermdez

Todos los sistemas que merecen la descripcin de Orientado a Objetos contienen estos mecanismos esenciales, aunque los mecanismos pueden no estar realizados exactamente de la misma forma. Analicemos ahora los trminos de la ecuacin. 1.1.3 Conceptos de Objetos y Clase OBJETOS (Sinnimo de instancia). Es la abstraccin de alguna cosa en el dominio del problema que refleja la capacidad de un sistema de alcanzar informacin alrededor de l. Los objetos, por lo tanto, son entidades que tienen atributos (datos) y formas de comportamiento (procedimientos) particulares. Las aplicaciones pueden constar de diferentes clases de objetos. Un objeto pasivo es el que acta solamente bajo peticin. Los objetos activos efectan el seguimiento de los sucesos que ocurren en una aplicacin y actan de forma autnoma.

Un objeto consta de:

Tiempo de vida: La duracin de un objeto en un programa siempre est limitada en el tiempo. La mayora de los objetos slo existen durante una parte de la ejecucin del programa. Los objetos son creados mediante un mecanismo denominado instanciacin, y cuando dejan de existir se dice que son destruidos. Estado: Todo objeto posee un estado, definido por sus atributos. Con l se definen las propiedades del objeto, y el estado en que se encuentra en un momento determinado de su existencia. Comportamiento: Todo objeto ha de presentar una interfaz, definida por sus mtodos, para que el resto de objetos que componen los programas puedan interactuar con l.

Defina con sus propias palabras que es un objeto y las partes que este consta

CLASE. Una clase es una descripcin de un conjunto de objetos casi idnticos. Una clase consta de mtodos y datos que resumen las caractersticas comunes de los objetos, incluyendo una descripcin de cmo crear un nuevo objeto de la clase. En otras palabras, las clases contienen los anteproyectos para crear objetos. Redefiniendo un objeto. Un objeto es un modelo o instancia de una clase. Ejemplos de estos conceptos (utilizaremos un lenguaje ms fcil de entender para definirlos):

Ing. En Sistemas

Programacin I

Ing. Reneria Garca Bermdez

Una clase es un molde que define los datos y procedimientos que actan sobre esos datos y los objetos sern los elementos producidos por ese molde. Ejemplo 1: Consideremos cmo un programador podra designar una aplicacin de procesamiento de una posicin en el espacio en forma orientada a objetos.

Ing. En Sistemas

Programacin I

Ing. Reneria Garca Bermdez

Los objetos seran PuntoA, PuntoB donde tanto PuntoA como PuntoB tienen las caractersticas de posicin. Veamos ahora cmo sera la aplicacin con el sistema de los nmeros complejos en forma orientada a objetos.

Algunos objetos son p y q que por ser nmeros complejos son de la forma (real, imaginaria). Defina con sus propias palabras que es una clase

Descripcin del trmino herencia La herencia es un mecanismo para expresar similaridad entre clases, implificando definiciones de las clases similares previamente definidas. La herencia permite crear nuevas clases llamadas subclases agregando solamente las diferencias con la clase. En otras palabras la herencia es una particin en subclases ms especializadas. El principio en que se basa este concepto es de que las clases que se derivan de otra clase, comparten las caractersticas comunes de la clase de la que descienden. Ejemplo 1:

Ing. En Sistemas

Programacin I

Ing. Reneria Garca Bermdez

Ejemplo 1:

Ejemplo 2 Ejemplo 2: Para este ejemplo usaremos la clase publicacin.

Descripcin del trmino comunicacin con mensajes. Los objetos tienen la posibilidad de actuar, la accin sucede cuando un objeto recibe un mensaje, que es, una solicitud que pide al objeto que se comporte de alguna forma. Cuando se ejecutan los programas orientados a objetos, los objetos reciben, interpretan y responden a mensajes procedentes de otros objetos. Los mensajes pueden contener informacin para clasificar una solicitud. El objeto emisor del mensaje no necesita conocer la forma en que el objeto receptor est llevando a cabo la solicitud, solamente conoce que se est sucediendo. Los procedimientos residen en el objeto y determinan cmo acta el objeto cuando recibe un mensaje. De hecho, los mtodos proporcionan el nico mecanismo para cambiar los valores de las variables del objeto. (A este hecho se le conoce como encapsulamiento). Los mensajes que reciben el objeto son los nicos conductos que conectan al objeto con el mundo exterior. Estas caractersticas de los objetos confieren a la orientacin a objetos su ventaja: la orientacin a objetos fomenta la modularidad haciendo muy claras las fronteras entre objetos, explcita la comunicacin entre los mismo y oculta los detalles de la realizacin. En un programa con orientacin a objetos ocurren tres sucesos: 1) Se crean los objetos cuando se necesitan.
Ing. En Sistemas 10

Programacin I

Ing. Reneria Garca Bermdez

2) Los mensajes se mueven de un objeto a otro a medida que el programa procesa internamente informacin o responde a la entrada del usuarios. 3) Se borran los objetos cuando ya no son necesarios y se recupera memoria.

En base al ejemplo anterior escriba otro ejemplo donde represente al objeto, clase mtodo y herencia.

Caractersticas deseadas de la Programacin Orientada a Objetos Las caractersticas deseadas pueden variar y es difcil ponerse de acuerdo. 1. Principio de Abstraccin Datos Procedimientos 2. Encapsulamiento 3. Herencia Simple Mltiple 4. Comunicacin con mensajes 5. Polimorfismo Manejo automtico de memoria
Ing. En Sistemas 11

Programacin I

Ing. Reneria Garca Bermdez

Constructores Destructores Mtodos virtuales Sobreposicin de operadores Antes de ver cada uno de estos conceptos es importante mencionar que los ejemplos de los mismos se darn con seudo cdigo, por lo que daremos una idea de este concepto. El seudo cdigo se utiliza como una herramienta para estructurar el cdigo de un programa sin comprometerse con ningn lenguaje, pero que es posible que tenga alguna semejanza con el lenguaje a utilizar. En el seudo cdigo se utilizan palabras en nuestro lenguaje que son similares a las palabras utilizadas por los lenguajes de programacin. En realidad el seudo cdigo es muy similar a un algoritmo pero ms estructurado, ya que se le deben de dar sangras a la escritura de las instrucciones para hacerlo ms legible en la lectura. Iniciamos:

Principio de abstraccin Es el principio de ignorar los aspectos de un sujeto que no son relevantes en un propsito de orden de concentracin ms exacto. El proceso de representar entidades reales como elementos internos a un programa recibe el nombre de abstraccin. De esta forma, un tipo de dato abstracto se puede escribir concentrndose en las operaciones que manipulan a los objetos de este tipo, sin caer en detalles de representacin y manipulacin de datos. Datos. Es un atributo del objeto que representa cuantitativamente o cualitativamente a ese objeto. Procedimiento. Es una operacin que lleva a cabo un servicio a los atributos del objeto. Ejemplo 1: En el ejemplo de la posicin en el espacio se quiere representar en objetos, queremos abstraer esta parte del mundo real a un programa que pueda representarlos. Una posicin en el plano la determinan las coordenadas (x, y), que seran nuestros datos y los procedimientos que las manipulen pueden ser: iniciar posicin leer x leer y saluda Ejemplo 2: En el ejemplo de los nmeros complejos se tiene que stos son de la forma (real, imaginaria), donde real e imaginaria son nmeros reales, de lo que podemos intuir que los datos sean: real e imaginaria
Ing. En Sistemas 12

Programacin I

Ing. Reneria Garca Bermdez

Los atributos que manipulan estos datos pueden ser todos los operadores aritmticos (+, -, *, /) y los operadores de relacin ( =, < > ). Encapsulamiento (ocultamiento de datos). Se refiere al hecho de que ningn programador ni de ninguna otra parte de un programa se pueda tener acceso a los datos de un objeto en forma directa, sino a travs de los procedimientos del objeto. Ejemplo 1: En este ejemplo para leer cualquiera de las coordenadas no se puede directamente slo leyendo por separado las coordenadas con los procedimientos de lectura. Ejemplo 2: En el ejemplo de los nmeros complejos cada nmero complejo no se puede modificar a menos que sea con los operadores. Herencia. La herencia es un mecanismo que para expresar similaridad entre clases, simplificando definiciones de clases similares previamente detenidas. La herencia simple es cuando el lenguaje slo permite que una clase derive de una clase. La herencia mltiple es cuando una clase puede ser derivada de ms de una clase. Ejemplo 1. Herencia simple:

Ejemplo 2. Herencia Mltiple: (Multimedia)

Ing. En Sistemas 13

Programacin I

Ing. Reneria Garca Bermdez

Comunicacin con mensajes. Las variable de un objeto slo pueden ser manipuladas por sus propios mtodos. Es decir, los mensajes mandan una peticin de accin a un objeto, mientras que los mtodos del objeto deciden cmo llevar a cabo la accin. Ejemplo: En la definicin de posicin consta de los datos, coordenadas X e Y y los mtodos que inician y devuelven los valores X y Y. Procedimiento leer X Regresa valor de X Polimorfismo Es cuando una clase tiene varios procedimientos con el mismo nombre, pero con distinto tipo y/o nmero de argumentos. Ejemplo 1: Se puede tener ms de un procedimiento saluda en la clase posicin. a) Se puede tener un procedimiento procedimiento Saluda escribe "Hola soy posicin"; b) Se puede tener un procedimiento procedimiento Saluda (mensaje) escribe mensaje;

Manejo Automtico de Memoria. En el apartado de comunicacin con mensajes se menciona que en un programa con orientacin a objetos ocurren tres sucesos, dos de ellos nos interesan. El primer suceso dice: "Se crean los objetos cuando se necesitan." y el tercer suceso indica: "Se borran los objetos cuando ya no son necesarios y se recupera la memoria.". Estos sucesos se desarrollan con los constructores y destructores. Constructores Los constructores son procedimientos de la clase que permiten crear objetos. Un constructor es llamado para asignar memoria a un objeto, para asignar valores a los datos del objeto y realizar tareas iniciales para un nuevo objeto. Esto implique que si no podemos trabajar con un objeto que no haya sido creado a travs de un constructor y si slo se pueden modificar mediante los procedimientos de la clase NO TENEMOS FORMA DE CORROMPER EL OBJETO, lo cual aumenta la confiabilidad y facilita la rehusabilidad. Destructores Un destructor es un procedimiento de la clase que realiza la tarea opuesta a su constructor, libera la memoria que fue asignada al objeto que fue creado por el constructor. Es deseable que el destructor se invoque implcitamente cuando el objeto abandone el bloque donde fue declarado. El destructor le permite al programador despreocuparse de tener que liberar la memoria que deja de utilizar y correr el riesgo de que sta se sature.
Ing. En Sistemas 14

Programacin I

Ing. Reneria Garca Bermdez

Ejemplos: Normalmente en los lenguajes con orientacin a objetos el destructor como el constructor tienen el mismo nombre de la clase a la que pertenece. Ejemplo 1: Constructor iniciar (real 1, real 2) x = real 1 y = real 2 Destructor iniciar borra x borra y Mtodos Virtuales. Una jerarqua de clases unidas por la herencia, con nombres de mtodos comunes para operaciones que son similares conceptualmente, pero que realizan tareas diferentes. Como consecuencia, cuando diferentes objetos de las diferentes clases de la jerarqua reciben el mismo mensaje, ste provoca acciones totalmente distintas. Ejemplo: En el ejemplo 1, Posicin, Punto y Crculo pueden recibir cada uno el mensaje saluda y responder de distinta forma, los procedimientos seran: a) posicin saluda "Hola, soy posicin"; b) punto saluda "Hola, soy punto"; c) crculo saluda "Hola, soy crculo" Se puede hacer algo ms complejo como hacer procedimientos que mostrar el punto o mostrar el crculo. Sobreposicin de Operadores. Es una caracterstica de un lenguaje de programacin que permite que el mismo operador sea utilizado con tipos diferentes. Dicho de otra forma, si se tiene una aritmtica definida con ciertos operadores, sera deseable que permita utilizar la misma notacin para los nuevos tipos de operadores que se definan. Ejemplo: En el ejemplo 2 de nmeros complejos se tienen los operadores aritmticos un ejemplo de sobrecarga de operadores sera: complejos operador + (complejo,complejo) complejos operador *(complejo,complejo)

Con sus propias palabras defina una a una las caractersticas de la programacin Orientada a Objetos

Ing. En Sistemas 15

Programacin I

Ing. Reneria Garca Bermdez

Ing. En Sistemas 16

Programacin I Mapa Conceptual

Ing. Reneria Garca Bermdez

POO
Es Consta Consta
Abstraccin Paradigma programacin Objetos Clases Procedim ientos

Posee principios

Datos

Nueva forma de pensar

Poseen

Tiempo de Vida

Atributos

Encapsulamiento

Poseen
Estado Mtodos Herencia Mltiple Comunicacin con mensajes Simple

Comporta miento

Propiedades

Polimorfismo

Ing. En Sistemas 17

Programacin I

Ing. Reneria Garca Bermdez

Unidad I: 1.2 Elementos del Lenguaje 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 Historia de Java. Qu es Java? Caractersticas de Java. La Maquina Virtual de Java(JVM). Instalacin y configuracin del Java Development Kit (JDK) Edicin, compilacin y ejecucin de programas. Creacin y ejecucin de aplicaciones Creacin y ejecucin de Applets Errores de programacin. 1.2.9.1 Tipos de datos en Java. 1.2.9.2 Operadores y expresiones.

1.2.1 Historia de JAVA Java es un lenguaje de programacin orientado a objetos desarrollado por Sun Microsystems a principio de los aos 90s. En Diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclut a varios colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto conocido como "El proyecto verde". Con la ayuda de otros ingenieros, empezaron a trabajar en una pequea oficina en Sand Hill Road en Menlo Park, California. Y as interrumpi todas las comunicaciones regulares con Sun y trabaj sin descanso durante 18 meses. Intentaban desarrollar una nueva tecnologa para programar la siguiente generacin de dispositivos inteligentes, en los que Sun vea un campo nuevo a explorar. Crear un lenguaje de programacin fcil de aprender y de usar. En un principio se consideraba C++ como lenguaje a utilizar, pero tanto Gosling como Bill Joy lo encontraron inadecuado. Gosling intent primero extender y modificar C++ resultando el lenguaje C++ ++ - (++ - porque se aadan y eliminaban caractersticas a C++), pero lo abandon para crear un nuevo lenguaje desde cero al que llamo Oak (roble en ingls, segn la versin ms aceptada, por el roble que vea a travs de la ventana de su despacho). El resultado fue un lenguaje que tena similitudes con C, C++ y Objetive C y que no estaba ligado a un tipo de CPU concreta. Mas tarde, se cambiara el nombre de Oak a Java, por cuestiones de propiedad intelectural, al existir ya un lenguaje con el nombre de Oak. Se supone que le pusieron ese nombre mientras tomaban caf (Java es nombre de un tipo de caf, originario de Asia), aunque otros afirman que el nombre deriva de las siglas de James Gosling, Arthur Van Hoff, y Andy Bechtolsheim.
Ing. En Sistemas 18

Programacin I

Ing. Reneria Garca Bermdez

En Agosto de 1991 Oak ya corra sus primeros programas. Para 1992, el equipo ya haba desarrollado un sistema en un prototipo llamado Star7 (*7), dispositivo parecido a una PDA, cuyo nombre vena de la combinacin de teclas del telfono de la oficina del Proyecto Green que permita a los usuarios responder al telfono desde cualquier lugar. Por su parte, el presidente de la compaa Sun, Scott McNealy, se dio cuenta de forma oportuna y estableci el Proyecto Verde como una subsidiaria de Sun. Despus de mostrar a Scott McNealy y Bill Joy los prototipos de bajo nivel del sistema, continun con el desarrollo, incluyendo sistema operativo, Green OS; el lenguaje Oak, las libreras, alguna aplicacin bsica y el hardware, hasta que el 3 de septiembre de 1992 se termina el desarrollo y con ello el Proyecto Verde. De 1993 a 1994, el equipo de Naughton se lanz en busca de nuevas oportunidades en el mercado, mismas que se fueron dando mediante el sistema operativo base. La incipiente subsidiaria fracas en sus intentos de ganar una oferta con TimeWarner, sin embargo el equipo concluy que el mercado para consumidores electrnicos smart y las cajas Set-Up en particular, no eran del todo eficaces. La subsidiaria Proyecto verde fue amortizada por la compaa Sun a mediados de 1994. Afortunadamente, el cese del Proyecto Verde coincidi con el nacimiento del fenmeno mundial WEB. Al examinar las dinmicas de Internet, lo realizado por el ex equipo verde se adecuaba a este nuevo ambiente. Patrick Naughton procedi a la construccin del lenguaje de programacin Java que se accionaba con un browser prototipo. El 29 de septiembre de 1994 se termina el desarrollo del prototipo de HotJava. Cuando se hace la demostracin a los ejecutivos de Sun, esta vez, se reconoce el potencial de Java y se acepta el proyecto. Con el paso del tiempo HotJava se convirti en un concepto prctico dentro del lenguaje Java y demostr que podra proporcionar multiplataformas para que el cdigo pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros. Una de las caractersticas de HotJava fue su soporte para los "applets", que son las partes de Java que pueden ser cargadas mediante una red de trabajo para despus ejecutarlo localmente y as lograr soluciones dinmicas en computacin acordes al rpido crecimiento del ambiente WEB.

Ing. En Sistemas 19

Programacin I

Ing. Reneria Garca Bermdez

El 23 de mayo de 1995, en la conferencia SunWorld `95, John Gage, de Sun Microsystems, y Marc Andreessen, cofundador y vicepresidente de Netscape, anunciaban la versin alpha de Java, que en ese momento solo corra en Solaris, y el hecho de que Java iba a ser incorporado en Netscape Navigator, el navegador mas utilizado de Internet. Con la segunda alpha de Java en Julio, se aade el soporte para Windows NT y en la tercera, en Agosto, para Windows 95.

En enero de 1995 Sun form la empresa Java Soft para dedicarse al desarrollo de productos basados en la tecnologas Java, y as trabajar con terceras partes para crear aplicaciones, herramientas, sistemas de plataforma y servicios para aumentar las capacidades del lenguaje. Ese mismo mes aparece la versin 1.0 del JDK. Netscape Communications decide apoyar a Java applets en Netscape Navigator 2.0. Ese fue el factor clave que lanz a Java a ser conocido y famoso. Y como parte de su estrategia de crecimiento mundial y para favorecer la promocin de la nueva tecnologa, Java Soft otorg permisos para otras compaas para que pudieran tener acceso al cdigo fuente y al mismo tiempo mejorar sus navegadores. Tambin les permita crear herramientas de desarrollo para programacin Java y los facultaba para acondicionar mquinas virtuales Java (JVM), a varios sistemas operativos. Muy pronto las licencias o permisos contemplaban prestigiosas firmas como: IBM, Microsoft, Symantec, Silicon Graphics, Oracle, Toshiba y Novell. Los apples Java (basados en JDK 1.02) son apoyados por los dos ms populares navegadores web (Nestcape Navigator 3.0 y Microsoft Internet Explorer 3.0. I.B.M./Lotus, Computer Asociates, Symantec, Informix, Oracle, Sybase y otras poderosas empresas de software estn construyendo Software 100% puro JAVA, por ejemplo el Corel Office que actualmente est en versin Beta. Los nuevos proyectos de Java son co-patrocinados por cientos de millones de dlares en capital disponible de recursos tales como la Fundacin Java, un fondo comn de capital formado el verano pasado por 11 compaas, incluyendo Cisco Systems, IBM, Netscape y Oracle. Hoy en da, puede encontrar la tecnologa Java en redes y dispositivos que comprenden desde Internet y superordenadores cientifcos hasta porttiles y telfonos mviles; desde simuladores de mercado en Wall Street hasta juegos de uso domstico y tarjetas de crdito: Java est en todas partes.
Ing. En Sistemas 20

Programacin I

Ing. Reneria Garca Bermdez

1.2.2 Que es Java?


El lenguaje de programacin Java, fue diseado por la compaa Sun Microsystems Inc, con el propsito de crear un lenguaje que pudiera funcionar en redes computacionales heterogneas ( redes de computadoras formadas por ms de un tipo de computadora, ya sean PC, MAC's, estaciones de trabajo, etc.), y que fuera independiente de la plataforma en la que se vaya a ejecutar. Esto significa que un programa de Java puede ejecutarse en cualquier mquina o plataforma.

1.2.3 Caractersticas de Java.


El lenguaje fue diseado con las siguientes caractersticas en mente:

Simple. Elimina la complejidad de los lenguajes como "C" y da paso al contexto de los lenguajes modernos orientados a objetos. Orientado a Objetos. La filosofa de programacin orientada a objetos es diferente a la programacin convencional. Familiar. Como la mayora de los programadores estn acostumbrados a programar en C o en C++, el sintaxis de Java es muy similar al de estos. Robusto. El sistema de Java maneja la memoria de la computadora por ti. No te tienes que preocupar por apuntadores, memoria que no se est utilizando, etc. Java realiza todo esto sin necesidad de que uno se lo indique. Seguro. El sistema de Java tiene ciertas polticas que evitan se puedan codificar virus con este lenguaje. Existen muchas restricciones, especialmente para los applets, que limitan lo que se puede y no puede hacer con los recursos crticos de una computadora. Portable. Como el cdigo compilado de Java (conocido como byte code) es interpretado, un programa compilado de Java puede ser utilizado por cualquier computadora que tenga implementado el interprete de Java. Independiente a la arquitectura. Al compilar un programa en Java, el cdigo resultante un tipo de cdigo binario conocido como byte code. Este cdido es interpretado por diferentes computadoras de igual manera, solamente hay que implementar un intrprete para cada plataforma. De esa manera Java logra ser un lenguaje que no depende de una arquitectura computacional definida. Multithreaded. Un lenguaje que soporta multiples threads es un lenguaje que puede ejecutar diferentes lneas de cdigo al mismo tiempo. Interpretado. Java corre en mquina virtual, por lo tanto es interpretado. Dinmico. Java no requiere que compiles todas las clases de un programa para que este funcione. Si realizas una modificacin a una clase Java se encarga de realizar un Dynamic Bynding o un Dynamic Loading para encontrar las clases.

Ing. En Sistemas 21

Programacin I

Ing. Reneria Garca Bermdez

Tres de las principales razones que llevaron a crear Java son: 1. Creciente necesidad de interfaces mucho ms cmodas e intuitivas que los sistemas de ventanas que proliferaban hasta el momento. 2. Fiabilidad del cdigo y facilidad de desarrollo. Gosling observ que muchas de las caractersticas que ofrecan C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuracin. Por ello en los sus ratos libres cre un lenguaje de programacin donde intentaba solucionar los fallos que encontraba en C++. 3. Enorme diversidad de controladores electrnicos. Los dispositivos electrnicos se controlan mediante la utilizacin de microprocesadores de bajo precio y reducidas prestaciones, que varan cada poco tiempo y que utilizan diversos conjuntos de instrucciones. Java permite escribir un cdigo comn para todos los dispositivos. 1.2.4 La Mquina Virtual Java El lenguaje Java es a la vez compilado e interpretado. Con el compilador se convierte el cdigo fuente que reside en archivos cuya extensin es .java, a un conjunto de instrucciones que recibe el nombre de bytecodes que se guardan en un archivo cuya extensin es .class. Estas instrucciones son independientes del tipo de ordenador. El intrprete ejecuta cada una de estas instrucciones en un ordenador especfico (Windows, Macintosh, etc). Solamente es necesario, por tanto, compilar una vez el programa, pero se interpreta cada vez que se ejecuta en un ordenador.

Cada intrprete Java es una implementacin de la Mquina Virtual Java (JVM). Los bytecodes posibilitan el objetivo de "write once, run anywhere", de escribir el programa una vez y que se pueda correr en cualquier plataforma que disponga de una implementacin de la JVM. Por ejemplo, el mismo programa Java puede correr en Windows 98, Solaris, Macintosh, etc.
Ing. En Sistemas 22

Programacin I

Ing. Reneria Garca Bermdez

Java es, por tanto, algo ms que un lenguaje, ya que la palabra Java se refiere a dos cosas inseparables: el lenguaje que nos sirve para crear programas y la Mquina Virtual Java que sirve para ejecutarlos. Como vemos en la figura, el API de Java y la Mquina Virtual Java forman una capa intermedia (Java platform) que asla el programa Java de las especificidades del hardware (hardware-based platform).

La Mquina Virtual Java (JVM) es el entorno en el que se ejecutan los programas Java, su misin principal es la de garantizar la portabilidad de las aplicaciones Java. Define esencialmente un ordenador abstracto y especifica las instrucciones (bytecodes) que este ordenador puede ejecutar. El intrprete Java especfico ejecuta las instrucciones que se guardan en los archivos cuya extensin es .class. Las tareas principales de la JVM son las siguientes:

Reservar espacio en memoria para los objetos creados Liberar la memoria no usada (garbage collection). Asignar variables a registros y pilas Llamar al sistema husped para ciertas funciones, como los accesos a los dispositivos Vigilar el cumplimiento de las normas de seguridad de las aplicaciones Java

Esta ltima tarea, es una de las ms importantes que realiza la JVM. Adems, las propias especificaciones del lenguaje Java contribuyen extraordinariamente a este objetivo:

Las referencias a arrays son verificadas en el momento de la ejecucin del programa No hay manera de manipular de forma directa los punteros La JVM gestiona automticamente el uso de la memoria, de modo que no queden huecos. No se permiten realizar ciertas conversiones (casting) entre distintos tipos de datos.

Por ejemplo, cuando el navegador encuentra una pgina web con un applet, pone en marcha la JVM y proporciona la informacin que aparece en la etiqueta <APPLET > ... </APPLET>. El cargador de clases dentro de la JVM ve que clases necesita el applet. Dentro del proceso de carga, las clases se examinan mediante
Ing. En Sistemas 23

Programacin I

Ing. Reneria Garca Bermdez

un verificador que asegura que las clases contienen cdigo vlido y no malicioso. Finalmente, se ejecuta el applet. 1.2.5 Instalacin y configuracin del Java Development Kit (JDK)

Paso 0.- Descripcin de los programas


Para compilar y ejecutar Java se utiliza habitualmente Java Development Kit (kit de desarrollo de Java) o jdk, desarrollado por Sun Corporation. El jdk tiene dos familias principales: Java 2 Standard Edition o J2SE, orientado a uso personal, y Java 2 Enterprise Edition o J2EE, la edicin empresarial. A su vez, cada familia tiene diferentes versiones, identificadas por una secuencia de nmeros x.y.z. J2SE se distribuye individualmente o junto con un entorno de edicin de cdigo en Java, tambin de Sun, que se llama NetBeans. A pesar de que NetBeans es un entorno muy potente y amigable, no se va a emplear en el laboratorio porque en el disco de red no funciona muy bien. Sin embargo, en un ordenador personal puede ser una buena eleccin como editor de programas en Java. Lo ms cmodo y parecido al laboratorio es emplear J2SE 1.4.2 sin NetBeans, y jGrasp como editor. jGrasp es una versin mejorada del editor pcGRASP que est instalado en los laboratorios, ms fcil de instalar y sobre todo de configurar. Es recomendable usar esta versin para evitar problemas de instalacin.

Paso 1.- Descarga del software


Primero es necesario descargar los programas, de sus sitios web de origen: 1. Abre la pgina de J2SE 1.4.2. Si quieres usar NetBeans selecciona "Download J2SE v 1.4.2_04 SDK with NetBeans 3.6 Bundle"; en caso contrario, haz click en "Download J2SE 1.4 SDK" (cuidado: NO J2EE!). Tras aceptar la licencia, selecciona "Windows Offline Installation, Multi-language (j2sdk-1_4_2_06-windows-i586-p.exe)" y gurdalo en disco (tardar un rato: son 51.59 MB). 2. Abre la pgina de jGrasp. Pulsa abajo en el botn "jGRASP Exe" dentro de "jGRASP 1.7.5 (Java 1.3 or higher)", y gurdalo en disco (ocupa 2.1 MB). [j2sdk-1_4_2_06-windows-i586-p.exe | jgrasp175.exe]

Paso 2.- Instalacin del jdk


1. Haz doble click en el programa de instalacin del jdk: "j2sdk-1_4_2_06-windows-i586p.exe". 2. Cuando aparezca el cuadro de licencia, pulsa "I accept the terms in the licence agreement" y luego "Next>". 3. En la siguiente pantalla, no cambies nada y pulsa "Next>". 4. En la siguiente pantalla sobre los navegadores web, no cambies nada y pulsa "Install>". 5. Espera a que acabe de copiar todos los ficheros. Esto te llevar unos minutos, ten paciencia. 6. Cuando termine, pulsa "Finish" y si te pide reiniciar el ordenador, hazlo.

Ing. En Sistemas 24

Programacin I

Ing. Reneria Garca Bermdez

Paso 3.- Configuracin del jdk


Abre la "Consola del Sistema", tambin llamada "Smbolo del Sistema" (o en ingls, "Console", "DOS Console", "Command prompt"...). Habitualmente puedes encontrarla en "Men Inicio">Programas->Accesorios. Si no la encuentras, tambin puedes abrirla yendo a "Men Inicio">Ejecutar y escribir "cmd" (o si no prueba con "command"). En el smbolo del sistema, escribe java Si obtienes un mensaje similar a ste:

... Enhorabuena! No hace falta que sigas con este paso porque ya lo tienes configurado. Sigue con el paso siguiente. Sin embargo, si obtienes un mensaje como ste:

Ing. En Sistemas 25

Programacin I

Ing. Reneria Garca Bermdez

... sigue las siguientes instrucciones. 1. Pulsa con el botn derecho del ratn sobre "Mi PC" y selecciona "Propiedades". 2. Selecciona la pestaa "Opciones avanzadas" y pulsa en el botn inferior "Variables de entorno". 3. Tanto en el cuadro superior como el inferior, busca una variable que se llama "Path", haz click sobre ella y pulsa el botn "Modificar" (si aparece en los dos cuadros, haz lo siguiente dos veces). 4. En el cuadro de valor de variable, aade al final (cuidado, SIN BORRAR NADA): 5. <lo que hubiera antes>;c:\j2sdk1.4.2_06\bin y pulsa "Aceptar".

Ing. En Sistemas 26

Programacin I

Ing. Reneria Garca Bermdez

6. Busca otra vez en la lista de variables si existe "CLASSPATH". Si no existe, no pasa nada, sigue con el siguiente punto. Si existe, click sobre ella y pulsa el botn "Modificar" (si aparece en los dos cuadros, haz lo siguiente dos veces). En el cuadro de valor de variable, aade al final (cuidado, SIN BORRAR NADA): 7. <lo que hubiera antes>;. (cuidado: con un PUNTO al final) y pulsa "Aceptar". 8. Cierra el cuadro de dilogo de variables de entorno con "Aceptar" y otra vez "Aceptar" para "Propiedades del sistema". Si tenas abierta la consola del sistema, cirrala para que se carguen los nuevos valores.

Ing. En Sistemas 27

Programacin I

Ing. Reneria Garca Bermdez

bre la consola otra vez y comprueba que al escribir javac y java se obtienen los mensajes habituales de Java. Si sigue apareciendo el mensaje "javac" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. ... revisa que has seguido todos los pasos correctamente y vuelve a repetir el paso 3. Si no te funciono, lo mejor es que no sigas adelante porque no va a servir de nada hasta que no resuelvas los problemas. Contacta con los profesores pidiendo ayuda. Si todo ha ido bien, sigue con el paso 4.

Paso 4.- Instalacin del jGrasp


1. 2. 3. 4. 5. Haz doble click en el programa de instalacin del jGrasp: "jgrasp175.exe". Cuando aparezca el cuadro de licencia, pulsa "I agree". En la siguiente pantalla, selecciona "Standard" en el desplegable y pulsa "Next>". En la siguiente pantalla de "Install Location", no cambies nada y pulsa "Next>". En la siguiente pantalla de "Start Menu Folder", no cambies nada (o pon jGrasp) y pulsa "Next>". 6. En la siguiente pantalla de "File Associations", no cambies nada y pulsa "Install". 7. Espera a que acabe de copiar todos los ficheros. Esto te llevar muy poco. 8. Al terminar, pulsa "Finish". jGrasp no hace falta configurarlo de forma especial.

Paso 5.- Prueba completa


1. 2. 3. 4. Abre jGrasp y crea un fichero nuevo en Java grabndolo como HolaMundo.java. Escribe el cdigo del programa HolaMundo (que imprime "Hola Mundo!!" en pantalla). Pulsa sobre el icono "Compile" (una cruz verde). Debe compilar correctamente. Pulsa sobre el icono "Run" (una persona corriendo). Debe ejecutarse correctamente y salir en la ventana de salida (abajo, "Run I/O") el mensaje del programa.

Si has llegado hasta aqu, muchas felicidades! Ya tienes tu entorno dispuesto y preparado para trabajar con Java en Windows XP.

1.2.6 Edicin, compilacin y ejecucin de programas. El Kit de desarrollo de Java (JDK) contiene las herramientas y libreras necesarias para crear y ejecutar applets y aplicaciones en Java. A continuacin se listas algunas de las utilidades que se pueden encontrar en el JDK:
Ing. En Sistemas 28

Programacin I

Ing. Reneria Garca Bermdez

javac. Es el compilador de Java. Se encarga de convertir el cdigo fuente escrito en Java a bytecode. java. Es el intrprete de Java. Ejecuta el bytecode a partir de los archivos class. appletviewer. Es un visor de applets. En la mayora de las ocasiones puede utilizarse en lugar de un Navegador Web. javadoc. Se utiliza para crear documentacin en formato HTML a partir de el cdigo fuente Java y los comentarios que contiene. javap. Es un desensamblador de Java. jar. Es una herramienta utilizada para trabajar con los archivos JAR. Obtencin del JDK

El JDK se puede obtener directamente de forma gratuita del sitio Web de JavaSoft, http://www.javasoft.com/ .

Instalacin

configuracin

del

JDK

(Windows

9x)

El JDK normalmente se distribuye en archivos de instalacin auto-extraibles, por lo que al momento de llevar a cabo la instalacin, bsicamente se tiene que indicar el directorio en el cual se colocarn los archivos y directorios que se distribuyen en el JDK. Una vez instalado el JDK se tiene que actualizar la variable de ambiente PATH y crear una nueva variable llamada CLASSPATH. Por ejemplo, si el JDK fue instalado en C:\jdk1.1.8, hacemos lo siguiente:
set PATH=C:\jdk1.1.8\bin;%PATH% set CLASSPATH=C:\jdk1.1.8\lib\classes.zip;.

Por ejemplo, si se instal una versin de Java 2 (JDK 1.2 o posterior), hacemos lo siguiente:
set PATH=C:\jdk1.2.2\bin;%PATH% set CLASSPATH=C:\jdk1.2.2\jre\lib;.

La variable de ambiente CLASSPATH le dice a la Mquina Virtual de Java y otras aplicaciones de Java en donde buscar las clases que se necesitan para ejecutar un programa, tal como el archivo classes.zip, que contiene una librera de clases que conforma el API de Java. En Java 2 por lo general, no existe el archivo classes.zip por lo que slo se hace referencia al directorio jre\lib.
Ing. En Sistemas 29

Programacin I

Ing. Reneria Garca Bermdez

Es necesario actualizar la variable PATH para que el sistema operativo sepa en donde encontrar los programas que se ejecutan cuando se trabaja con Java, bsicamente el compilador y el intrprete de Java, javac y java, respectivamente.
Uso del JDK para construir aplicaciones

Uso del JDK para construir applets

Ing. En Sistemas 30

Programacin I

Ing. Reneria Garca Bermdez

Creacin y ejecucin de aplicaciones

A continuacin se describe de manera grfica cuales son los pasos a seguir para construir una aplicacin Java usando el JDK. Editar el archivo con el cdigo fuente

Guardar el archivo

Ing. En Sistemas 31

Programacin I

Ing. Reneria Garca Bermdez

Compilar y ejecutar el programa

Creacin de applets con el JDK A continuacin se describe de forma grfica cuales son los pasos bsicos para crear applets utilizando el JDK. Editar el archivo con el cdigo fuente del applet

Ing. En Sistemas 32

Programacin I

Ing. Reneria Garca Bermdez

Guardar el archivo

Compilar el cdigo fuente

Ing. En Sistemas 33

Programacin I

Ing. Reneria Garca Bermdez

Editar el archivo HTML que incluir el applet

Guardar el archivo HTML

Abrir el archivo HTML con un navegador (Netscape)

Ing. En Sistemas 34

Programacin I

Ing. Reneria Garca Bermdez

Abrir el archivo HTML con un navegador (Explorer)

1.2.1 Errores de programacin. 1.2.1.1 Tipos de datos en Java. Operadores y expresiones La sintaxis de un lenguaje define cmo se usarn las palabras claves, los operadores y las variables para construir y evaluar expresiones. La sintaxis de Java especifica como se escribirn los siguientes elementos:

Comentarios. Identificadores. Palabras clave. Literales. Expresiones y operadores. Variables y tipos de datos. Bloques y sentencias.

Comentarios Java ofrece tres tipos de comentarios: dos para comentarios regulares en el cdigo fuente y uno para la documentacin especial del sistema javadoc.

Comentarios de varias lneas. Los comentarios de varias lneas se incluyen entre los smbolos /* y */, como en C y C++.
/* Este es un ejemplo de un comentario de varias lneas.

Ing. En Sistemas 35

Programacin I
*/

Ing. Reneria Garca Bermdez

Comentarios de una sola lnea. Para comentariar una sola lnea se utiliza la doble diagonal //. El comentario se inicia cuando se encuentra la doble diagonal y continua hasta el final de la lnea.
// Este es un comentario de una sola linea //Este es otro comentario

Comentarios para documentacin. Realmente este tipo de comentario es el mismo que el de varias lneas con la diferencia de que la informacin que contenga ser usada para un procesamiento especial que lleva a cabo la herramienta javadoc. Se distingue del comentario de varias lneas porque se agrega un asterisco adicional al inicio del comentario.
/** Este tipo de comentarios los utiliza la herramienta javadoc */

Identificadores Un identificador es una secuencia de caracteres comenzando por una letra y conteniendo letras y nmeros. Los identificadores no se limitan a los caracteres ASCII, si el editor de texto lo soporta, se pueden escribir identificadores utilizando caracteres Unicode. Las letras Java incluyen los caracteres ASCII A-Z y a-z. Los digitos Java incluyen los digitos ASCII 0-9. Para propsitos de construir identificadores, los caracteres ASCII $ y _ son tambin considerados letras Java. No hay un lmite en lo concerniente al nmero de caracteres que pueden tener los identificadores. Estos son algunos ejemplos de identificadores vlidos:
_varx $var1 MAX_NUM var2

Ing. En Sistemas 36

Programacin I

Ing. Reneria Garca Bermdez

Palabras clave La siguiente tabla muestra las palabras claves de Java, stas son reservadas y no pueden ser utilizadas como identificadores. abstract boolean break byte case catch char class const* continue Default Do Doubl Else Extends Final finally Float For goto* if implements import instanceof int interface long native new package private protected public return short static strictfp** super switch synchronized this throw throws transient try void volatile while

* Son palabras claves de Java que no son usadas actualmente. ** Palabra clave agregada en Java 2 true, false, and null no son palabras claves pero son palabras reservadas, as que tampoco pueden ser utilizadas como identificadores. Literales Una literal es un valor constante formado por una secuencia de caracteres. Cualquier declaracin en Java que defina un valor constante -un valor que no pueda ser cambiado durante la ejecucin del programa- es una literal. Son ejemplos de literales los nmeros, los caracteres y las cadenas de caracteres.

Literales numricas Se pueden crear literales numricas a partir de cualquier tipo de dato primitivo.
Ej. 123 //literal int 123.456 //literal double 123L //literal long 123.456F //literal float

Literales booleanas Las literales boolenas consisten de las palabras reservadas true y false.
Ing. En Sistemas 37

Programacin I

Ing. Reneria Garca Bermdez

Literales de caracteres Las literales de caracteres se expresan por un solo caracter entre comillas sencillas
Ej. 'a', '%', '7'

Literales de cadena Una cadena es una combinacin de caracteres. Las cadenas en Java son instancias de la clase String, por ello cuentan con mtodos que permiten combinar, probar y modificar cadenas con facilidad. Las literales de cadena se representan por una secuencia de caracteres entre comillas dobles.
Ej. "hola", "cadena123", "12345"

Expresiones y Operadores

Expresin Una expresin es una combinacin de variables, operadores y llamadas de mtodos construida de acuerdo a la sintaxis del lenguaje que devuelve un valor. El tipo de dato del valor regresado por una expresin depende de los elementos usados en la expresin.

Operadores Los operadores son smbolos especiales que por lo comn se utilizan en expresiones.

La tabla siguiente muestra los distintos tipos de operadores que utiliza Java. Operador Significado Operadores aritmticos
+ * /

Ejemplo

Suma Resta Multiplicacin Divisin

a+b a-b a*b a/b


Ing. En Sistemas 38

Programacin I

Ing. Reneria Garca Bermdez

Mdulo Operadores de asignacin

a%b

= += -= *= /= %=

Asignacin Suma y asignacin Resta y asignacin Multiplicacin y asignacin Divisin y asignacin Mdulo y asignacin Operadores relacionales

a=b a += b (a=a + b) a -= b (a=a - b) a *= b (a=a * b) a / b (a=a / b) a % b (a=a % b)

== != < > <= >=

Igualdad Distinto Menor que Mayor que Menor o igual que Mayor o igual que Operadores especiales

a == b a != b a<b a>b a <= b a >= b

++

Incremento Decremento Cast Concatenacin de cadenas Acceso a variables y mtodos Agrupacin de expresiones

a++ (postincremento) ++a (preincremento) a-- (postdecremento) --a (predecremento) a = (int) b a = "cad1" + "cad2" a = obj.var1 a = (a + b) * c

--

(tipo)expr
+ . ( )

La tabla siguiente muestra la precedencia asignada a los operadores, stos son listados en orden de precedencia.
Ing. En Sistemas 39

Programacin I

Ing. Reneria Garca Bermdez

Los operadores en la misma fila tienen igual precedencia Operador . [] () ++ -- ! ~ new (tipo)expr * / % +<< >> >>> < > <= >= == != & ^ | && || ?: = += -= *= /= %= &= ^= |= <<= >>= >>>= Notas Los corchetes se utilizan para los arreglos ! es el NOT lgico y ~ es el complemento de bits new se utiliza para crear instancias de clases Multiplicativos Aditivos Corrimiento de bits Relacionales Igualdad AND (entre bits) OR exclusivo (entre bits) OR inclusivo (entre bits) AND lgico OR lgico Condicional Asignacin

Todos los operadores binarios que tienen la misma prioridad (excepto los operadores de asignacin) son evaluados de izquierda a derecha. Los operadores de asignacin son evaluados de derecha a izquierda. Variables y tipos de datos Las variables son localidades de memoria en las que pueden almacenarse datos. Cada una tiene un nombre, un tipo y valor. Java tiene tres tipos de variables: de instancia, de clase y locales.

Ing. En Sistemas 40

Programacin I

Ing. Reneria Garca Bermdez

Variables de instancia. Se utilizan para definir los atributos de un objeto.

Variables de clase. Son similares a las variables de instancia, con la excepcin de que sus valores son los mismos para todas las instancias de la clase.

Variable locales. Se declaran y se utilizan dentro de las definiciones de los mtodos.

* A diferencia de otros lenguajes, Java no tiene variables globales, es decir, variables que son vistas en cualquier parte del programa. Java es un lenguaje "fuertemente tipeado o tipificado" por lo que es necesario especificar el tipo de dato para cada una de las variables que se vayan a utilizar en un programa. El nombre de la variable debe de ser un identificador vlido, y se usa para referirse a los datos que contiene una variable. El tipo de una variable determina los valores que puede almacenar y las operaciones que se pueden hacer sobre ella. Para dar a una variable un tipo y un nombre, se escribe una declaracin de una variable, que tiene la siguiente forma:
TipoDato nombreVariable; Ej. String nombre; // variable de tipo String int edad; // variable de tipo int Punto p; // variable del tipo Punto

Se pueden escribir varios nombres de variables del mismo tipo en una sola lnea,
int x, y, z; String nombre, apellido;

Tambin se puede asignar un valor inicial a las variables al momento de crearlas,


String nombre, apellido="MiApellido"; int edad = 24;

Ing. En Sistemas 41

Programacin I

Ing. Reneria Garca Bermdez

Variables y tipos de datos Las variables en Java pueden ser uno de los siguientes tipos:

Tipo primitivo. Una variable de tipo primitivo contiene un solo valor del tamao y formato apropiado de su tipo: un nmero, un carcter, o un valor booleano.

La tabla siguiente lista los tipos de datos primitivos soportados por Java. Tipo Descripcin Nmeros enteros
byte short int long

Tamao/Formato

Entero byte Entero corto Entero Entero largo Nmeros reales

8-bit 2's 16-bit 2's 32-bit 2's 64-bit 2's

float double

Punto flotante Punto flotante de doble presicin Otros tipos

32-bit IEEE 754 64-bit IEEE 754

char boolean

Un solo carcter Un valor booleano

16-bit caracteres Unicode true o false

En Java, cualquier numrico con punto flotante automticamente se considera double. Para que sea considerado float se agrega una letra "f" o "F" al final del valor. double d = 10.50; float f = 10.50F; Referencia.
Ing. En Sistemas 42

Programacin I

Ing. Reneria Garca Bermdez

Los arreglos, las clases y las interfaces son del tipo referencia. El valor de una variable del tipo referencia es una direccin de un conjunto de valores representados por una variable. Las referencias en Java no son como en C++, stas son identificadores de instancias de alguna clase en particular.
Ej. String cad; //referencia a un objeto de la clase String Punto p; //referencia a un objeto de la clase Punto int[] var_arreglo; //referencia a un arreglo de enteros

Ing. En Sistemas 43

Das könnte Ihnen auch gefallen