Programación I

Ing. Reneria García Bermúdez

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

1.1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS 1.1.1. Que es programación orientada a objetos (POO). La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación. ¿Cómo definiría con sus propias palabras POO?

Motivación Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían 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 código se pueda reutilizar. La POO no es difícil, 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 según el programador. Aunque podamos hacer los programas de formas distintas, no todas ellas son correctas, lo difícil no es programar orientado a objetos sino
Ing. En Sistemas 1

Programación I

Ing. Reneria García Bermúdez

programar bien. Programar bien es importante porque así nos podemos aprovechar de todas las ventajas de la POO. Cómo se piensa en objetos Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar. En un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar. Por poner otro ejemplo vamos a ver cómo modelizaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2. La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc. Estos objetos se podrán utilizar en los programas, por ejemplo en un programa de matemáticas harás uso de objetos fracción y en un programa que gestione un taller de coches utilizarás objetos coche. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos. Es decir, el taller de coches será un objeto que utilizará objetos coche, herramienta, mecánico, recambios, etc. Escriba un ejemplo sencillo además 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 Orientación a Objetos (OO) se empezó a discutir a fines de los años 60 con el desarrollo del lenguaje SIMULA67 por Nygaard y Ole-Johan Dahl en el Centro de Cálculo Noruego, en él, introdujeron los conceptos de clase, subclases y rutinas, muy parecidos los conceptos a los lenguajes orientados a objetos de hoy en día. A mitad de la década de los 70 los científicos del Centro de Investigaciones Palo Alto de XEROX (PARC) (XEROX Palo Alto Research Center) crearon el lenguaje SMALLTALK, el primer
Ing. En Sistemas 2

Programación I

Ing. Reneria García Bermúdez

lenguaje orientado a objetos consistente y completo. En él cada elemento del lenguaje fue realizado un objeto. Este último lenguaje evolucionó a través de varios lanzamientos realizados por PARC. A pesar de este movimiento temprano hacia los lenguajes orientados a objetos, sólo se lograron pequeñas incursiones en la comunidad de la programación 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 programación de computadores era una tarea relegada prácticamente a los "genios" de la computación de aquel entonces; hacer un programa para computador demandaba miles de horas de tiempo invertido y desde luego miles de miles o millones de líneas de código para llevar a cabo una tarea determinada. Bien la programación de ese entonces tenía un estilo particular llamado hoy día programación en spaghetti, se llama así porque todo el código generalmente sigue una línea secuencial desde la primera instrucción hasta la última, ocasionalmente hay saltos entre instrucciones, pero generalmente se regresa al punto donde se originó el salto... los lenguajes más populares en ese entonces eran desde luego el ASM, el FORTRAN y el COBOL. Luego los programas se fueron haciendo más grandes y complejos, así que las cosas se comenzaron a hacer dificiles de manejar (es decir aún más dificiles de manejar), allí nació una nueva forma de programación... una nueva metodología, la programación estructurada. Programación Estructurada La solución a tantos problemas fue básicamente sencilla, agrupar el código por funcionalidad de tal forma que cada funcionalidad pueda ser invocada tantas veces como se necesite, esto permitió reducir las líneas de código necesarias para crear un programa ya que si existe una rutina compleja que podía ser en algún grado repetitiva, esta se coloca en una función que sea aplicable en uno o más casos diferentes, veamos un ejemplo... Supongamos que tenemos un programa que controla las cuentas de un banco (imaginemos un banco pequeño), así que se ha creado un conjunto de programas para tal fin. Dentro de esos programas tenemos una sección de programa que lo que hace es manejar los retiros que ha hecho el dueño de la cuenta, lo cual implica descontar un valor determinado de una cuenta y elaborar el registo contable correspondiente... imaginemos otra parte del código de ese programa, un cliente paga su tarjeta de crédito así que otra vez el programa descuenta el valor de la cuenta del cliente, también elabora el registro contable correspondiente y adicionalmente hace otros registros y abonos a la cuenta de la tarjeta de crédito... Este tipo de cosas las tendría que hacer el programa miles de veces, una vez cada que se presente una transacción en el banco.
Ing. En Sistemas 3

Programación I

Ing. Reneria García Bermúdez

En programación spaguetti eso tomaría miles de líneas como lo vimos anteriormente, ya que por cada transacción se requiere volver a repetir las instrucciones para hacer lo correspondiente; en programación estructurada esto ya no es necesario ya que habríamos creado algunas funcionalidades que nos permiten invocarlas cuando las necesitemos, así solamente crearíamos el código para registrar el abono o el descuento de dinero de una cuenta, y otro código para hacer registros contables, así que cada vez que los necesitemos simplemente colocamos una línea de código haciendo el llamado a la funcionalidad, y no repitiendo nuevamente todo el código que hace parte de la misma. Pero los días de la programación estructurada estaban contados, los programas siguieron creciendo, tener un código 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 programación estructurada la solución 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 programación a gran escala simplemente se hubiesen creado niveles de agrupamiento de funcionalidades, algo como funcionalidades de funcionalidades, pero el problema se volvería a repetir entre más grande fuera el software, así que hubo necesidad de cambiar las cosas de una manera más profunda. La forma en que se hacían los programas era siempre orientada a la funcionalidad, es decir que haga lo que debe y que lo haga de la manera más rápida, ocasionalmente y si era posible reutilizar el código ya creado, los incidentes comenzaron a aparecer veamos una ejemplo, sigamos con el banco... Bien, el banco ha crecido un poco más razón 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 estándares de nomenclatura y ese tipo de cosas. Tiempo después los módulos del programa ya están casi listos así que se disponen a integrar todos esos programas en un programa único, pero cuando iniciaron con eso paso algo inesperado... Los señores del grupo de cuentas de ahorros crearon unas funciones, se llaman debito y crédito, mientras tanto los señores del grupo de CDT´s , los de tarjetas, los de cuenta corriente etc. crearon también todos funciones llamadas débito y
Ing. En Sistemas 4

