Programación JAVA Nivel Inicial. Fundamentos de Java

207  Descargar (0)

Texto completo

(1)

Programación JAVA Nivel Inicial

(2)

1 Explicando la Tecnología Java  

       Este módulo es la introducción al lenguaje Java. A lo largo del mismo describiremos  los conceptos fundamentales del lenguaje de programación Java, aprenderemos de los  tres grupos de productos de la tecnología Java y resumiremos sus etapas de ciclo de  vida. 1.1 Objetivos       Una vez finalizado este módulo, usted será capaz de: Describir los conceptos fundamentales del lenguaje de programación Java  Listar los tres grupos de productos de la tecnología Java  Resumir cada una de las siete etapas del ciclo de vida de un producto. Este módulo ofrece una visión general de la tecnología Java, de la programación basada  en la tecnología Java y del ciclo de vida del desarrollo de una aplicación. 1.2 Verificación del Progreso       Escriba un número (entre 1 y 5) en la columna "Al comenzar el módulo" para calificar  su capacidad para llevar a cabo cada uno de los objetivos de este módulo. Una vez que  haya finalizado este módulo, usted deberá reevaluar sus capacidades y determinar el  aprendizaje adquirido para cada objetivo. El resultado de esta comparación ayudará a Sun Educational Services (SES) en la  efectividad de esta capacitación. Diga a su profesor aquellos ítem con la menor  calificación (un 0 o un 1 en la columna derecha), para determinar si es necesario  presentar material adicional durante sus clases. Adicionalmente, esta información será  reenviada al grupo de desarrollo de cursos de SES para futuras revisiones del curso.

(3)

1.3 Relevancia       Discusión – Las siguientes preguntas son relevantes para comprender de qué se trata la  tecnología Java: ¿Cuál es su definición para las siguientes palabras? Seguridad  Orientación a Objetos  Independencia  Dependencia  Distribución ¿Cuáles son las etapas comprendidas en la construcción de alguna cosa, como por  ejemplo una casa o un mueble? 1.4 Recursos Adicionales       Recursos adicionales – Las siguientes referencias proporcionan información adicional  sobre los temas descritos en este módulo: Java Technology: An Early History. (Online). Disponible en: http://java.sun.com/features /1999/05/birthday.html Una historia del quinto aniversario del grupo y las personas que participaron en el  desarrollo de la tecnología Java. The Java Tutorial. (Online). Disponible en: http://java.sun.com/docs /books/tutorial/ Una guía práctica para programadores con cientos de ejemplos completos y en  funcionamiento. 1.5 Conceptos Fundamentales del Lenguaje de Programación Java       El lenguaje de programación Java se originó en 1991 como parte de un proyecto de  investigación para desarrollar un lenguaje de programación, llamado "Oak", que  permitiera hacer un puente para disminuir la brecha de comunicación entre varios tipos  de dispositivos electrónicos, como por ejemplo reproductores de video casettes (VCR) y  televisores. Específicamente, un equipo de desarrolladores de software altamente  calificado (denominado el equipo Verde) quería crear un lenguaje de programación que  permitiera a los dispositivos electrónicos con distintas unidades centrales de proceso  (CPU) compartir los mismos beneficios del software. El concepto inicial falló después de varios intentos con las compañías fabricantes de  dispositivos electrónicos. El equipo Verde fue entonces orientado a buscar otro mercado  para el nuevo lenguaje de programación. Afortunadamente, comenzó la popularidad del 

(4)

World Wide Web y el equipo reconoció que el lenguaje Oak era perfecto para  desarrollar componentes multimedia para mejorar las páginas Web. Estas pequeñas  aplicaciones, denominadas applets, constituyeron el primer uso del lenguaje Oak y los  programadores usuarios de Internet adoptaron lo que se constituiría en el lenguaje de  programación Java. El lenguaje de programación Java fue diseñado para ser: Orientado a objetos.  Distribuido.  Simple.  Multihilo.  Seguro.  Independiente de la plataforma. 1.5.1 Orientado a Objetos    El lenguaje de programación Java es un lenguaje de programación orientado a objetos  (POO ) porque uno de los principales objetivos del programador en tecnologías Java es  crear objetos, fragmentos de código autónomo, que puedan interactuar con otros objetos  para resolver un problema. La POO comenzó con el lenguaje de programación  SIMULA­67 en 1967 y condujo a la creación de otros lenguajes de programación  populares, como C++, en el que el lenguaje de programación Java está basado. La POO difiere de la programación procedural en que esta última hace hincapié en la  secuencia de los pasos requeridos para resolver un problema, mientras que la POO hace  hincapié en la creación y la interacción de los objetos.

(5)

1.5.2 Distribuido  

 El lenguaje de programación Java es un lenguaje distribuido porque ofrece soporte para  tecnologías de redes distribuidas, tales como Remote Method Invocation (RMI), 

(6)

Common  Object Request Broker Architecture (CORBA), y Universal Resource  Locator (URL). Adicionalmente, la capacidad de carga dinámica de clases de la tecnología Java permite  que fragmentos de código sean descargados a través Internet y ejecutados sobre un  computador personal. 1.5.3 Simple    El lenguaje de programación Java es simple debido a que sus diseñadores quitaron  algunas de las construcciones complejas y poco claras que se encuentran en otros  lenguajes de programación populares.  Por ejemplo, el lenguaje de programación Java no permite que los programadores  puedan manipular directamente punteros a ubicaciones de memoria, lo que constituye  una característica compleja de los lenguajes de programación C y C++, que  frecuentemente es mal usada.  En cambio, el lenguaje de programación Java sólo permite a los programadores  manipular objetos usando referencias a objetos. El lenguaje de programación utiliza  también una característica denominada "garbage collector" para controlar y eliminar  aquellos objetos que ya no están referenciados. 

(7)

Otra característica que hace simple al lenguaje de programación Java es que un tipo de  datos boolean puede tener un valor true (verdadero) o false (falso), a diferencia de otros  lenguajes de programación donde el valor también puede ser 1 o 0. 1.5.4 Multihilo    El lenguaje de programación Java ofrece facilidades de multihilo, esto es, realizar  varias tareas al mismo tiempo, tales como consultar una base de datos y desplegar una  interfaz de usuario. La tecnología multihilo posibilita que un programa basado en la  tecnología Java sea muy eficiente en el uso que hace de los recursos del sistema. 1.5.5 Seguro    Los programas basados en la tecnología Java son seguros debido a que el lenguaje de  programación Java, junto al entorno en el cual estos programas ejecutan, utilizan  medidas de seguridad para proteger los programas de ataques externos. Estas medidas  incluyen: Prohibir el manejo de la memoria usando punteros  Prohibir a los programas distribuidos, tales como los applets, leer y escribir a un disco  duro de un computador.  Verificar que todos los programas basados en la tecnología Java contienen código  válido. 

(8)

Soportar firmas digitales. El código basado en la tecnología Java puede ser "firmado"  por una compañía o por una persona de forma tal que otra persona que reciba el código  pueda verificar la legitimidad del mismo. 1.5.6 Independiente de la Plataforma    Los programas escritos en otros lenguajes requieren generalmente numerosas  modificaciones para poder ejecutarse sobre más de un tipo de plataforma  (computacional). Se entiende por plataforma computacional una combinación de una  CPU y un sistema operativo. Esta dependencia de la plataforma se debe a que muchos  lenguajes requieren que se escriba código específico para la plataforma subyacente.  Los lenguajes de programación populares como C y C++ requieren que el programador  compile y ensamble sus programas, obteniendo como resultado un programa ejecutable  único para una determinada plataforma. A diferencia de C y C++, el lenguaje de  programación Java es independiente de la plataforma. Programas dependientes de la plataforma: Un compilador es una aplicación que convierte un programa escrito por un  programador, en un código específico para una CPU. A este código se le denomina  código de máquina. Estos archivos específicos para cada plataforma (archivos binarios)  se combinan frecuentemente con otros archivos, tales como bibliotecas que contienen  código previamente escrito, usando un ensamblador para crear un programa dependiente  de la plataforma (al que se le denomina ejecutable), y que puede ser ejecutado por un  usuario final.

(9)

Programas independientes de la plataforma: Un programa basado en la tecnología Java puede ejecutar sobre varias combinaciones  de CPUs y sistemas operativos diferentes, tales como: Solaris OS sobre un chip SPARC®, MacOS sobre un chip Motorola y Microsoft  Windows sobre un chip Intel, generalmente con muy pocas o sin modificaciones Al igual que los programas C y C++, los programas basados en la tecnología Java  también son compilados usando un compilador de la tecnología Java. Sin embargo, el  formato resultante de un programa basado en la tecnología Java compilado es bytecode  de la tecnología Java independiente de la plataforma, en lugar de código de máquina  específico para una CPU. Luego que el bytecode es creado, es interpretado (ejecutado)  por un intérprete de bytecode denominado la máquina virtual (o MV).  Una máquina virtual es un programa para una plataforma específica que entiende  bytecode independiente de la plataforma y que puede ejecutarlo sobre una plataforma  particular.  Por esta razón, el lenguaje de programación Java es frecuentemente referido como un  lenguaje interpretado y los programas con tecnología Java son denominados portables o  ejecutables sobre cualquier plataforma. Existen varios lenguajes interpretados, como por  ejemplo Perl.  Para que los programas con tecnología Java sean independientes de la plataforma, se  requiere una máquina virtual, denominada la "Máquina Virtual Java", sobre cada  plataforma donde los programas serán ejecutados. La Máquina Virtual Java es  responsable de: interpretar el código basado en la tecnología Java,  cargar las clases Java y  ejecutar los programas basados en la tecnología Java. Sin embargo, un programa basado de la tecnología Java necesita más que una Máquina  Virtual Java para poder ejecutar. Un programa basado en la tecnología Java necesita  también un conjunto de bibliotecas de clases Java estándar para la plataforma. Las  bibliotecas de clases Java son bibliotecas de código previamente escrito que pueden ser  combinadas con el código que usted escriba para crear aplicaciones robustas.  Conjuntamente, el software de la JVM y las bibliotecas de clase Java, son denominados  el entorno de ejecución de Java (Java runtime environment JRE). Los entornos de  ejecución de Java están disponibles en Sun Microsystems para muchas de las  plataformas más comunes. La capacidad de los programas basados en la tecnología Java para ejecutar sobre todas  las plataformas es central en el lema de Sun Microsystems "Escribir una vez, ejecutar en  cualquier lugar™" ("Write Once, Run Anywhere™").

(10)
(11)
(12)

1.6 Grupos de Productos de la Tecnología Java     

 Sun Microsystems provee una línea completa de productos de tecnología Java que van  desde kits que crean programas basados en la tecnología Java hasta entornos para  emular dispositivos electrónicos y móviles (por ejemplo, teléfonos móviles).

(13)

1.6.1 Identificación de los Grupos de Productos de la Tecnología Java  Las tecnologías Java, tales como la Máquina Virtual Java, están incluidas (en diferentes  formas) en tres grupos de productos, cada uno de los cuales fue diseñado para satisfacer  las necesidades de un mercado objetivo paricular: Java™ 2 Platform, Standard Edition (J2SE™) ­ Permite el desarrollo de applets y  aplicaciones que ejecutan en el navegador Web y sobre el escritorio del computador,  respectivamente. Por ejemplo, usted puede utilizar el J2SE Software Developers Kit  (SDK) para crear un programa procesador de palabras para un computador personal. Java™ 2 Platform, Enterprise Edition (J2EE™) ­ Permite crear grandes aplicaciones  empresariales distribuidas cliente­servidor. Por ejemplo, se puede utilizar el J2EE SDK  para crear una aplicación correspondiente al sitio web de una compañía de ventas al por  menor, implementando sobre él una tienda virtual (eCommerce o Comercio  Electrónico)  Java™ 2 Platform, Micro Edition (J2ME™) ­ Permite crear aplicaciones para  dispositivos electrónicos con recursos restringidos. Por ejemplo, usted puede utilizar  J2ME SDK para crear un juego que ejecute en un teléfono móvil. Entre otras tecnologías Java, cada edición incluye un kit de desarrollo de software  (SDK) que permite a los programadores crear, compilar y ejecutar sus programas  basados en la tecnología Java sobre una plataforma particular.

(14)

1.6.2 Selección del Grupo de Productos de la Tecnología Java Correctos    Mientras que muchos programadores Java se especializan en el desarrollo de  aplicaciones para un mercado objetivo particular, los programadores generalmente  comienzan sus carreras creando aplicaciones y applets para computadores personales. Por lo tanto, el kit J2SE SDK es el grupo de productos más usado por los  programadores mientras aprenden el lenguaje de programación Java™. 1.6.3 Uso de los componentes del SDK de la Plataforma Java 2, Standard Edition    Sun Microsystems ha desarrollado una versión del SDK para la Plataforma Java 2,  Standard Edition para: el sistema operativo Solaris OS sobre el chip SPARC (32 bits),  el sistema operativo Microsoft Windows sobre el chip Intel (32 bits),  el sistema operativo Linux sobre el chip Intel y  el sistema operativo Solaris OS sobre el chip SPARC (64©\bits). El SDK para la Plataforma Java 2, Standard Edition incluye: El entorno de ejecución de Java: ­Una Máquina Virtual Java para la plataforma que usted seleccione. ­Las bibliotecas de clases Java para la plataforma que usted seleccione.  Un compilador Java  Documentación de la biblioteca de clases Java (API) (como un archivo para ser  descargado en forma independiente).  Utilidades adicionales, tales como programas para crear archivos JAR (Java archive) y  para depurar programas basados en la tecnología Java.  Ejemplos de programas basados en la tecnología Java.

(15)

Demostración ­ Su profesor realizará demostraciones de cuatro tipos de aplicaciones  basadas en la tecnología Java. Estas aplicaciones son: Una aplicación con tecnología J2SE SDK  Un applet con tecnología J2SE SDK  Una aplicación con tecnología J2EE SDK  Una aplicación con tencología J2ME SDK Durante la demostración, usted debería poner especial atención a: Cómo se ejecutan el applet y la aplicación (si la ejecución se realiza a través del ingreso  de comandos, haciendo clic sobre un ícono, etc.)  Desde dónde se ejecutan el applet o la aplicación (si es dentro de un navegador Web, un  dispositivo de consumidor, etc.) 1.7 Etapas del Ciclo de vida de un Producto       El ciclo de vida de un producto (CVP) representa un conjunto de etapas aceptado por la  industria, que usted debería seguir cuando desarrolle un nuevo producto. Hay siete  etapas en el CVP. Estas etapas son: Análisis  Diseño  Desarrollo  Prueba  Implementación  Mantenimiento  Fin de Vida

(16)