no hay garantía de que más adelante los señores de tarjeta de crédito la usen.. es decir solo utilizable dentro del grupo de CDT. 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 librerías integradas..Programación I Ing.crédito Y así sucesivamente con cada uno de los módulos. resultado de la operación: hay que renombrar todas las funciones débito crédito para que todas se llamen diferentes. Reneria García Bermúdez crédito. pero todas hacen cosas diferentes cada una para su caso puntual. En Sistemas 5 de ahorros serian: .crédito Las Ahorros.debito Ahorros.. etc Así las cosas les tardara un poco de tiempo a los señores 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. Ing. e. imaginemos todas las variables que habrán quedado con nombres parecidos. eso sería muy difícil sino imposible de evitar en programación estructurada. c. de hecho todos podrían tener las mismas variables: a. todos excepto dos. en un programa tan enorme evitar esa situación es algo muy complicado. con desagrado decidieron acatar. f y no pasaría absolutamente nada. Otro problema con el sistema estructurado es que si los señores de CDT tienen una función para encripción única que no debe ser usada por nadie más. y pueden hacerlo por que hace parte del mismo programa enlazado. sino es que iguales. Pero en POO las cosas habrían sido diferentes..debito CDT.. puesto que desde que se han creado los módulos cada uno es un componente por separado y las funciones de los Sre del CDT serian accedidas algo así como: CDT. d. b.. cosa que todos los grupos.. pero en POO sería muy sencillo ya que le diríamos a nuestra función que fuera de uso privado.. El grupo de cuentas de ahorro y el de tarjeta de crédito no pueden hacer el cambio de una manera tan sencilla ya que han utilizado unas librerías provistas por terceros y que ya desde hace tiempo interactúan con u sistema de transacciones a nivel internacional que requiere que el software cumpla con una serie de lineamientos e interfaces de programación.

Para aquel que no es un programador. La Orientación 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. La orientación a objetos anima al desarrollador de sistemas a concentrarse en los temas importantes e ignorar el resto a la hora de la modelación.Programación I Ing. la orientación a objetos es un nivel de abstracción de computadora más allá de los procedimientos y los datos. Esta es la forma en que la gente normal ve el mundo. Para el desarrollo de sistemas. Paradigma de la Programación Orientada a Objetos. Reneria García Bermúdez Según el texto leído sobre programación estructura y POO explique de forma sencilla porque afirmaría usted que la POO posee más ventajas que la Programación estructurada. aunque intuitivamente. marca una desviación significativa de los anteriores paradigmas de la programación. así es que este pensamiento tiene intrínsecamente sentido. Orientación a Objetos significa algo bastante familiar: considerar al mundo como un conjunto de entidades u objetos que están relacionados y se comunican entre ellos. En Sistemas 6 . Una ecuación para reconocer una aproximación a la Orientación a Objetos es: ORIENTACIÓN_OBJETOS = CLASES Y OBJETOS + HERENCIA + COMUNICACIÓN CON MENSAJES Ing. El hecho de que el tema central sean los objetos.

Con él se definen las propiedades del objeto. Reneria García Bermúdez Todos los sistemas que merecen la descripción de Orientado a Objetos contienen estos mecanismos esenciales. Una clase es una descripción de un conjunto de objetos casi idénticos. En otras palabras. Un objeto es un modelo o instancia de una clase. las clases contienen los anteproyectos para crear objetos. La mayoría de los objetos sólo existen durante una parte de la ejecución del programa. En Sistemas 7 . Ejemplos de estos conceptos (utilizaremos un lenguaje más fácil de entender para definirlos): Ing. y el estado en que se encuentra en un momento determinado de su existencia. definida por sus métodos. definido por sus atributos. aunque los mecanismos pueden no estar realizados exactamente de la misma forma. Analicemos ahora los términos de la ecuación.3 Conceptos de Objetos y Clase OBJETOS (Sinónimo de instancia).Programación I Ing. Estado: Todo objeto posee un estado. Una clase consta de métodos y datos que resumen las características comunes de los objetos. incluyendo una descripción de cómo crear un nuevo objeto de la clase. Redefiniendo un objeto. 1. y cuando dejan de existir se dice que son destruidos. son entidades que tienen atributos (datos) y formas de comportamiento (procedimientos) particulares.1. Un objeto pasivo es el que actúa solamente bajo petición. Es la abstracción de alguna cosa en el dominio del problema que refleja la capacidad de un sistema de alcanzar información alrededor de él. Las aplicaciones pueden constar de diferentes clases de objetos. Un objeto consta de:    Tiempo de vida: La duración de un objeto en un programa siempre está limitada en el tiempo. para que el resto de objetos que componen los programas puedan interactuar con él. por lo tanto. Los objetos activos efectúan el seguimiento de los sucesos que ocurren en una aplicación y actúan de forma autónoma. Defina con sus propias palabras que es un objeto y las partes que este consta CLASE. Los objetos. Los objetos son creados mediante un mecanismo denominado instanciación. Comportamiento: Todo objeto ha de presentar una interfaz.

Ejemplo 1: Consideremos cómo un programador podría designar una aplicación de procesamiento de una posición en el espacio en forma orientada a objetos. Ing. Reneria García Bermúdez Una clase es un molde que define los datos y procedimientos que actúan sobre esos datos y los objetos serán los elementos producidos por ese molde. En Sistemas 8 .Programación I Ing.

implificando definiciones de las clases similares previamente definidas. En Sistemas 9 . comparten las características comunes de la clase de la que descienden. En otras palabras la herencia es una partición en subclases más especializadas. Algunos objetos son p y q que por ser números complejos son de la forma (real. Defina con sus propias palabras que es una clase Descripción del término herencia La herencia es un mecanismo para expresar similaridad entre clases. El principio en que se basa este concepto es de que las clases que se derivan de otra clase. Veamos ahora cómo sería la aplicación con el sistema de los números complejos en forma orientada a objetos. Reneria García Bermúdez Los objetos serían PuntoA.Programación I Ing. imaginaria). La herencia permite crear nuevas clases llamadas subclases agregando solamente las diferencias con la clase. PuntoB donde tanto PuntoA como PuntoB tienen las características de posición. Ejemplo 1: Ing.

Reneria García Bermúdez Ejemplo 1: Ejemplo 2 Ejemplo 2: Para este ejemplo usaremos la clase publicación. En Sistemas 10 . una solicitud que pide al objeto que se comporte de alguna forma.Programación I Ing. El objeto emisor del mensaje no necesita conocer la forma en que el objeto receptor está llevando a cabo la solicitud. los métodos proporcionan el único mecanismo para cambiar los valores de las variables del objeto. Cuando se ejecutan los programas orientados a objetos. Los procedimientos residen en el objeto y determinan cómo actúa el objeto cuando recibe un mensaje. explícita la comunicación entre los mismo y oculta los detalles de la realización. Los objetos tienen la posibilidad de actuar. Los mensajes que reciben el objeto son los únicos conductos que conectan al objeto con el mundo exterior. De hecho. Los mensajes pueden contener información para clasificar una solicitud. Descripción del término comunicación con mensajes. En un programa con orientación a objetos ocurren tres sucesos: 1) Se crean los objetos cuando se necesitan. interpretan y responden a mensajes procedentes de otros objetos. que es. solamente conoce que se está sucediendo. la acción sucede cuando un objeto recibe un mensaje. (A este hecho se le conoce como encapsulamiento). los objetos reciben. Estas características de los objetos confieren a la orientación a objetos su ventaja: la orientación a objetos fomenta la modularidad haciendo muy claras las fronteras entre objetos. Ing.

Herencia • Simple • Múltiple 4. En Sistemas 11 . Características deseadas de la Programación Orientada a Objetos Las características deseadas pueden variar y es difícil ponerse de acuerdo. Principio de Abstracción • Datos • Procedimientos 2. clase método y herencia. En base al ejemplo anterior escriba otro ejemplo donde represente al objeto.Programación I Ing. Reneria García Bermúdez 2) Los mensajes se mueven de un objeto a otro a medida que el programa procesa internamente información o responde a la entrada del usuarios. 1. Comunicación con mensajes 5. 3) Se borran los objetos cuando ya no son necesarios y se recupera memoria. Encapsulamiento 3. Polimorfismo Manejo automático de memoria Ing.

En Sistemas 12 . En realidad el seudo código es muy similar a un algoritmo pero más estructurado. El seudo código se utiliza como una herramienta para estructurar el código de un programa sin comprometerse con ningún lenguaje. Es una operación que lleva a cabo un servicio a los atributos del objeto. por lo que daremos una idea de este concepto. Ejemplo 1: En el ejemplo de la posición en el espacio se quiere representar en objetos. Una posición en el plano la determinan las coordenadas (x. imaginaria). sin caer en detalles de representación y manipulación de datos. ya que se le deben de dar sangrías a la escritura de las instrucciones para hacerlo más legible en la lectura. queremos abstraer esta parte del mundo real a un programa que pueda representarlos. Procedimiento. Iniciamos: Principio de abstracción • Es el principio de ignorar los aspectos de un sujeto que no son relevantes en un propósito de orden de concentración más exacto. de lo que podemos intuir que los datos sean: real e imaginaria Ing. Es un atributo del objeto que representa cuantitativamente o cualitativamente a ese objeto. • De esta forma. pero que es posible que tenga alguna semejanza con el lenguaje a utilizar. Reneria García Bermúdez • Constructores • Destructores Métodos virtuales Sobreposición de operadores Antes de ver cada uno de estos conceptos es importante mencionar que los ejemplos de los mismos se darán con seudo código. un tipo de dato abstracto se puede escribir concentrándose en las operaciones que manipulan a los objetos de este tipo. En el seudo código se utilizan palabras en nuestro lenguaje que son similares a las palabras utilizadas por los lenguajes de programación. que serían nuestros datos y los procedimientos que las manipulen pueden ser: iniciar posición leer x leer y saluda Ejemplo 2: En el ejemplo de los números complejos se tiene que éstos son de la forma (real. donde real e imaginaria son números reales.Programación I Ing. • El proceso de representar entidades reales como elementos internos a un programa recibe el nombre de abstracción. y). Datos.

-. sino a través de los procedimientos del objeto.Programación I Ing. Ejemplo 1. Encapsulamiento (ocultamiento de datos). simplificando definiciones de clases similares previamente detenidas. La herencia es un mecanismo que para expresar similaridad entre clases. Reneria García Bermúdez Los atributos que manipulan estos datos pueden ser todos los operadores aritméticos (+. Ejemplo 1: En este ejemplo para leer cualquiera de las coordenadas no se puede directamente sólo leyendo por separado las coordenadas con los procedimientos de lectura. Se refiere al hecho de que ningún programador ni de ninguna otra parte de un programa se pueda tener acceso a los datos de un objeto en forma directa. < > ). Herencia. Herencia Múltiple: (Multimedia) Ing. • La herencia simple es cuando el lenguaje sólo permite que una clase derive de una clase. En Sistemas 13 . /) y los operadores de relación ( =. *. Herencia simple: Ejemplo 2. • La herencia múltiple es cuando una clase puede ser derivada de más de una clase. Ejemplo 2: En el ejemplo de los números complejos cada número complejo no se puede modificar a menos que sea con los operadores.

Estos sucesos se desarrollan con los constructores y destructores. b) Se puede tener un procedimiento procedimiento Saluda (mensaje) escribe mensaje. los mensajes mandan una petición de acción a un objeto. coordenadas X e Y y los métodos que inician y devuelven los valores X y Y. 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. En el apartado de comunicación con mensajes se menciona que en un programa con orientación a objetos ocurren tres sucesos. El primer suceso dice: "Se crean los objetos cuando se necesitan. a) Se puede tener un procedimiento procedimiento Saluda escribe "Hola soy posición". libera la memoria que fue asignada al objeto que fue creado por el constructor. dos de ellos nos interesan. En Sistemas 14 . Reneria García Bermúdez Comunicación con mensajes. Ing.". • Destructores Un destructor es un procedimiento de la clase que realiza la tarea opuesta a su constructor. mientras que los métodos del objeto deciden cómo llevar a cabo la acción. para asignar valores a los datos del objeto y realizar tareas iniciales para un nuevo objeto. Las variable de un objeto sólo pueden ser manipuladas por sus propios métodos. pero con distinto tipo y/o número de argumentos. Procedimiento leer X Regresa valor de X Polimorfismo Es cuando una clase tiene varios procedimientos con el mismo nombre. Es deseable que el destructor se invoque implícitamente cuando el objeto abandone el bloque donde fue declarado. Un constructor es llamado para asignar memoria a un objeto. Esto implique que si no podemos trabajar con un objeto que no haya sido creado a través de un constructor y si sólo se pueden modificar mediante los procedimientos de la clase NO TENEMOS FORMA DE CORROMPER EL OBJETO. • Constructores Los constructores son procedimientos de la clase que permiten crear objetos. Ejemplo: En la definición de posición consta de los datos. Manejo Automático de Memoria. Es decir.Programación I Ing. Ejemplo 1: Se puede tener más de un procedimiento saluda en la clase posición. lo cual aumenta la confiabilidad y facilita la rehusabilidad." y el tercer suceso indica: "Se borran los objetos cuando ya no son necesarios y se recupera la memoria.