1.7.1 Etapa de Análisis    El análisis es el proceso de investigación de un problema que se quiere resolver con un  producto. Entre otras tareas, el análisis consiste en: Definir claramente el problema que se quiere resolver, el nicho de Mercado al que está  dirigido el producto o el sistema que desea crear. El límite de un problema es también  conocido como el alcance del proyecto.  Identificar los sub­componentes claves que componen el producto total.

(17)

1.7.2 Etapa de Diseño  

 El diseño es el proceso que consiste en aplicar los resultados obtenidos durante la etapa  de análisis. La primera tarea durante la etapa de diseño consiste en desarrollar blueprints  o especificaciones para los productos y componentes del sistema.

(18)

El Desarrollo consiste en la creación de los componentes propiamente dichos, a partir  de las maquetas o blueprints creados durante la etapa de diseño. 1.7.4 Etapa de Prueba    La Prueba consiste en el aseguramiento de que los componentes individuales, o el  producto en su totalidad, satisfacen los requerimientos de la especificación creada  durante la etapa de diseño. La Prueba es realizada generalmente por un equipo integrado por personas que no  intervinieron en el desarrollo del producto. Este equipo asegura que el producto está  probado, sin ninguna intromisión por parte del desarrollador.

(19)

1.7.5 Etapa de Implementación  

(20)

1.7.6 Etapa de Mantenimiento

El Mantenimiento consiste en la reparación de los problemas que puedan surgir con el  producto y liberar el producto como una nueva versión o revisión.

(21)

1.7.7 Etapa Fin de Vida    Mientras que el CVP no tiene una etapa separada para el comienzo de un concepto o  proyecto, tiene una etapa para el fin del proyecto. Esta etapa de fin de vida consiste en  realizar todas las tareas necesarias para asegurar que los clientes y empleados están  concientes de que el producto ya no será vendido, que ya no se ofrecerán servicios a los  clientes y que está disponible un nuevo producto. 1.7.8 Por qué se debería seguir el CVP    El CVP es una parte importante del desarrollo de un producto dado que ayuda a  asegurar que los productos serán creados y entregados de forma tal que: el tiempo de salida al mercado sea reducido,  el producto tenga alta calidad, y  el retorno de la inversión sea maximizado Los desarrolladores que no siguen el CVP frecuentemente encuentran problemas con  sus productos, ya que suelen ser costosos de reparar y hubiesen podido ser evitados.

2 El Análisis de un Problema y el Diseño de una Solución

En el transcurso de éste módulo aprenderemos a analizar un problema usando el análisis  orientado a objetos, también diseñaremos las clases a partir de las cuales crearemos  objetos. 2.1 Objetivos       Una vez finalizado este módulo, usted debería ser capaz de: Analizar un problema usando análisis orientado a objetos. 

(22)

Diseñar las clases a partir de las cuales los objetos serán creados. Este módulo describe cómo analizar una situación y cómo desarrollar un diseño para  una aplicación. 2.2 Verificación de Progreso       Escriba un número (entre 1 y 5) en la columna "Al comenzar el módulo" para calificar  su capacidad para llevar a cabo cada uno de los objetivos de este módulo. Una vez que  haya finalizado este módulo, usted deberá reevaluar sus capacidades y determinar el  aprendizaje adquirido para cada objetivo. El resultado de esta comparación ayudará a Sun Educational Services (SES) en la  efectividad de esta capacitación. Diga a su profesor aquellos ítem con la menor  calificación (un 0 o un 1 en la columna derecha), para determinar si es necesario  presentar material adicional durante sus clases. Adicionalmente, esta información será  reenviada al grupo de desarrollo de cursos de SES para futuras revisiones del curso. 2.3 Relevancia       Discusión ­ Las siguientes preguntas son relevantes para entender qué es el Análisis y  Diseño Orientado a Objetos (OOAD): ¿Cómo decidir qué componentes son necesasrios para lo que usted debe construir, como  por ejemplo una casa o un mueble?  ¿Qué es una taxonomía?  ¿Cómo se relacionan los elementos en una taxonomía?  ¿Cuál es la diferencia entre atributos y valores? 2.4 Recursos Adicionales       Recursos adicionales – Las siguientes referencias proveen información adicional sobre  los temas descriptos en este módulo:

(23)

Larman, Craig. Applying UML and Patterns ­ An Introduction to Object Oriented  Analysis and Design. Prentice­Hall, 1998. Este libro presenta el proceso de OOAD en  detalle y sin excesiva complejidad.  Eckel, Bruce. Thinking in Java. Prentice­Hall, 2000.  Fowler, Martin and Kendall Scott. UML Distilled. Addison Wesley Longman, Inc.,  1997. 2.5 El Análisis de un Problema Usando Análisis Orientado a Objetos       Caso de Estudio – El siguiente caso de estudio se presenta para ayudar a ilustrar los  principios de OOAD. DirectClothing, Inc. vende camisas por catálogo. El negocio está creciendo 30 por  ciento por año y por lo tanto, la empresa necesita un nuevo sistema de ingreso de  órdenes de compra. Usted ha sido contratado por DirectClothing para diseñar este nuevo  sistema. DirectClothing produce un catálogo de prendas de vestir cada seis meses y lo envía por  correo a sus suscriptores. Cada camisa en el catálogo tiene un identificador de ítem  (ID), uno o más colores (cada uno de ellos con un código de color diferente), uno o más  tamaños, una descripción y un precio. DirectClothing acepta cheques y la mayoría de las tarjetas de crédito.  Para ingresar una orden de compra, los clientes pueden llamar telefónicamente a  DirectClothing desde un representante de servicio al cliente (RSC) para enviar las  órdenes directamente o pueden enviar un formulario de orden de compra por correo o  por fax a DirectClothing. Las órdenes de compra que son enviadas por correo o por fax son ingresadas por un  RSC. A DirectClothing le gustaría dar la opción a los clientes de ingresar sus órdenes de  compra en forma online a través de Internet. El precio de los ítem disponibles para  ventas online es fijado de acuerdo al catálogo vigente. Cuando la orden de compra es ingresada en el sistema, se verifica la disponibilidad de  cada ítem (disponibilidad real). Si uno o más ítem no están disponibles en ese momento  (en el almacén de DirectClothing), entonces la orden de compra es colocada en estado  "Pendiente" hasta que los ítem solicitados ingresen en el almacén.  Después que todos los ítem solicitados estén disponibles, se verifica el pago y entonces  la orden es enviada al almacén para armar el paquete correspondiente y enviarlo a la  dirección del cliente. Si la orden se recibe por teléfono, el RSC informa al cliente el ID de la orden de  compra, el cual puede ser utilizado para realizar el seguimiento de la orden a través del  proceso. El RSC también le proporciona al cliente su número de extensión del número  telefónico.

(24)

2.5.1 Identificación del Dominio del Problema    Dado que el lenguaje de programación Java es un lenguaje orientado a objetos, uno de  los principales objetivos del programador Java es crear objetos para construir un sistema  o, más específicamente, para resolver un problema. Al alcance del problema a resolver se le denomina "dominio del problema". La mayoría de los proyectos comienzan definiendo el dominio del problema mediante el  relevamiento de los requerimientos del cliente y escribiendo una declaración de alcance  que describa brevemente lo que el desarrollador debe resolver. Por ejemplo, una declaración de alcance para el proyecto DirectClothing podría ser:  "Crear un sistema que permita a las personas que ingresan órdenes de compra, entrar y  aceptar pagos para una orden." Después que se ha determinado el alcance del proyecto, se puede comenzar a identificar  los objetos que interactuarán para resolver el problema.