con nombres de métodos comunes para operaciones que son similares conceptualmente. Una jerarquía de clases unidas por la herencia. real 2) x = real 1 y = real 2 Destructor iniciar borra x borra y Métodos Virtuales. soy punto". cuando diferentes objetos de las diferentes clases de la jerarquía reciben el mismo mensaje. Dicho de otra forma. En Sistemas 15 .complejo) Con sus propias palabras defina una a una las características de la programación Orientada a Objetos Ing. Ejemplo 1: Constructor iniciar (real 1. pero que realizan tareas diferentes. Reneria García Bermúdez Ejemplos: Normalmente en los lenguajes con orientación a objetos el destructor como el constructor tienen el mismo nombre de la clase a la que pertenece. si se tiene una aritmética definida con ciertos operadores. b) punto saluda "Hola. soy posición". sería deseable que permita utilizar la misma notación para los nuevos tipos de operadores que se definan. Como consecuencia. Posición. los procedimientos serían: a) posición saluda "Hola.Programación I Ing. c) círculo saluda "Hola.complejo) complejos operador *(complejo. Ejemplo: En el ejemplo 2 de números complejos se tienen los operadores aritméticos un ejemplo de sobrecarga de operadores sería: complejos operador + (complejo. Es una característica de un lenguaje de programación que permite que el mismo operador sea utilizado con tipos diferentes. Sobreposición de Operadores. soy círculo" Se puede hacer algo más complejo como hacer procedimientos que mostrará el punto o mostrará el círculo. éste provoca acciones totalmente distintas. Punto y Círculo pueden recibir cada uno el mensaje saluda y responder de distinta forma. Ejemplo: En el ejemplo 1.

Programación I Ing. En Sistemas 16 . Reneria García Bermúdez Ing.

En Sistemas 17 . Reneria García Bermúdez POO Es Consta Consta Abstracción Paradigma programación Objetos Clases Procedim ientos Posee principios Datos Nueva forma de pensar Poseen Tiempo de Vida Atributos Encapsulamiento Poseen Estado Métodos Herencia Múltiple Comunicación con mensajes Simple Comporta miento Propiedades Polimorfismo Ing.Programación I Mapa Conceptual Ing.