(25)

2.5.2 Identificación de Objetos    Para validar los objetos en un dominio del problema se debe, en primer lugar,  identificar las propiedades de todos los objetos: Los objetos pueden ser físicos o conceptuales ­ Una cuenta de un cliente es un ejemplo  de un objeto conceptual dado que no es algo tangible. Un cajero automático es algo que  mucha gente puede tocar cada día y constituye un ejemplo de un objeto físico.  Los objetos tienen atributos (características), tales como tamaño, nombre, forma etc. Por  ejemplo, un objeto podría tener un atributo color. El valor de todos los atributos de un objeto se denomina frecuentemente el estado actual  (o corriente) del objeto. Por ejemplo, un objeto puede tener un atributo color con el  valor "rojo" y un atributo tamaño con el valor "grande".  Los objetos tienen operaciones (las acciones que los objetos pueden realizar), tales  como asignar un valor, desplegar una pantalla o incrementar la velocidad. Las  operaciones generalmente afectan a los atributos del objeto. Al conjunto de las  operaciones que un objeto realiza se conoce con el nombre de comportamiento del  objeto. Por ejemplo, un objeto puede tener una operación que permita, a otros objetos, cambiar  su atributo color de un estado a otro (por ejemplo, de rojo a azul). Su capacidad para reconocer los objetos de su realidad, le ayudará a definir mejor los  objetos cuando aborde un problema usando análisis orientado a objetos.  Por ejemplo, una puerta puede ser un objeto en el dominio del problema "construir una  casa". Una puerta tiene al menos un atributo que tiene un valor (abierta o cerrada) y una  operación, como por ejemplo "cerrar la puerta" o "abrir la puerta", que permite cambiar  el estado de la misma.

(26)

2.5.3 Criterios adicionales para el Reconocimiento de Objetos    Utilice los siguientes criterios para verificar si algo debería ser considerado un objeto  en el dominio del problema: Relevancia para el dominio del problema.  Existencia en forma independiente. Para determinar si el objeto es relevante para el dominio del problema, pregúntese a sí  mismo lo siguiente: ¿Existe el objeto dentro de los límites del dominio del problema?  ¿Se requiere el objeto para completar la solución del problema?  ¿Es el objeto requerido como parte de la interacción entre el usuario y la solución? Existencia en Forma Independiente Para que un ítem sea un objeto y no un atributo de otro objeto, este debe existir en  forma independiente en el contexto del dominio del problema. Los objetos pueden estar  conectados y aún así tener existencia independiente. En el caso de estudio de  DirectClothing, un cliente y una orden de compra están conectados pero son  independientes entre sí, y por lo tanto, ambos podrían ser objetos.  Durante la evaluación de los objetos potenciales, pregúntese si el objeto necesita existir  en forma independiente, en lugar de ser un atributo de otro objeto.

(27)

2.5.4 Identificación de Atributos y Operaciones de Objetos    Después de identificar los objetos, se deben identificar sus atributos y sus operaciones. Como se describió anteriormente, los atributos definen el estado de un objeto. Los  atributos pueden ser: ­datos, como la identificación de un cliente y la identificación de la orden para un objeto  Orden,  ­otros objetos, un cliente podria tener como atributo un objeto Orden de Compra, en  lugar de sólo su identificación. Como fue mencionado anteriormente, las operaciones establecen el comportamiento que  usualmente modifica el estado de un atributo. Por ejemplo, una orden puede ser  impresa, puede tener un ítem agregado o eliminado, etc. (El cliente o RSC debería  iniciar estas acciones en la vida real, pero las operaciones pertenecen al objeto Orden.) Atributos que refieren a Otros Objetos

(28)

Un atributo puede ser una referencia a otro objeto. Por ejemplo, el objeto Cliente puede  tener un atributo que sea un objeto Orden. Esta asociación podría, o no, ser necesaria  dependiendo del problema que se está tratando de resolver.

(29)

2.5.5 Solución del Caso de Estudio  

 A continuación se presentan varias figuras que contienen una lista parcial de los objetos  (incluyendo la mayoría de sus atributos y operaciones) para el caso de estudio 

(30)
(31)

 El objetivo de este ejercicio es listar los objetos, atributos y operaciones en el dominio  del problema ejemplo. 2.6.1 Preparación    Lea el siguiente caso de estudio y luego modele el sistema seleccionando los objetos, y  sus atributos y operaciones. 2.6.2 Tarea ­ Realizar el Análisis    Su tarea es realizar un análisis orientado a objetos para una aplicación basada en la  tecnología Java que realice el seguimiento de los resultados de los partidos de fútbol. El  problema debe monitorizar: La lista de jugadores de cada equipo  La cantidad de goles de cada jugador  Los partidos jugados durante una temporada, incluyendo los equipos que jugaron entre  sí, y el resultado final del partido. La aplicación debe permitir generar resultados estadísticos por equipos, jugadores y  temporadas. Para completar el análisis, siga los siguientes pasos: Cree una lista de los objetos potenciales.  Aplique las reglas vistas en este módulo para decidir si todos sus objetos son válidos.  Cree una lista de atributos y operaciones para cada uno de sus objetos. 2.7 Ejercicio 1: Resumen       Discusión – Tómese unos minutos para discutir qué experiencias, asuntos y  descubrimientos ha realizado durante este ejercicio. Experiencias  Interpretaciones  Conclusiones  Aplicaciones 2.8 Diseño de las Clases       La identificación de los objetos ayuda en el diseño de las clases y en el prototipo de  cada uno de los objetos en un sistema. Por ejemplo, los fabricantes de ventanas  frecuentemente crean un único prototipo para cada uno de los estilos de ventanas que  construyen. Estos prototipos definen un rango de colores y unos estilos que pueden ser  elegidos cuando se compra una de sus ventanas. Dichos prototipos constituyen la base para la construcción de cualquier cantidad de  ventanas con cualquier cantidad de combinaciones de color y estilo. En términos de  diseño orientado a objetos, cada objeto (ventana) creado usando la clase (el prototipo  genérico) es llamado una instancia de una clase. Más específicamente, cada objeto 

(32)

creado a partir de una clase puede tener un estado específico (valores) para cada uno de  sus atributos, pero tendrá los mismos atributos y operaciones. Los términos clases y objetos son usados frecuentemente en el campo de la Biología.  Por ejemplo, un biólogo marino que estudia criaturas marinas se encarga de categorizar  estas criaturas en una familia, o clase, de criaturas marinas. En términos de OOAD, cada  animal (como por ejemplo una ballena azul) en una familia (por ejemplo ballenas)  puede ser considerado una instancia del objeto de la clase ballena. Referido al caso de estudio DirectClothing: Una clase está relacionada a la definición que se realizó del objeto. Las clases son  categorías descriptivas, plantillas o blueprints. Una Camisa puede ser una clase que  defina todas las camisas que tienen una identificación, un tamaño, un código de color,  una descripción y un precio.  Los objetos son instancias únicas de las clases. La camisa polo, azul, grande, que cuesta  $29.99 y que tiene la identificación 62467­B es una instancia de la clase Camisa.  También lo es la camisa verde, pequeña, que tiene el mismo precio y tiene la  identificación 66889­C, asi como la camisa estampada a $ 39.99 y con ID 09988­A.  Eventualmente se pueden tener dos objetos Camisa en la memoria con exactamente los  mismos valores en los atributos. En el lenguaje de programación Java, los atributos son representados usando variables,  y las operaciones son representadas usando métodos. Las variables constituyen el  mecanismo del lenguaje de programación Java para almacenar datos. Los métodos  constituyen el mecanismo del lenguaje de programación Java para ejecutar una  operación.