En un principio se consideraba C++ como lenguaje a utilizar. Instalación y configuración del Java Development Kit (JDK) Edición.2.2 1. California. Reneria García Bermúdez Unidad I: 1. por el roble que veía a través de la ventana de su despacho). La Maquina Virtual de Java(JVM). por cuestiones de propiedad intelectural. pero lo abandonó para crear un nuevo lenguaje desde cero al que llamo Oak (roble en inglés. Crear un lenguaje de programación fácil de aprender y de usar.2. aunque otros afirman que el nombre deriva de las siglas de James Gosling. ingeniero de Sun Microsystems.2. según la versión más aceptada. al existir ya un lenguaje con el nombre de Oak. Y así interrumpió todas las comunicaciones regulares con Sun y trabajó sin descanso durante 18 meses.2.9. ¿Qué es Java? Características de Java. El resultado fue un lenguaje que tenía similitudes con C. C++ y Objetive C y que no estaba ligado a un tipo de CPU concreta.8 1. Arthur Van Hoff. Creación y ejecución de aplicaciones Creación y ejecución de Applets Errores de programación. 1.1 1. en los que Sun veía un campo nuevo a explorar. Mas tarde.(++ .2 Elementos del Lenguaje 1. Intentaban desarrollar una nueva tecnología para programar la siguiente generación de dispositivos inteligentes.2.9.7 1.2. Gosling intentó primero extender y modificar C++ resultando el lenguaje C++ ++ . 1.3 1.2. pero tanto Gosling como Bill Joy lo encontraron inadecuado.1 Tipos de datos en Java.2.1 Historia de JAVA Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principio de los años 90´s. En Sistemas 18 .6 1. compilación y ejecución de programas. Se supone que le pusieron ese nombre mientras tomaban café (Java es nombre de un tipo de café.porque se añadían y eliminaban características a C++). se cambiaría el nombre de Oak a Java. Con la ayuda de otros ingenieros.9 Historia de Java. empezaron a trabajar en una pequeña oficina en Sand Hill Road en Menlo Park. 1.5 1.2.2. y Andy Bechtolsheim.4 1. Ing.2.Programación I Ing.2. originario de Asia). reclutó a varios colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto conocido como "El proyecto verde".2 Operadores y expresiones. En Diciembre de 1950 Patrick Naughton.

Al examinar las dinámicas de Internet. incluyendo sistema operativo. que son las partes de Java que pueden ser cargadas mediante una red de trabajo para después ejecutarlo localmente y así lograr soluciones dinámicas en computación acordes al rápido crecimiento del ambiente WEB.Programación I Ing. cuyo nombre venía de la combinación de teclas del teléfono de la oficina del Proyecto Green que permitía a los usuarios responder al teléfono desde cualquier lugar. se dio cuenta de forma oportuna y estableció el Proyecto Verde como una subsidiaria de Sun. se reconoce el potencial de Java y se acepta el proyecto. el equipo ya había desarrollado un sistema en un prototipo llamado Star7 (*7). las librerías. Después de mostrar a Scott McNealy y Bill Joy los prototipos de bajo nivel del sistema. El 29 de septiembre de 1994 se termina el desarrollo del prototipo de HotJava. Para 1992. Scott McNealy. sin embargo el equipo concluyó que el mercado para consumidores electrónicos smart y las cajas Set-Up en particular. Con el paso del tiempo HotJava se convirtió en un concepto práctico dentro del lenguaje Java y demostró que podría proporcionar multiplataformas para que el código pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros. dispositivo parecido a una PDA. mismas que se fueron dando mediante el sistema operativo base. En Sistemas 19 . De 1993 a 1994. el lenguaje Oak. el cese del Proyecto Verde coincidió con el nacimiento del fenómeno mundial WEB. hasta que el 3 de septiembre de 1992 se termina el desarrollo y con ello el Proyecto Verde. Reneria García Bermúdez En Agosto de 1991 Oak ya corría sus primeros programas. lo realizado por el ex equipo verde se adecuaba a este nuevo ambiente. Patrick Naughton procedió a la construcción del lenguaje de programación Java que se accionaba con un browser prototipo. no eran del todo eficaces. el presidente de la compañía Sun. alguna aplicación básica y el hardware. continuán con el desarrollo. Ing. La incipiente subsidiaria fracasó en sus intentos de ganar una oferta con TimeWarner. Una de las características de HotJava fue su soporte para los "applets". La subsidiaria Proyecto verde fue amortizada por la compañía Sun a mediados de 1994. Cuando se hace la demostración a los ejecutivos de Sun. el equipo de Naughton se lanzó en busca de nuevas oportunidades en el mercado. Por su parte. esta vez. Afortunadamente. Green OS.

sistemas de plataforma y servicios para aumentar las capacidades del lenguaje. Oracle. Microsoft. Netscape y Oracle. Java Soft otorgó permisos para otras compañías para que pudieran tener acceso al código fuente y al mismo tiempo mejorar sus navegadores. También les permitía crear herramientas de desarrollo para programación Java y los facultaba para acondicionar máquinas virtuales Java (JVM). herramientas. Silicon Graphics. Symantec. Los apples Java (basados en JDK 1. desde simuladores de mercado en Wall Street hasta juegos de uso doméstico y tarjetas de crédito: Java está en todas partes. en la conferencia SunWorld `95. Computer Asociates. que en ese momento solo corría en Solaris. Los nuevos proyectos de Java son co-patrocinados por cientos de millones de dólares en capital disponible de recursos tales como la Fundación Java. Ese mismo mes aparece la versión 1. a varios sistemas operativos./Lotus.0.Programación I Ing. Con la segunda alpha de Java en Julio. y Marc Andreessen. de Sun Microsystems. anunciaban la versión alpha de Java. Symantec. Muy pronto las licencias o permisos contemplaban prestigiosas firmas como: IBM. IBM. Informix. Reneria García Bermúdez El 23 de mayo de 1995.0 del JDK. Netscape Communications decide apoyar a Java applets en Netscape Navigator 2.02) son apoyados por los dos más populares navegadores web (Nestcape Navigator 3. se añade el soporte para Windows NT y en la tercera. y así trabajar con terceras partes para crear aplicaciones. En enero de 1995 Sun formá la empresa Java Soft para dedicarse al desarrollo de productos basados en la tecnologías Java.M. incluyendo Cisco Systems. Y como parte de su estrategia de crecimiento mundial y para favorecer la promoción de la nueva tecnología. John Gage.B. Toshiba y Novell. para Windows 95.0. Hoy en día. cofundador y vicepresidente de Netscape. Oracle.0 y Microsoft Internet Explorer 3. un fondo común de capital formado el verano pasado por 11 compañías. por ejemplo el Corel Office que actualmente está en versión Beta. y el hecho de que Java iba a ser incorporado en Netscape Navigator. el navegador mas utilizado de Internet. En Sistemas 20 . puede encontrar la tecnología Java en redes y dispositivos que comprenden desde Internet y superordenadores cientifícos hasta portátiles y teléfonos móviles. Sybase y otras poderosas empresas de software están construyendo Software 100% puro JAVA. I. en Agosto. Ing. Ese fue el factor clave que lanzó a Java a ser conocido y famoso.

Reneria García Bermúdez 1. con el propósito de crear un lenguaje que pudiera funcionar en redes computacionales heterogéneas ( redes de computadoras formadas por más de un tipo de computadora. Como la mayoría de los programadores están acostumbrados a programar en C o en C++.2. 1. Familiar. Interpretado. Robusto. El sistema de Java maneja la memoria de la computadora por ti. No te tienes que preocupar por apuntadores. Al compilar un programa en Java. etc. Este códido es interpretado por diferentes computadoras de igual manera. por lo tanto es interpretado. Como el código compilado de Java (conocido como byte code) es interpretado. etc.3 Características de Java. El sistema de Java tiene ciertas políticas que evitan se puedan codificar virus con este lenguaje. Portable. MAC's. Seguro. Ing. Java realiza todo esto sin necesidad de que uno se lo indique. el código resultante un tipo de código binario conocido como byte code. Independiente a la arquitectura. ya sean PC. estaciones de trabajo. y que fuera independiente de la plataforma en la que se vaya a ejecutar. Un lenguaje que soporta multiples threads es un lenguaje que puede ejecutar diferentes líneas de código al mismo tiempo. Dinámico. Java corre en máquina virtual.2 ¿Que es Java? El lenguaje de programación Java. Orientado a Objetos.Programación I Ing. De esa manera Java logra ser un lenguaje que no depende de una arquitectura computacional definida. fue diseñado por la compañía Sun Microsystems Inc. Java no requiere que compiles todas las clases de un programa para que este funcione. un programa compilado de Java puede ser utilizado por cualquier computadora que tenga implementado el interprete de Java. Multithreaded. que limitan lo que se puede y no puede hacer con los recursos críticos de una computadora. La filosofía de programación orientada a objetos es diferente a la programación convencional. El lenguaje fue diseñado con las siguientes características en mente:          Simple. Si realizas una modificación a una clase Java se encarga de realizar un Dynamic Bynding o un Dynamic Loading para encontrar las clases.2. especialmente para los applets.). Existen muchas restricciones. Elimina la complejidad de los lenguajes como "C" y da paso al contexto de los lenguajes modernos orientados a objetos. Esto significa que un programa de Java puede ejecutarse en cualquier máquina o plataforma. solamente hay que implementar un intérprete para cada plataforma. memoria que no se esté utilizando. el sintaxis de Java es muy similar al de estos. En Sistemas 21 .

3. Los dispositivos electrónicos se controlan mediante la utilización de microprocesadores de bajo precio y reducidas prestaciones. En Sistemas 22 . Creciente necesidad de interfaces mucho más cómodas e intuitivas que los sistemas de ventanas que proliferaban hasta el momento. Solamente es necesario. run anywhere". 2.java. etc. Los bytecodes posibilitan el objetivo de "write once. por tanto. Con el compilador se convierte el código fuente que reside en archivos cuya extensión es . Estas instrucciones son independientes del tipo de ordenador. compilar una vez el programa. Por ejemplo. Solaris. Ing. Java permite escribir un código común para todos los dispositivos. Gosling observó que muchas de las características que ofrecían C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuración. Reneria García Bermúdez Tres de las principales razones que llevaron a crear Java son: 1. El intérprete ejecuta cada una de estas instrucciones en un ordenador específico (Windows.Programación I Ing.class. el mismo programa Java puede correr en Windows 98. Por ello en los sus ratos libres creó un lenguaje de programación donde intentaba solucionar los fallos que encontraba en C++. Macintosh. a un conjunto de instrucciones que recibe el nombre de bytecodes que se guardan en un archivo cuya extensión es . etc). de escribir el programa una vez y que se pueda correr en cualquier plataforma que disponga de una implementación de la JVM. Macintosh. 1. Fiabilidad del código y facilidad de desarrollo. Enorme diversidad de controladores electrónicos. Cada intérprete Java es una implementación de la Máquina Virtual Java (JVM).2. que varían cada poco tiempo y que utilizan diversos conjuntos de instrucciones.4 La Máquina Virtual Java El lenguaje Java es a la vez compilado e interpretado. pero se interpreta cada vez que se ejecuta en un ordenador.

su misión principal es la de garantizar la portabilidad de las aplicaciones Java. En Sistemas 23 . algo más que un lenguaje. Las tareas principales de la JVM son las siguientes:      Reservar espacio en memoria para los objetos creados Liberar la memoria no usada (garbage collection).. de modo que no queden huecos. El cargador de clases dentro de la JVM ve que clases necesita el applet. Dentro del proceso de carga. </APPLET>. Además.Programación I Ing. como los accesos a los dispositivos Vigilar el cumplimiento de las normas de seguridad de las aplicaciones Java Esta última tarea. Por ejemplo. el API de Java y la Máquina Virtual Java forman una capa intermedia (Java platform) que aísla el programa Java de las especificidades del hardware (hardware-based platform). las clases se examinan mediante Ing. es una de las más importantes que realiza la JVM.class. por tanto. Reneria García Bermúdez Java es. El intérprete Java específico ejecuta las instrucciones que se guardan en los archivos cuya extensión es . ya que la palabra Java se refiere a dos cosas inseparables: el lenguaje que nos sirve para crear programas y la Máquina Virtual Java que sirve para ejecutarlos. Define esencialmente un ordenador abstracto y especifica las instrucciones (bytecodes) que este ordenador puede ejecutar. pone en marcha la JVM y proporciona la información que aparece en la etiqueta <APPLET > . Asignar variables a registros y pilas Llamar al sistema huésped para ciertas funciones. La Máquina Virtual Java (JVM) es el entorno en el que se ejecutan los programas Java.. cuando el navegador encuentra una página web con un applet. las propias especificaciones del lenguaje Java contribuyen extraordinariamente a este objetivo:     Las referencias a arrays son verificadas en el momento de la ejecución del programa No hay manera de manipular de forma directa los punteros La JVM gestiona automáticamente el uso de la memoria. Como vemos en la figura. No se permiten realizar ciertas conversiones (casting) entre distintos tipos de datos.

En la siguiente pantalla. que se llama NetBeans. Cuando aparezca el cuadro de licencia.6 Bundle". Ing. 5. 2. El jdk tiene dos familias principales: Java 2 Standard Edition o J2SE.2 sin NetBeans.Instalación del jdk 1. 1. En la siguiente pantalla sobre los navegadores web. también de Sun. Paso 1. Cuando termine. Es recomendable usar esta versión para evitar problemas de instalación.y.4. ten paciencia.7. y Java 2 Enterprise Edition o J2EE. A pesar de que NetBeans es un entorno muy potente y amigable. jGrasp es una versión mejorada del editor pcGRASP que está instalado en los laboratorios. no cambies nada y pulsa "Install>".z. no se va a emplear en el laboratorio porque en el disco de red no funciona muy bien. Multi-language (j2sdk-1_4_2_06-windows-i586-p.3 or higher)". identificadas por una secuencia de números x. de sus sitios web de origen: 1. Si quieres usar NetBeans selecciona "Download J2SE v 1. 6. J2SE se distribuye individualmente o junto con un entorno de edición de código en Java. la edición empresarial.4. pulsa "Finish" y si te pide reiniciar el ordenador. más fácil de instalar y sobre todo de configurar. Lo más cómodo y parecido al laboratorio es emplear J2SE 1. Sin embargo.2. orientado a uso personal.Programación I Ing. Reneria García Bermúdez un verificador que asegura que las clases contienen código válido y no malicioso.2.5 Instalación y configuración del Java Development Kit (JDK) Paso 0. y jGrasp como editor. pulsa "I accept the terms in the licence agreement" y luego "Next>". En Sistemas 24 . se ejecuta el applet..Descarga del software Primero es necesario descargar los programas. en un ordenador personal puede ser una buena elección como editor de programas en Java. desarrollado por Sun Corporation. Haz doble click en el programa de instalación del jdk: "j2sdk-1_4_2_06-windows-i586p. 2.5 (Java 1.59 MB).2_04 SDK with NetBeans 3. Abre la página de jGrasp.1 MB). no cambies nada y pulsa "Next>". 3.exe] Paso 2. en caso contrario.exe | jgrasp175. Abre la página de J2SE 1.4 SDK" (¡cuidado: NO J2EE!). hazlo. 4. [j2sdk-1_4_2_06-windows-i586-p. Espera a que acabe de copiar todos los ficheros. haz click en "Download J2SE 1. Esto te llevará unos minutos. y guárdalo en disco (ocupa 2.Descripción de los programas Para compilar y ejecutar Java se utiliza habitualmente Java Development Kit (kit de desarrollo de Java) o jdk.exe)" y guárdalo en disco (tardará un rato: son 51. Pulsa abajo en el botón "jGRASP Exe" dentro de "jGRASP 1.exe"... A su vez. Tras aceptar la licencia. cada familia tiene diferentes versiones.4. Finalmente. selecciona "Windows Offline Installation.

Configuración del jdk Abre la "Consola del Sistema". Habitualmente puedes encontrarla en "Menú Inicio">Programas->Accesorios. ¡Enhorabuena! No hace falta que sigas con este paso porque ya lo tienes configurado.Programación I Ing... también puedes abrirla yendo a "Menú Inicio">Ejecutar y escribir "cmd" (o si no prueba con "command"). En el símbolo del sistema. En Sistemas 25 . Reneria García Bermúdez Paso 3.).. "Command prompt". Sigue con el paso siguiente. "Console". si obtienes un mensaje como éste: Ing. Sin embargo. escribe java Si obtienes un mensaje similar a éste: .. "DOS Console". Si no la encuentras.. también llamada "Símbolo del Sistema" (o en inglés.

SIN BORRAR NADA): 5. Reneria García Bermúdez . <lo que hubiera antes>. busca una variable que se llama "Path". Tanto en el cuadro superior como el inferior.. 1.Programación I Ing. haz lo siguiente dos veces).2_06\bin y pulsa "Aceptar". En el cuadro de valor de variable. Pulsa con el botón derecho del ratón sobre "Mi PC" y selecciona "Propiedades".4. haz click sobre ella y pulsa el botón "Modificar" (si aparece en los dos cuadros.. sigue las siguientes instrucciones. 3. Selecciona la pestaña "Opciones avanzadas" y pulsa en el botón inferior "Variables de entorno". añade al final (cuidado.c:\j2sdk1. Ing. 4. En Sistemas 26 . 2.

Reneria García Bermúdez 6.. <lo que hubiera antes>. En Sistemas 27 . 8. Busca otra vez en la lista de variables si existe "CLASSPATH". Si tenías abierta la consola del sistema. Si existe. Si no existe. haz lo siguiente dos veces). Ing. En el cuadro de valor de variable. sigue con el siguiente punto. añade al final (cuidado. ciérrala para que se carguen los nuevos valores. click sobre ella y pulsa el botón "Modificar" (si aparece en los dos cuadros.Programación I Ing. SIN BORRAR NADA): 7. Cierra el cuadro de diálogo de variables de entorno con "Aceptar" y otra vez "Aceptar" para "Propiedades del sistema". no pasa nada. (cuidado: con un PUNTO al final) y pulsa "Aceptar".

El Kit de desarrollo de Java (JDK) contiene las herramientas y librerías necesarias para crear y ejecutar applets y aplicaciones en Java. Haz doble click en el programa de instalación del jGrasp: "jgrasp175. Espera a que acabe de copiar todos los ficheros. sigue con el paso 4. programa o archivo por lotes ejecutable. 7. Debe compilar correctamente. En la siguiente pantalla de "File Associations". 3. 4.Prueba completa 1. Cuando aparezca el cuadro de licencia..Instalación del jGrasp 1. revisa que has seguido todos los pasos correctamente y vuelve a repetir el paso 3. Pulsa sobre el icono "Run" (una persona corriendo).exe". Esto te llevará muy poco. En la siguiente pantalla de "Start Menu Folder". Si no te funciono. 2. En la siguiente pantalla de "Install Location".java. En la siguiente pantalla. Reneria García Bermúdez Ábre la consola otra vez y comprueba que al escribir javac y java se obtienen los mensajes habituales de Java. . En Sistemas 28 . Pulsa sobre el icono "Compile" (una cruz verde). Si has llegado hasta aquí. no cambies nada (o pon jGrasp) y pulsa "Next>".Programación I Ing. selecciona "Standard" en el desplegable y pulsa "Next>". pulsa "Finish". 6.6 Edición. 3. Si todo ha ido bien. Abre jGrasp y crea un fichero nuevo en Java grabándolo como HolaMundo. 8. A continuación se listas algunas de las utilidades que se pueden encontrar en el JDK: Ing..2. Si sigue apareciendo el mensaje "javac" no se reconoce como un comando interno o externo. "Run I/O") el mensaje del programa. 2. 4. compilación y ejecución de programas. jGrasp no hace falta configurarlo de forma especial. ¡muchas felicidades! Ya tienes tu entorno dispuesto y preparado para trabajar con Java en Windows XP. Al terminar. 5. Paso 4. Paso 5.. 1. no cambies nada y pulsa "Install".. Contacta con los profesores pidiendo ayuda. Escribe el código del programa HolaMundo (que imprime "Hola Mundo!!" en pantalla). no cambies nada y pulsa "Next>". pulsa "I agree". lo mejor es que no sigas adelante porque no va a servir de nada hasta que no resuelvas los problemas. Debe ejecutarse correctamente y salir en la ventana de salida (abajo.

2\bin.1.%PATH% set CLASSPATH=C:\jdk1. no existe el archivo classes.Programación I  Ing.javasoft. Es el compilador de Java.zip. por lo que al momento de llevar a cabo la instalación.8\lib\classes. En la mayoría de las ocasiones puede utilizarse en lugar de un Navegador Web. hacemos lo siguiente: set PATH=C:\jdk1. Es un desensamblador de Java. javadoc. básicamente se tiene que indicar el directorio en el cual se colocarán los archivos y directorios que se distribuyen en el JDK.2\jre\lib. Una vez instalado el JDK se tiene que actualizar la variable de ambiente PATH y crear una nueva variable llamada CLASSPATH. Es el intérprete de Java. Ing. Por ejemplo.8. Reneria García Bermúdez javac. java. Es una herramienta utilizada para trabajar con los archivos JAR. http://www.2.2. Se utiliza para crear documentación en formato HTML a partir de el código fuente Java y los comentarios que contiene. que contiene una librería de clases que conforma el API de Java. La variable de ambiente CLASSPATH le dice a la Máquina Virtual de Java y otras aplicaciones de Java en donde buscar las clases que se necesitan para ejecutar un programa. Se encarga de convertir el código fuente escrito en Java a bytecode...com/ .  Instalación y configuración del JDK (Windows 9x) El JDK normalmente se distribuye en archivos de instalación auto-extraibles. tal como el archivo classes.zip por lo que sólo se hace referencia al directorio jre\lib. Es un visor de applets. javap.8\bin.1. En Java 2 por lo general. jar. appletviewer. hacemos lo siguiente:   set PATH=C:\jdk1.%PATH% set CLASSPATH=C:\jdk1.2 o posterior). si el JDK fue instalado en C:\jdk1.1. Obtención del JDK       El JDK se puede obtener directamente de forma gratuita del sitio Web de JavaSoft. Por ejemplo. si se instaló una versión de Java 2 (JDK 1.zip. En Sistemas 29 . Ejecuta el bytecode a partir de los archivos class.

Programación I Ing. básicamente el compilador y el intérprete de Java. javac y java. Uso del JDK para construir aplicaciones Uso del JDK para construir applets Ing. En Sistemas 30 . respectivamente. Reneria García Bermúdez 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.

Editar el archivo con el código fuente Guardar el archivo Ing.Programación I Ing. Reneria García Bermúdez Creación y ejecución de aplicaciones A continuación se describe de manera gráfica cuales son los pasos a seguir para construir una aplicación Java usando el JDK. En Sistemas 31 .

Editar el archivo con el código fuente del applet Ing. Reneria García Bermúdez Compilar y ejecutar el programa Creación de applets con el JDK A continuación se describe de forma gráfica cuales son los pasos básicos para crear applets utilizando el JDK. En Sistemas 32 .Programación I Ing.

En Sistemas 33 . Reneria García Bermúdez Guardar el archivo Compilar el código fuente Ing.Programación I Ing.

Reneria García Bermúdez Editar el archivo HTML que incluirá el applet Guardar el archivo HTML Abrir el archivo HTML con un navegador (Netscape) Ing. En Sistemas 34 .Programación I Ing.

Comentarios Java ofrece tres tipos de comentarios: dos para comentarios regulares en el código fuente y uno para la documentación especial del sistema javadoc. Literales. Los comentarios de varias líneas se incluyen entre los símbolos /* y */. /* Este es un ejemplo de un comentario de varias líneas.1. 1.Programación I Ing.1 Tipos de datos en Java. Variables y tipos de datos. Expresiones y operadores. La sintaxis de Java especifica como se escribirán los siguientes elementos:        Comentarios. Operadores y expresiones La sintaxis de un lenguaje define cómo se usarán las palabras claves. como en C y C++. Ing. Reneria García Bermúdez Abrir el archivo HTML con un navegador (Explorer) 1.1 Errores de programación. En Sistemas 35 .2. Identificadores. Palabras clave.2. Bloques y sentencias. los operadores y las variables para construir y evaluar expresiones.  Comentarios de varias líneas.

El comentario se inicia cuando se encuentra la doble diagonal y continua hasta el final de la línea. Reneria García Bermúdez Comentarios de una sola línea. En Sistemas 36 . si el editor de texto lo soporta.Programación I */  Ing. los caracteres ASCII $ y _ son también considerados letras Java. Realmente este tipo de comentario es el mismo que el de varias líneas con la diferencia de que la información que contenga será usada para un procesamiento especial que lleva a cabo la herramienta javadoc. No hay un límite en lo concerniente al número de caracteres que pueden tener los identificadores. /** 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 números. Para propósitos de construir identificadores. Las letras Java incluyen los caracteres ASCII A-Z y a-z. Los identificadores no se limitan a los caracteres ASCII. // Este es un comentario de una sola linea //Este es otro comentario  Comentarios para documentación. Se distingue del comentario de varias líneas porque se agrega un asterisco adicional al inicio del comentario. Estos son algunos ejemplos de identificadores válidos: _varx $var1 MAX_NUM var2 Ing. Para comentariar una sola línea se utiliza la doble diagonal //. Los digitos Java incluyen los digitos ASCII 0-9. se pueden escribir identificadores utilizando caracteres Unicode.

456F //literal float       Literales booleanas Las literales boolenas consisten de las palabras reservadas true y false. Literales Una literal es un valor constante formado por una secuencia de caracteres. Son ejemplos de literales los números. éstas son reservadas y no pueden ser utilizadas como identificadores. así que tampoco pueden ser utilizadas como identificadores. Ing. ** Palabra clave agregada en Java 2 true. Reneria García Bermúdez Palabras clave La siguiente tabla muestra las palabras claves de Java.456 //literal double 123L //literal long 123. 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. Cualquier declaración en Java que defina un valor constante -un valor que no pueda ser cambiado durante la ejecución del programa.es una literal.  Literales numéricas Se pueden crear literales numéricas a partir de cualquier tipo de dato primitivo. En Sistemas 37 .Programación I Ing. and null no son palabras claves pero son palabras reservadas. Ej. false. los caracteres y las cadenas de caracteres. 123 //literal int 123.

probar y modificar cadenas con facilidad. "cadena123". Reneria García Bermúdez Literales de caracteres Las literales de caracteres se expresan por un solo caracter entre comillas sencillas Ej. "hola". operadores y llamadas de métodos construida de acuerdo a la sintaxis del lenguaje que devuelve un valor. 'a'. La tabla siguiente muestra los distintos tipos de operadores que utiliza Java. Las cadenas en Java son instancias de la clase String. "12345" Expresiones y Operadores  Expresión Una expresión es una combinación de variables. Las literales de cadena se representan por una secuencia de caracteres entre comillas dobles.  Operadores Los operadores son símbolos especiales que por lo común se utilizan en expresiones. Ej. Operador Significado Operadores aritméticos + * / Ejemplo Suma Resta Multiplicación División a+b a-b a*b a/b Ing. '%'. por ello cuentan con métodos que permiten combinar. '7'  Literales de cadena Una cadena es una combinación de caracteres. En Sistemas 38 . El tipo de dato del valor regresado por una expresión depende de los elementos usados en la expresión.Programación I  Ing.

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 Concatenación de cadenas Acceso a variables y métodos Agrupación de expresiones a++ (postincremento) ++a (preincremento) a-. En Sistemas 39 .var1 a = (a + b) * c -- (tipo)expr + . Reneria García Bermúdez % Módulo Operadores de asignación a%b = += -= *= /= %= Asignación Suma y asignación Resta y asignación Multiplicación y asignación División y asignación Módulo y asignación Operadores relacionales a=b a += b (a=a + b) a -= b (a=a .Programación I Ing. Ing. ( ) La tabla siguiente muestra la precedencia asignada a los operadores.(postdecremento) --a (predecremento) a = (int) b a = "cad1" + "cad2" a = obj. éstos son listados en orden de precedencia.

Los operadores de asignación son evaluados de derecha a izquierda. Reneria García Bermúdez Los operadores en la misma fila tienen igual precedencia Operador . Cada una tiene un nombre. En Sistemas 40 . [] () ++ -.! ~ new (tipo)expr * / % +<< >> >>> < > <= >= == != & ^ | && || ?: = += -= *= /= %= &= ^= |= <<= >>= >>>= Notas Los corchetes se utilizan para los arreglos ! es el NOT lógico 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 lógico OR lógico Condicional Asignación Todos los operadores binarios que tienen la misma prioridad (excepto los operadores de asignación) son evaluados de izquierda a derecha. Ing. Java tiene tres tipos de variables: de instancia. un tipo y valor. Variables y tipos de datos Las variables son localidades de memoria en las que pueden almacenarse datos. de clase y locales.Programación I Ing.

También se puede asignar un valor inicial a las variables al momento de crearlas. Ing. En Sistemas 41 . int x. que tiene la siguiente forma: TipoDato nombreVariable. variables que son vistas en cualquier parte del programa. El tipo de una variable determina los valores que puede almacenar y las operaciones que se pueden hacer sobre ella. Se declaran y se utilizan dentro de las definiciones de los métodos. Para dar a una variable un tipo y un nombre. * A diferencia de otros lenguajes. y. Son similares a las variables de instancia. String nombre. // variable de tipo String int edad. // variable del tipo Punto Se pueden escribir varios nombres de variables del mismo tipo en una sola línea. apellido. con la excepción de que sus valores son los mismos para todas las instancias de la clase. // variable de tipo int Punto p. se escribe una declaración de una variable. Ej. 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.Programación I  Ing. es decir. Reneria García Bermúdez Variables de instancia. Se utilizan para definir los atributos de un objeto. El nombre de la variable debe de ser un identificador válido. apellido="MiApellido". int edad = 24. z.  Variable locales.  Variables de clase. y se usa para referirse a los datos que contiene una variable. Java no tiene variables globales. String nombre. String nombre.

En Sistemas 42  .50. double d = 10. o un valor booleano. cualquier numérico con punto flotante automáticamente se considera double. Ing. Tipo Descripción Números enteros byte short int long Tamaño/Formato Entero byte Entero corto Entero Entero largo Números 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 presición Otros tipos 32-bit IEEE 754 64-bit IEEE 754 char boolean Un solo carácter Un valor booleano 16-bit caracteres Unicode true o false En Java.50F. Reneria García Bermúdez Variables y tipos de datos Las variables en Java pueden ser uno de los siguientes tipos:  Tipo primitivo. Referencia. Para que sea considerado float se agrega una letra "f" o "F" al final del valor.Programación I Ing. Una variable de tipo primitivo contiene un solo valor del tamaño y formato apropiado de su tipo: un número. La tabla siguiente lista los tipos de datos primitivos soportados por Java. float f = 10. un carácter.

Ej. //referencia a un objeto de la clase Punto int[] var_arreglo. //referencia a un arreglo de enteros Ing.Programación I Ing. éstas son identificadores de instancias de alguna clase en particular. Las referencias en Java no son como en C++. El valor de una variable del tipo referencia es una dirección de un conjunto de valores representados por una variable. Reneria García Bermúdez Los arreglos. En Sistemas 43 . String cad. las clases y las interfaces son del tipo referencia. //referencia a un objeto de la clase String Punto p.

Sign up to vote on this title
UsefulNot useful