(33)
(34)

2.8.1 El Modelado de Clases    La primera fase de la etapa de diseño consiste en la organización visual, o modelado, de  un programa y sus clases. Cada clase en un diseño debería estar modelada de forma tal  que se incluya su nombre en la parte superior de un rectángulo, seguido por la lista de  las variables de atributos (incluyendo el rango de los posibles valores) y la lista de los  métodos. La siguiente figura ilustra el modelado de una clase. Los nombres de las variables y de los métodos están escritos de forma tal que  comienzan con una letra en minúscula y las siguientes palabras en el nombre comienzan  con mayúscula. Por ejemplo, el nombre para la operación "calcular el precio total"  podría ser calcPrecioTotal() (o calcTotalPrice() en inglés). Los paréntesis al final  indican que se trata de un método.

(35)

2.9 Ejercicio 2: Diseñar una Solución       El objetivo de este ejercicio es modelar un objeto utilizando la notación similar a UML  que se mostró en este módulo. 2.9.1 Tarea ­ Realizar un Diseño    Su tarea consiste en diseñar las clases para el sistema de seguimiento de resultados de  partidos de fútbol presentado anteriormente. Recuerde: Utilice nombres de clases, atributos, variables y métodos como los descritos en este  módulo.  Identifique un rango de valores válidos para cada atributo (en aquellos casos que el  rango sea conocido).  Utilice los paréntesis para identificar los métodos.

(36)

2.10 Ejercicio 2: Resumen       Discusión – Tómese unos minutos para discutir qué experiencias, asuntos y  descubrimientos ha realizado durante este ejercicio. Experiencias  Interpretaciones  Conclusiones  Aplicaciones

3 Desarrollo y Prueba de un Programa basado en la Tecnología Java  

       A lo largo de este módulo identificaremos los cuatro componentes de una clase en el  lenguaje de programación Java. Usaremos el método main en una clase de prueba y  compilaremos y ejecutaremos un programa. 3.1 Objetivos       Una vez completado este módulo, usted debería ser capaz de: Identificar los cuatro componentes de una clase en el lenguaje de programación Java.  Usar el método main en una clase de prueba para ejecutar desde la línea de comando un  programa basado en la tecnología Java.   Compilar y ejecutar un programa basado en la tecnología Java Este módulo ofrece una visión general de los componentes de una clase. También  describe cómo compilar y ejecutar un programa que consiste en múltiple clases.    3.2 Verificación de Progreso       Escriba un número (entre 1 y 5) en la columna "Al comenzar el módulo" para calificar  su capacidad para llevar a cabo cada uno de los objetivos de este módulo. Una vez que  haya finalizado este módulo, usted deberá reevaluar sus capacidades y determinar el  aprendizaje adquirido para cada objetivo. El resultado de esta comparación ayudará a Sun Educational Services (SES) en la  efectividad de esta capacitación. Diga a su profesor aquellos ítem con la menor  calificación (un 0 o un 1 en la columna derecha), para determinar si es necesario  presentar material adicional durante sus clases. Adicionalmente, esta información será  reenviada al grupo de desarrollo de cursos de SES para futuras revisiones del curso.

(37)

3.3 Relevancia  Discusión – La siguiente pregunta es relevante para comprender de qué trata el  desarrollo y prueba de clases: ¿Cómo prueba usted algo que ha construido, como por ejemplo una casa o un mueble? 3.4 Recursos Adicionales       Recursos adicionales – Las siguientes referencias ofrecen información adicional sobre  los temas descritos en este módulo: Farrell, Joyce. Java Programming: Comprehensive. 1999. Se trata de un excelente libro para no programadores. Explica conceptos que son  pasados por alto en libros más avanzados.  The Java Tutorial. [Online]. Disponible en: http://java.sun.com/docs/books/tutorial/?frontpagespotlight 3.5 Identificación de los Componentes de una Clase  Las clases son los blueprints que se crean para definir los objetos de un programa. Por  ejemplo, la siguiente figura ilustra algunos de los objetos que se necesitarían para el  programa de ingreso de órdenes de compra para DirectClothing, Inc. Una aplicación de escritorio generalmente contiene un objeto que es el punto de  comienzo del programa. A este objeto, frecuentemente se le denomina el objeto  controlador, objeto principal u objeto de prueba. En la figura anterior, un objeto 

(38)

OrderEntry podría interactuar con uno o más objetos Window, objetos Customer u  objetos Order durante la ejecución del programa. Cada objeto en la figura es una instancia de una clase o blueprint. Por ejemplo, todos los  objetos Window son instancias de la clase Window. Algunas clases, como la clase  Window (usada para crear ventanas de interfaz gráfica de usuario [GUI]) son clases de  propósito general y son provistas como parte de la API de la tecnología Java. Otras  clases, como por ejemplo Shirt, son específicas de este programa y deben ser creadas  por el programador. En este curso se describe cómo usar las clases ya existentes y cómo  crear y usar clases propias. 3.5.1 La Estructura de las Clases    Las clases están compuestas por código basado en la tecnología Java necesario para  instanciar objetos, como por ejemplo los objetos de la clase Shirt. En este curso se  divide el código en un archivo de una clase Java en cuatro secciones separadas: La declaración de la clase.  La declaración e inicialización de las variables (opcional).  Ls métodos.  Los comentarios. El código del programa para una clase está contenido en un archivo de texto que debe  seguir cierta estructura.

(39)

3.5.2 Declaración de una Clase    Se debe declarar una clase por cada clase incluida en el diseño correspondiente al  dominio del problema. Para cada clase del diseño, se debería escribir una declaración de  clase. La sintaxis para declarar una clase es: [modificadores] class identificador_clase Los [modificadores] de la clase determinan la accesibilidad que otras clases tendrán  sobre ella. Los modificadores se presentan en detalle más adelante en este curso. Los  [modificadores] son opcionales en la declaración de la clase (lo cual es indicado por los  corchetes) y puede tener los valores public, abstract o final. Por ahora, utilice el  modificador public.  La palabra clave class indica al compilador que el bloque de código es una clase. Las  palabras clave son palabras que están reservadas para ciertas construcciones del  lenguaje de programación Java. 

(40)

El identificador_clase es el nombre que se le dará a la clase. Las reglas para nombrar  una clase son las siguientes: • Los nombres de clase deberían ser sustantivos, con letras mayúsculas y minúsculas  pero con la primera letra de cada palabra en mayúscula. Por ejemplo: MiClase. • Los nombres de clase deberían contener palabras completas. Se debe evitar usar  acrónimos y abreviaturas (a menos que la abreviatura sea más utilizada o conocida que  la forma larga, como por ejemplo JVM o UML).  La declaración de clase (Línea 1) del código de la clase Shirt en el ejemplo anterior,  tiene el modificador de clase public, seguido de la palabra clave class, y a continuación  el nombre de clase (Shirt). Requerimientos para sus Archivo Fuente En este curso, usted desarrollará sus clases de forma tal que el código de los programas  basados en la tecnología Java que escriba para cada clase se almacene en su propio  archivo de texto o archivo con el código fuente. En el lenguaje de programación Java,  los nombres de los archivos con el código fuente deben: coincidir con el nombre de la clase pública incluida en dicho archivo y  tener extensión .java. Por ejemplo, la clase Shirt debe estar almacenada en un archivo llamado Shirt.java. La definición de clase es seguida por una llave izquierda ({) indicando el comienzo del  cuerpo de la clase (cuerpo_clase), las variables atributo y los métodos que componen la  clase. Las llaves {…} alrededor del cuerpo_clase definen dónde comienza y dónde  finaliza la clase, respectivamente. 3.5.3 Declaración de Variables y Asignaciones    La declaración de variables atributo y el bloque de asignaciones siguen a la primera  llave izquierda ({). Generalmente, después es esta llave se inicializan todas las variables  atributo de la clase. El código de la clase Shirt en el ejemplo, contiene cinco declaraciones de variables  atributo: una para el identificador shirtID (línea 3),  una para una descripción (description) (línea 4),  una para el código de color (colorCode) (línea 7),  una para el precio (price) (línea 9) y 

(41)

una para la cantidad en stock (quantityInStock) (línea 11). 3.5.4 Comentarios    Usted debería incluir comentarios en cada clase que escriba, para hacer más fácil la  comprensión de lo que hace el programa. Comentar un programa es particularmente  importante en programas grandes o desarrollados por grandes equipos donde muchos  programadores necesitan leer el código. Los comentarios ayudan al mantenimiento de  un programa cuando nuevos programadores necesitan determinar lo que hace el código.  Estructura de los Comentarios Se pueden utilizar dos estilos principales de comentarios:  Comentarios de una única línea ­ La marca " //" indica al compilador que ignore todos  los caracteres desde esta marca hasta el fin de la línea donde se encuentra. Por ejemplo,  las líneas 3, 4 y 6 de la clase Shirt contienen comentarios de una única línea. public int shirtID = 0; // Default ID for the shirt public double price = 0.0; // Default price for all shirts // The color codes are R=Red, B=Blue, G=Green Muchos programadores también construyen sus programas usando comentarios de una  única línea para comentar la primera y la última línea de cada clase o método. Por  ejemplo, la clase Shirt contiene un comentario de fin de línea para indicar el fin del  método display. (línea 22) } // end of display method En programas grandes, puede ser dificultoso encontrar la llave derecha que cierra una  clase. Incluir un comentario en cada llave derecha de una estructura hace el código más legible y permite reparar errores más fácilmente. Comentarios tradicionales ­ La combinación de los caracteres /* indica al compilador  que ignore todo el texto hasta la marca de finalización del comentario (*/). Esta acción  es realizada por el compilador, incluso a través de varias líneas. Los programadores  utilizan frecuentemente los comentarios tradicionales para grandes bloques de código.

(42)

/********************* * Sección de Declaración de Variables Atributo *********************/ 3.5.5 Los métodos    Los métodos de una clase se escriben a continuación de la declaración de las variables  atributos. La sintaxis para los métodos es: [modificadores] tipo_retorno identificador_método ([argumentos]) { bloque_código_método } donde: Los [modificadores] representan palabras clave únicas de la tecnología Java que  modifican la forma en que los métodos son accedidos. Los modificadores son  opcionales (lo cual es indicado en la sintaxis por su inclusión entre corchetes).  El tipo_retorno indica el tipo del valor (si existe) que el método devuelve. Si el método  devuelve un valor, el tipo del mismo debe ser declarado. Los valores devueltos por un  método pueden ser usados por el método que lo llama. Cualquier método puede  devolver a lo sumo un valor. Si el método no devuelve ningún valor, se utiliza la  palabra void en el lugar de tipo_retorno.  El identificador_método es el nombre del método.  Los [argumentos] representan una lista de variables cuyos valores son pasados al  método para ser usados por él. Los argumentos son opcionales (indicado con su  inclusión entre corchetes) dado que no se requiere que el método acepte argumentos.  Notar que los paréntesis curvos no son opcionales. Un método que no acepta  argumentos se declara incluyendo solamente el paréntesis curvo que abre y el que  cierra.  El bloque_código_método es la secuencia de sentencias que el método realiza. Una gran  variedad de tareas pueden ser realizadas en el bloque de código, o cuerpo, del método. La clase Shirt contiene un método, el método displayShirtInformation (líneas 14 a 22),  el cual despliega los valores de los atributos de una camisa.

(43)

public void displayShirtInformation() { System.out.println("Shirt ID: " + shirtID); System.out.println("Shirt description:" + description); System.out.println("Color Code: " + colorCode); System.out.println("Shirt price: " + price); System.out.println("Quantity in stock: " + quantityInStock); } // end of display method 3.6 Creación y Uso de una Clase de Prueba       La mayoría de las clases que se crearán en este curso no pueden ser usadas (ejecutadas  y probadas) por sí mismas. Sin embargo, se puede crear una clase que cree un objeto de  dicha clase y ejecutar esta nueva clase para realizar la prueba.  Durante este curso, usted utilizará una clase principal, o de prueba, para probar cada una  de sus clases. El siguiente código es un ejemplo de una clase de prueba para la clase  Shirt. A cada clase de prueba en este curso se le debería dar un nombre de forma tal que pueda  ser reconocida como una clase de prueba para una clase particular. Específicamente,  cada nombre de clase de prueba debería consistir del nombre de la clase que se desea  probar, seguido por la palabra "Test". Por ejemplo, el nombre de la clase de prueba para  la clase Shirt se debería llamar "ShirtTest". Las clases de prueba realizan dos tareas diferentes: Ofrecer un punto de comienzo, llamado el método main, para los programas.  Crear un objeto de la clase y probar sus métodos.

(44)

3.6.1 El Método main    El método main es un método especial que la Máquina Virtual de Java reconoce como  el punto de comienzo de cualquier programa basado en la tecnología Java que se ejecuta  desde la línea de comando o desde un "prompt". Cualquier programa que se desee  ejecutar desde la línea de comando o desde un prompt debe tener un método main. La sintaxis para el método main es: public static void main (String args[]) El método main tiene la misma sintaxis que todos los métodos, la cual se describió  anteriormente. Específicamente: El método main contiene dos modificadores requeridos: public y static  El método main no devuelve ningún valor, por lo que el tipo de retorno es void.  El método main tiene como identificador de método (nombre) a "main"  El método main acepta cero o más objetos de tipo String (String args[]). Esta sintaxis le  permite ingresar los valores a ser usados por su programa desde la línea de comandos  durante la ejecución. 3.6.2 Compilación y Ejecución (Prueba) de un Programa    Usted ha visto una clase básica de nombre Shirt basada en la tecnología Java y una  clase de prueba con nombre ShirtTest. Estas dos clases conjuntamente, constituyen su  primer programa basado en la tecnología Java. A continuación usted compilará y  ejecutará (probará) su programa.   

(45)

3.6.3 Compilar un Programa    La compilación convierte los archivos con código fuente de las clases en bytecode, para  que pueda ser ejecutado por una Máquina Virtual Java. Recuerde las reglas para el  nombramiento de los archivos fuente Java. Si un archivo fuente contiene una clase  pública, el archivo fuente debe tener el mismo nombre de la clase pública y extensión  .java. Por ejemplo, la clase Shirt debe estar almacenada en un archivo con nombre  Shirt.java.  Para compilar los archivos de código fuente Shirt y ShirtTest, usted podría: Ir al directorio donde están almacenados los archivos con el código fuente.  Ingresar el siguiente comando para cada archivo .java que quiera compilar: javac filename Por ejemplo: javac Shirt.java Luego de que la compilación haya finalizado, y asumiendo que no se produjeron errores  de compilación, en ese directorio deberá haber un nuevo archivo con el nombre  classname.class por cada archivo con código fuente que se haya compilado. Si se  compiló una clase que referencia otros objetos, las clases correspondientes a estos  objetos también serán compiladas (si no habían sido compiladas previamente). Por ejemplo, si se compila la clase ShirtTest.java (la cual referencia un objeto Shirt), se  compilará también la clase Shirt.java y se generarán los archivos ShirtTest.class y  Shirt.class 3.6.4 Ejecutar (Probar) un Programa  

(46)

 Después de compilar exitosamente los archivos con código fuente, se los puede  ejecutar y probar usando la Máquina Virtual Java. Para ejecutar y probar el programa,  se deben seguir los siguientes pasos: Vaya al directorio donde están almacenados los archivos de las clases  Ingrese el siguiente comando para el archivo de la clase que contiene el método main: java nombreClase Por ejemplo: java ShirtTest Este comando ejecuta la clase ShirtTest. Como se mencionó previamente, la clase  ShirtTest crea una instancia del objeto Shirt, usando la clase Shirt. Todos los objetos  Shirt  tienen un método, el método display, el cual despliega los valores de las variables  atributo, por ejemplo: Shirt ID: 0 Shirt description:­description required­ Color Code: U Shirt price: 0.0 Quantity in stock: 0 Sugerencias para la Depuración La mayoría de la veces, se tendrá al menos un error en el código. El término empleado  para referir a la reparación de errores (o bugs) es depuración. Las siguientes son algunas  sugerencias para llevar a cabo la depuración de un programa: Los mensajes de error indican el número de línea donde ocurre el error. Sin embargo,  este número no necesariamente corresponde a la línea donde se encuentra el error, por  lo que se deberían verificar las líneas de código anteriores y posteriores al número de  línea que es desplegado.  Asegúrese que existe un signo de punto y coma al final de cada sentencia.  Asegúrese que hay una cantidad par de llaves: una llave derecha por cada llave  izquierda.  Asegúrese que utilizó en el código un modelo de sangrías como el visto en el este curso.  De todas formas, los programas ejecutarán sin importar el tipo de sangría utilizado, pero  lo harán más legible y fácil de depurar. También le posibilitará evitar errores mientras  esté escribiéndolos. 3.7 Ejercicio: Escribir, Compilar y Probar un Programa Básico       El objetivo de este ejercicio es familiarizarse con los pasos necesarios para escribir (o  modificar), compilar y probar (ejecutar) sus programas basados en la tecnología Java. 3.7.1 Tarea ­ Compilar y Ejecutar un Programa basado en la Tecnología Java    En esta tarea, usted compilará y ejecutará su primer programa basado en la tecnología  Java. Siga los siguientes pasos para compilar y ejecutar el programa ShirtTest:

(47)

Vaya al directorio getstarted.  Abra un editor de texto e ingrese el código, siguiendo la sintaxis de la tecnología Java,  para la clase Shirt presentada anteriormente en este módulo (el código fuente del  programa).  Guarde y cierre el archivo.  Abra un editor de texto e ingrese el código fuente de la clase ShirtTest mostrado  anteriormente en este módulo.  Guarde y cierre el archivo.  Abra una ventana de comandos.  Navegue hasta el directorio donde se encuentran los archivos correspondientes a este  módulo.  Ingrese el siguiente comando para compilar el programa y generar un archivo bytecode  ejecutable. javac Shirt.java De esta forma, se creará el archivo Shirt.class. Ingrese el siguiente comando para compilar el programa y generar un archivo bytecode  ejecutable. javac ShirtTest.java El archivo creado será ShirtTest.class. Cuando reaparezca el símbolo de prompt, ingrese el siguiente comando para ejecutar el  programa: java ShirtTest Abra nuevamente el archivo Shirt.java.  Cambie el valor de la variable price a 14.99 y el shirtID a 112244.  Guarde y cierre el archivo.  Compile nuevamente el archivo Shirt.java. javac Shirt.java Ejecute nuevamente el archivo ShirtTest.class.

(48)

java ShirtTest 3.7.2 Tarea ­ Crear, Compilar y Ejecutar Otro Programa basado en la Tecnología Java    En esta tarea, usted creará, compilará y ejecutará su segundo programa basado en la  tecnología Java. Siga los siguientes pasos para crear una clase de nombre Quotation  para desplegar un texto: Vaya al directorio getstarted.  Abra un editor de texto e ingrese la siguiente clase: public class Quotation {   String quote = "Welcome to Sun!";   public void display() {      System.out.println(quote);   } } Guarde el archivo con el nombre Quotation.java.  Desde una ventana de comandos, navegue hasta el directorio donde su programa está  almacenado.  Ingrese el siguiente comando en la ventana de comandos para compilar el programa: javac QuotationTest.java Si ocurre un error, abra el archivo y verifique que ha copiado el programa exactamente.  Si no ocurre ningún mensaje de error, ingrese el siguiente comando en la ventana de  comandos para ejecutar el programa: java QuotationTest Abra nuevamente el archivo Quotation.java y cambie el texto "Welcome to Sun!" por el  que prefiera. Asegúrese que sólo cambió el texto y que las comillas no se modificaron.  Compile y ejecute el programa nuevamente. 3.8 Resumen del Ejercicio       Discusión ­ Tómese unos minutos para discutir qué experiencias, temas y  descubrimientos se realizaron durante este ejercicio. Experiencias  Interpretaciones  Conclusiones 

(49)

Aplicaciones

4 Declaración, Inicialización y Uso de Variables

   En éste módulo identificaremos los usos de las variables, listaremos los tipos de  datos del lenguaje Java. Aprenderemos acerca de la promoción y conversión de tipos de  datos. 4.1 Objetivos Una vez completado este módulo, usted debería ser capaz de:     * Identificar los usos de las variables y definir la sintaxis para la declaración de una  variable.     * Listar los ocho tipos de datos primitivos del lenguaje de programación Java.     * Declarar, inicializar y usar variables y constantes de acuerdo a la guía y los  estándares de codificación para el lenguaje de programación Java.     * Modificar valores de variables usando operadores.     *  Utilizar promoción y conversión de tipos de datos. Este módulo describe cómo crear variables usando tipos de datos primitivos y cómo  modificar los valores de las variables usando operadores, promoción y conversión de  tipos de  datos. 4.2 Verificación de Progreso Escriba un número (entre 1 y 5) en la columna "Al comenzar el módulo" para calificar  su capacidad para llevar a cabo cada uno de los objetivos de este módulo. Una vez que  haya finalizado este módulo, usted deberá reevaluar sus capacidades y determinar el  aprendizaje adquirido para cada objetivo. El resultado de esta comparación ayudará a Sun Educational Services (SES) en la  efectividad de esta capacitación. Diga a su profesor aquellos ítem con la menor  calificación (un 0 o un 1 en la columna derecha), para determinar si es necesario  presentar material adicional durante sus clases. Adicionalmente, esta información será  reenviada al grupo de desarrollo de cursos de SES para futuras revisiones del curso.

(50)

4.3 Relevancia Discusión – Las siguientes preguntas son relevantes para comprender lo que respecta a  variables:     * Una variable refiere a algo que puede cambiar. Las variables pueden contener un  valor o un conjunto de valores. ¿Dónde ha visto variables con anterioridad?     * ¿Qué tipos de datos piensa que las variables pueden contener? 4.4 Recursos Adicionales Recursos adicionales – Las siguientes referencias pueden ofrecer detalles adicionales  sobre los temas discutidos en este módulo:     * Farrell, Joyce. Java Programming: Comprehensive. 1999.       Se trata de un excelente libro para no programadores. Explica       conceptos que son pasados por alto en libros más avanzados.     * The Java Tutorial. [Online]. Disponible en:       http://java.sun.com/docs/books       /tutorial/?frontpagespotlight 4.5 Identificación del Uso de las Variables y la Sintaxis   

(51)

Las variables se utilizan para almacenar y recuperar datos en un programa. El  código en el siguiente ejemplo muestra una clase Shirt que declara varias variables. Las variables atributo (variables declaradas fuera de un método y sin la palabra clave  static) también se denominan variables miembros o variables de instancia (como por  ejemplo price, shirtID y colorCode en la clase Shirt). Cuando un objeto es instanciado a  partir una clase, estas variables contienen datos específicos de una instancia de la clase particular. Cuando un objeto es instanciado desde una clase, estas variables son denominadas  variables de instancia, porque pueden contener datos específicos para un objeto que sea  una instancia particular de una clase. Por ejemplo, una instancia de la clase Shirt podría  tener asignado el valor 7 a la variable atributo quantityInStock, mientras que otra instancia de la clase Shirt podría tener el valor 100 asignado a la variable atributo  quantityInStock. Los programas pueden tener también variables definidas dentro de los métodos. Estas  variables se denominan variables locales porque están disponibles localmente dentro del  método en el cual fueron declaradas. No hay variables locales declaradas en la clase  Shirt. Sin embargo, si se usaran variables locales, deberían ser declaradas en el método  displayShirtInformation. 4.5.1 Uso de Variables

(52)

Las variables son usadas extensamente en el lenguaje de programación Java para  realizar tareas tales como:     * Almacenar datos correspondientes a los atributos para un objeto instancia particular  (como se ha vista con las variables price y ID).     * Asignar el valor de una variable a otra.     * Representar valores en una expresión matemática.     * Desplegar los valores en la pantalla. Por ejemplo, la clase Shirt usa las       variables price y ID para desplegar el valor del precio y el ID de una       camisa (shirt).       System.out.println("Shirt price: " + price);       System.out.println("Shirt ID: " + shirtID);     * Almacenar referencias a otros objetos. Este curso muestra varios usos de variables en las clases de tecnología Java. 4.5.2 Declaración e Inicialización de Variable La declaración e inicialización de las variables atributo siguen la misma sintaxis  general. La sintaxis para la declaración e inicialización de variables atributo es: [modificadores] tipo identificador [=valor]; Las variables locales pueden ser declaradas e inicializadas en forma separada (en líneas  de código diferente) o en una única línea de código. La sintaxis para la declaración de  variables dentro de un método es: tipo identificador; La sintaxis para la inicialización de variables dentro de un método es: identificador = valor; La sintaxis para la declaración e inicialización de una variable dentro de un método es: tipo identificador [= valor]; donde:     * Los [modificadores] representan varias palabras clave especiales de la tecnología  Java, como public y private, que modifican el acceso que otro código tiene para una  variable atributo. Los modificadores son opcionales (lo cual se indica en la sintaxis por  los corchetes). Por ahora, todas las variables serán creadas con el modificador public.     * El tipo representa al tipo de información o datos cuyos valores puede contener la  variable. Algunas variables pueden contener caracteres, otras número y otras valores  booleanos. Todas las variables deben pertenecer a un tipo de datos.     * El identificador es el nombre que se le da a la variable.

(53)

    * El valor es el valor que se le quiere asignar a la variable. Este es opcional dado que  no se necesita asignar un valor a una variable en el momento de su declaración. 4.6 Tipos de Datos Primitivos Muchos de los valores en los programas de tecnología Java están almacenados como  tipos de datos primitivos. Hay ocho tipos de datos primitivos provistos por el lenguaje de programación Java.     * Tipos enteros: byte, short, int y long     * Tipos Punto Flotante: float y double     * Tipo Texto: char     * Tipo Lógico: bolean 4.6.1 Tipos Primitivos Enteros En el lenguaje de programación Java hay cuatro tipos de datos primitivos enteros,  identificados por las palabras clave byte, short, int y long. Los conjuntos de datos de  estos tipos de datos son conjuntos de números sin parte decimal. Si se necesita almacenar la edad de una persona, por ejemplo, se podría utilizar una  variable de tipo byte, dado que el tipo de datos byte puede aceptar valores en este rango. Cuando especifique un valor entero para un tipo long, coloque una L a la derecha del  valor para explicitar que es un valor de tipo long. El compilador asume que los literales  enteros son de tipo int a menos que se utilice una L como se explicó, y en cuyo caso  indica que pertenece al tipo long. La clase Shirt contiene dos atributos de tipo int para almcenar los valores del  identificador y la cantidad en stock, y se utilizan valores literales para proporcionar un  valor inicial 0 (cero) por defecto para cada uno. public int shirtID = 0; // Default ID for the shirt

(54)

public int quantityInStock = 0; // Default quantity for all shirts 4.6.2 Tipos Primitivos de Punto Flotante En el lenguaje de programación Java hay dos tipos de datos para los números de punto  flotante: float y double. El conjunto de valores corresponde a números con valores a la  derecha del punto decimal, tales como 12.24 y 3.14159. Los literales de punto flotante, por defecto pertenecen al tipo de datos double. Para  explicitar que se trata de un literal perteneciente al tipo de datos float, se debe colocar  una F al final del valor numérico. La clase Shirt muestra el uso de un valor literal double especificado en el valor por  defecto para la variable atributo price: public double price = 0.0; // Default price for all shirts

(55)

4.6.3 Tipos Primitivos de Texto Otro tipo de datos utilizado para almacenar caracteres, tales como una 'a', es el tipo char,  en el cual cada valor tiene un tamaño de 16 bits. La clase Shirt muestra el uso de un valor literal de texto para especificar el valor por  defecto para colorCode: public char colorCode = 'U'; Cuando se asigna un valor literal a una variable char, como por ejemplo t, se debe  encerrar entre el símbolo comilla simple. Un ejemplo de valor literal de tipo char es 't'. Si no se utilizaran las comillas simples, el compilador no podría determinar si se trata de  un valor literal de tipo char o un identificador (el nombre de una variable por ejemplo). Los valores del tipo char son representados en el computador como una secuencia de  bits que corresponden a un carácter. La correspondencia entre cada una de estas  secuencias y el carácter que representa queda definida por el conjunto de caracteres que  cada lenguaje de programación utiliza. La clase Shirt contiene una variable de tipo primitivo de texto, char, para almacenar el  valor por defecto del color. public char colorCode = 'U';

(56)

4.6.4 Tipo Primitivo Lógico Los programas de computadores frecuentemente necesitan tomar decisiones. El  resultado de una decisión es un valor verdadero o falso (true o false), y puede ser  almacenado en variables de tipo boolean. En una variable de tipo boolean solamente se  puede almacenar:     * Los literales true y false del lenguaje de programación Java.     * Los resultados de una expresión que evalúe a true o false. Por ejemplo, si la  variable answer es igual a 42, entonces la expresión "if (answer < 42)" evaluará al  resultado false. 4.6.5 Selección de un Tipo de Datos   Una práctica común para los programadores experimentados es usar los tipos int,  long y double para las variables numéricas a menos que existan restricciones que exijan 

Figure

Actualización...

Related subjects :