Programación en Java I
Section
Instructions: Clicking on the section name will show / hide the section.
Descripción del curso
Esta asignatura se imparte con el nombre de Programación en Java con el segundo cuatrimestre como asignatura de libre elección para las titulaciones de Ingeniería Industrial e Ingeniería Química con una asignación de 3 créditos.
Existe una versión de la asignatura que se imparte a distancia y en inglés, Java Programming, con 4.5 créditos.
Finalmente el contenido de Programación en Java coincide con la primera parte de otra asignatura, 3808-Programación Orientada a Objetos con 6 créditos que se imparte como opcional en la titulación de 2º ciclo de Ingeniero en Automática y Electrónica Industrial.
PRERREQUISITOS Y CONOCIMIENTOS PREVIOS RECOMENDADOS
Se recomiendan unos conocimientos mínimos de matemáticas y de ofimática básica. Conocimientos previos de programación pueden ser de utilidad y facilitar la comprensión de los contenidos del curso.
DESCRIPCIÓN GENERAL DE LA ASIGNATURA
El programa del curso se centra en los fundamentos de la programación en Java, la descripción de sus principales elementos para la programación de ordenadores y una introducción a la metodología de la programación orientada a objetos.
OBJETIVOS: CONOCIMIENTOS Y CAPACIDADES
El objetivo fundamental del curso es transmitir al alumno conocimientos básicos sobre la programación en Java.
MATERIAL DOCENTE
Incluye contenidos teórico-prácticos, bibliografía, enlaces, cuestiones, enunciados de ejercicios de autoevaluación y soluciones a dichos ejercicios. Puede servir como guía de autoaprendizaje o como material de referencia o de apoyo dentro de un primer curso de programación. En concreto se recomiendan especialmente los dos siguientes:
- Programación Orientada a Objetos con Java, García-Beltrán, A. y Arranz, J.M. Sección de Publicaciones de la ETSII-UPM. 315 páginas, 2007
- El entorno de programación de Java desarrollado por Sun que se puede descargar de http://java.sun.com
En la plataforma de tele-educación AulaWeb de la ETSII-UPM puede encontrarse material adicional accediendo como el alumno invitado de la asignatura 9013-Programación en Java (ver elemento desplegable de la página principal).
ACTIVIDADES DE EVALUACIÓN O TAREAS PRÁCTICAS
Las principales actividades de evaluación o tareas a realizar son:
- Realización de prácticas y ejercicios de programación en el Laboratorio de Informática durante las sesiones teóricos-prácticas.
- Realización de ejercicios de autoevaluación. Estos ejercicios de autoevaluación se realizan a través de la plataforma de tele-educación AulaWeb de la ETSII-UPM.
- Realización de un proyecto final de desarrollo de software.
El ordenador y el entorno de programación (compilador, intérprete...) son excelentes maestros. Es altamente recomendable experimentar con cada uno de los elementos y características del lenguaje Java que vayan estudiándose y analizar los mensajes de error y de advertencia obtenidos al compilar y ejecutar los programas.
Programa
BLOQUE I
- Introducción
- Estructura de un programa
BLOQUE II
- Tipos de dato
- Operadores
- Sentencias condicionales
- Sentencias repetitivas
- Otras sentencias
- Sentencia return y métodos
BLOQUE III
- Objetos y clases
- Algunas clases estándar (I)
- Algunas clases estándar (II)
- Tipos de atributos
- Constructores
- Tipos de métodos
- Parámetros y argumentos
BLOQUE IV
- Herencia
- Otras relaciones entre objetos
- Interfaces
- Paquetes
Lectura obligatoria
El contenido es una adaptación de la obra Programación Orientada a Objetos con Java que aparece en la bibliografía del curso. A tal fin dentro de la documentación de cada capítulo se han descrito los diferentes elementos básicos de la programación con Java acompañados de ejemplos sencillos de utilización.
Prácticamente todos los programas de ejemplo son deliberadamente pequeños y sencillos para ilustrar cada concepto explicado. Es preferible usar un programa aunque sea pequeño que uno largo. A pesar de la simpleza, todos los programas ejemplo pueden compilarse y ejecutarse de forma independiente. Esto evita las preguntas que frecuentemente generan los fragmentos de programas incompletos.
Asímismo, junto con la descripción de los diferentes elementos de programación en Java, se han incluido las correspondientes convenciones estándar de codificación seguidas por Sun y recomendadas para otros programadores (http://java.sun.com/docs/codeconv/index.html Revisado y actualizado el 20 de abril de 1999). Estas convenciones abarcan los identificadores de archivos de la aplicación, la organización de dichos archivos, la indentación, los comentarios, las declaraciones, las sentencias, los espacios en blanco, las convenciones para identificadores en general y otras prácticas de programación.
- LO-F-001. Tema 1: Introducción
(PDF).
Este capítulo pretende ser una rápida introducción a la programación en Java. En primer lugar muestra lo que es Java, sus características y las herramientas que están ligadas a él y, a continuación, enseña cómo compilar y ejecutar algunos programas sencillos escritos en Java. - LO-F-002. Tema 2: Estructura de un
programa en Java (PDF)
Este capítulo tiene como objetivo presentar la estructura de un programa mediante un ejemplo sencillo y mostrar dos elementos típicos del código fuente: los comentarios y los identificadores. - LO-F-003. Tema 3: Tipos primitivos de
dato (PDF)
Todo lenguaje de programación consta de elementos específicos que permiten realizar las operaciones básicas de la programación: tipos de datos, operadores e instrucciones o sentencias. En este apartado se introducen los distintos tipos de dato que pueden emplearse en la programación con Java. En concreto, se presentan los tipos primitivos en Java, así como las constantes y las variables. - LO-F-004. Tema 4: Operadores (PDF)
Un operador lleva a cabo operaciones sobre uno (operador unario), dos (operador binario) o tres (operador ternario) datos u operandos de tipo primitvo devolviendo un valor determinado también de un tipo primitivo. El tipo de valor devuelto tras la evaluación depende del operador y del tipo de los operandos. Los operadores se pueden clasificar en distintos grupos según se muestra en este capítulo. - LO-F-005. Tema 5: Sentencias selectivas o
condicionales (PDF)
Cuando se escribe un programa, se introduce la secuencia de sentencias dentro de un archivo. Sin sentencias de control del flujo, el intérprete ejecuta las sentencias conforme aparecen en el programa de principio a fin. Las sentencias de control de flujo se emplean en los programas para ejecutar sentencias condicionalmente, repetir un conjunto de sentencias o, en general, cambiar el flujo secuencial de ejecución. Las sentencias selectivas o condicionales se verán en este capítulo y las sentencias repetitivas en el siguiente. - LO-F-006. Tema 6: Sentencias repetitivas o
bucles (PDF)
Los bucles, iteraciones o sentencias repetitivas modifican el flujo secuencial de un programa permitiendo la ejecución reiterada de una sentencia o sentencias. En Java hay tres tipos diferentes de bucles: for, while y do-while. - LO-F-007. Tema 7: Otras
sentencias (PDF)
En este capítulo se muestra el funcionamiento de otras sentencias de control de Java, en concreto, break, continue y try-catch. La primera puede utilizarse conjuntamente y encontrarse tanto en sentencias switch como en bucles, la segunda sólo en bucles y la tercera permite la gestión de excepciones. - LO-F-008. Tema 8: Sentencia return o
métodos (PDF)
La sentencia return se emplea para salir de la secuencia de ejecución de las sentencias de un método y, opcionalmente, devolver un valor. Tras la salida del método se vuelve a la secuencia de ejecución del programa al lugar de llamada de dicho método. - LO-F-009. Tema 9: Objetos y
clases (PDF)
Aunque parezca una obviedad, la base de la Programación Orientada a Objetos es el objeto. En la vida real todos los objetos tienen una serie de características y un comportamiento. Por ejemplo, una puerta tiene color, forma, dimensiones, material... (goza de una serie de características) y puede abrirse, cerrarse... (posee un comportamiento). En Programación Orientada a Objetos, un objeto es una combinación de unos datos específicos y de las rutinas que pueden operar con esos datos. - LO-F-010. Tema 10: Algunas clases estándar
de Java (I) (PDF)
Uno de los puntos fuertes de Java es la gran cantidad de clases predefinidas que posee. Dichas clases pueden ser utilizadas por los programadores sin necesidad de reinventar la rueda. En este capítulo se presentan algunas de las clases predefinidas de Java que se suelen utilizar más en la construcción de programas. - LO-F-011. Tema 11: Algunas clases estándar
de Java (II) (PDF)
Otra clase estándar muy empleada en Java es la clase array o vector. El término español vector para referirse a esta clase de objetos puede dar lugar a confusión ya que existe una clase Vector predefinida en Java. En este caso y sin que sirva de precedente, es conveniente emplear el término inglés array. - LO-F-012. Tema 12: Tipos de
atributos (PDF)
Los atributos, también llamados datos o variables miembro son porciones de información que un objeto posee o conoce de sí mismo. Una clase puede tener cualquier número de atributos o no tener ninguno. Se declaran con un identificador y el tipo de dato correspondiente. Además los atributos y tienen asociado un modificador que define su visibilidad. - LO-F-013. Tema 13: Constructores
(PDF)
Aunque en un principio pueda parecer lo contrario, un constructor no es en realidad un método estrictamente hablando. Un constructor es un elemento de una clase cuyo identificador coincide con el de la clase correspondiente y que tiene por objetivo obligar a y controlar cómo se inicializa una instancia de una determinada clase, ya que el lenguaje Java no permite que las variables miembro de una nueva instancia queden sin inicializar. Además, a diferencia de los métodos, los constructores sólo se emplean cuando se quiere crear una nueva instancia. - LO-F-014. Tema 14: Tipos de
métodos (PDF)
Un método es una abstracción de una operación que puede hacer o realizarse con un objeto. Una clase puede declarar cualquier número de métodos que lleven a cabo operaciones de lo más variado con los objetos. En este capítulo los métodos se clasifican en dos grupos: los métodos de instancia y los métodos de clase. Además se cierra la sección con los métodos estáticos de la clase Math. - LO-F-015. Tema 15: Parámetros o
argumentos (PDF)
Los parámetros o argumentos son una forma de intercambiar información con el método. Pueden servir para introducir datos para ejecutar el método (entrada) o para obtener o modificar datos tras su ejecución (salida). - LO-F-016. Tema 16: Herencia (PDF)
La herencia es una propiedad que permite la declaración de nuevas clases a partir de otras ya existentes. Esto proporciona una de las ventajas principales de la Programación Orientada a Objetos: la reutilización de código previamente desarrollado ya que permite a una clase más específica incorporar la estructura y comportamiento de una clase más general. - LO-F-017. Tema 17: Otras relaciones entre
objetos (PDF)
Además de la relación de herencia las clases empleadas dentro de una aplicación Java, los objetos pueden estar conectados dentro de un programa con otros tipos de relaciones. En cualquier caso, en la mayor parte de los casos la resolución de un problema más o menos complejo exige la colaboración entre objetos. Esta colaboración se puede llevar a cabo mediante el establecimiento de relaciones entre objetos diferentes de la herencia. - LO-F-018. Tema 18: Interfaces (PDF)
Una interfaz es una especie de plantilla para la construcción de clases. Normalmente una interfaz se compone de un conjunto de declaraciones de cabeceras de métodos (sin implementar, de forma similar a un método abstracto) que especifican un protocolo de comportamiento para una o varias clases. - LO-F-019. Tema 19: Packages o
paquetes (PDF)
Aunque la mayoría de los programas que se han realizado hasta ahora han constado de una única clase o de unas pocas almacenadas en uno o pocos archivos, habitualmente una aplicación Java se compone de una colección de clases más o menos numerosa. Cuando los programas son relativamente grandes o se trabaja en equipo, es recomendable dividir el código en varios archivos fuente. Un paquete o package de Java es un conjunto de clases e interfaces relacionadas entre sí.
- LO-F-001. Tema 1: Introducción
(PDF).
Bibliografía
- B-B-001. "Programación Orientada a Objetos con Java";, García-Beltrán, A. y Arranz, J.M, 2007. Segunda edición de los apuntes de la asignatura de Programación Orientada a Objetos disponible en la Sección de Publicaciones de la ETSII-UPM. 315 páginas.
- B-B-002. "Introducción a la Programación con Orientación a Objetos", Muñoz, C., Niño, A. y Vizcaíno, A. Editorial Prentice-Hall, 2002.
- B-B-003. "Java in a nutshell - A desktop quick
reference", Flanagan, D. Editorial Prentice-Hall, 2002. Editorial
OReilly, 1997. 609 páginas.
Visión detallada de todas las características de Java 1.1. En inglés. - B-B-004. "Estructuras de datos en Java", Weiss,
M.A. Editorial Addison Wesley, 2000.
Presenta las estructuras de datos y algoritmos desde la perspectiva del pensamiento abstracto y la resolución de problemas. Contiene múltiples ejemplos de aplicación, de una cierta entidad, cuyo código original está disponible en Internet. - B-B-005. "Java 2 - Manual de usuario y tutorial",
Hortsmann, C. Editorial Ra-Ma, 2000.
En inglés. - B-B-006. "Computing Concepts with Java 2
Essentials", Froufe, A. Editorial John Wiley & sons. Inc., 2000.
682 pp.
Comienza con una introducción al lenguaje Java para enseguida proporcionar información sobre los aspectos mas importantes de la plataforma Java 2: excepciones, multitarea, AWT, delegacion de eventos, swing, gráficos, servlets, JDBC, ... En español. - B-B-007. "El lenguaje de programación Java", Arnold, K., Gosling, J. y Holmes, D. Editorial Prentice-Hall, 2001. Tercera edición.
- B-B-008. "Problemas resueltos de Programación en
lenguaje Java", Perez Menor, Jose María y otros. Editorial Thomson,
2003.
Pertenece a la colección Paso a Paso. Enfoque eminentemente práctico y formativo, incluyendo numerosos ejemplos y ejercicios de programación resueltos.
Ejercicios
- un conjunto de enunciados de preguntas de autoevaluación de la asignatura, que durante el curso presencial se realizan mediante el servidor de la plataforma de tele-educación AulaWeb de la ETSI Industriales de la UPM
- un conjunto de ejercicios prácticos de programación, con su correspondiente solución, que durante el curso presencial se llevan a cabo en el Laboratorio de Informática.
- un conjunto de enunciados de ejercicios propuestos sin la solución
Estos ejercicios son una parte muy importante de estos contenidos ya que si el estudiante los realiza, asimilará los conceptos mostrados en cada capítulo más eficazmente y ganará una experiencia muy valiosa en el empleo del compilador y del intérprete de Java.
Tema 1. Introducción
Tema 2. Estructura de un programa en Java
Tema 3. Tipos primitivos de dato
Tema 4. Operadores
- EP-F-007. Cuestiones del Tema 4 (PDF).
- EP-F-008. Ejercicios resueltos del Tema 4 (PDF).
- EP-F-009. Otros ejercicios propuestos del Tema 4 (PDF).
Tema 5. Sentencias selectivas o condicionales
- EP-F-010. Cuestiones del Tema 5 (PDF).
- EP-F-011. Ejercicios resueltos del Tema 5 (PDF).
- EP-F-012. Otros ejercicios propuestos del Tema 5 (PDF).
Tema 6. Sentencias repetitivas o bucles
- EP-F-013. Cuestiones del Tema 6 (PDF).
- EP-F-014. Ejercicios resueltos del Tema 6 (PDF).
- EP-F-015. Otros ejercicios propuestos del Tema 6 (PDF).
Tema 7. Otras sentencias
Tema 8. Sentencia return o métodos
Tema 9. Objetos y clases
Tema 10. Algunas clases estándar de Java (I)
- EP-F-022. Cuestiones del Tema 10 (PDF).
- EP-F-023. Ejercicios resueltos del Tema 10 (PDF).
- EP-F-024. Otros ejercicios propuestos del Tema 10 (PDF).
Tema 11. Algunas clases estándar de Java (II)
- EP-F-025. Cuestiones del Tema 11 (PDF).
- EP-F-026. Ejercicios resueltos del Tema 11 (PDF).
- EP-F-027. Otros ejercicios propuestos del Tema 11 (PDF).
Tema 12. Tipos de atributos
- EP-F-028. Cuestiones del Tema 12 (PDF).
- EP-F-029. Ejercicios resueltos del Tema 12 (PDF).
- EP-F-030. Otros ejercicios propuestos del Tema 12 (PDF).
Tema 13. Constructores
- EP-F-031. Cuestiones del Tema 13 (PDF).
- EP-F-032. Ejercicios resueltos del Tema 13 (PDF).
- EP-F-033. Otros ejercicios propuestos del Tema 13 (PDF).
Tema 14. Tipos de métodos
- EP-F-034. Cuestiones del Tema 14 (PDF).
- EP-F-035. Ejercicios resueltos del Tema 14 (PDF).
- EP-F-036. Otros ejercicios propuestos del Tema 14 (PDF).
Tema 15. Parámetros o argumentos
Tema 16. Herencia
Tema 17. Otras relaciones entre objetos
Tema 18. Interfaces
Tema 19. Packages o paquetes
Enlaces
- EP-E-001. The
Java tutorial by Sun. Fecha de la última visita:
03/03/2009.
Una guía práctica para programadores con cientos de ejemplos de trabajo completos. En inglés. - EP-E-002. Code Conventions for the Java Programming Language.
Fecha de la última visita: 03/03/2009.
El documento Conventions for the Java Programming Language document contiene las convenciones estándar seuidas por Sun y recomendadas para todos los programadores de Java. Incluye nombres de archivos, declaraciones, comentarios, sentencias... En inglés. - EP-E-003. Pagina de Unicode. Fecha de la última visita:
03/03/2009.
El consorcio Unicode es una organización sin fines de lucro creada para desarrollar, difundir y promover el uso de la norma Unicode, que especifica la representación del texto en productos y estándares de software modernos. - EP-E-004. Sitio Java de Sun - The source for Java technology by
Sun. Fecha de la última visita: 03/03/2009.
Sitio oficial de la tecnología Java desarrollado por Sun Microsystems. Muy actualizado. En inglés. - EP-E-005. Recursos de Java por Gamelan. Fecha de la
última visita: 03/03/2009.
El autodenominado Directorio oficial de Java es un conjunto completo de recursos con referencias a Java, descargas gratuitas, foros,.... - EP-E-006. Java-source.net. Fecha de la última visita:
03/03/2009.
Open Source Software in Java. - EP-E-008. Revista en linea JavaWorld. Fecha de la última
visita: 03/03/2009.
Noticias, trucos, información sobre conferencias y vínculos hacia sitios relacionados con Java. - EP-E-009. Development Exchange Java Zone. Fecha de la
última visita: 03/03/2009.
Foros de discusión sobre tecnologías relacionadas con Java.
- EP-E-001. The
Java tutorial by Sun. Fecha de la última visita:
03/03/2009.
Guía de aprendizaje
Bloques temáticos Tiempo previsto de aprendizaje Materiales de estudio y lectura básicos Cuestiones y ejercicios 1. Introducción 4 horas LO-F-001 (PDF)
EP-F-001 (PDF)
EP-F-002 (PDF)
2. Estructura de un programa 2 horas LO-F-002 (PDF)
EP-F-003 (PDF)
EP-F-004 (PDF)
3. Tipos de dato 3 horas LO-F-003 (PDF)
EP-F-005 (PDF)
EP-F-006 (PDF)
4. Operadores 4 horas LO-F-004 (PDF)
EP-F-007 (PDF)
EP-F-008 (PDF)
EP-F-009 (PDF)
5. Sentencias condicionales 4 horas LO-F-005 (PDF)
EP-F-010 (PDF)
EP-F-011 (PDF)
EP-F-012 (PDF)
6. Sentencias repetitivas 4 horas LO-F-006 (PDF)
EP-F-013 (PDF)
EP-F-014 (PDF)
EP-F-015 (PDF)
7. Otras sentencias 3 horas LO-F-007 (PDF)
EP-F-016 (PDF)
EP-F-017 (PDF)
8. Sentencia return y métodos 5 horas LO-F-008 (PDF)
EP-F-018 (PDF)
EP-F-019 (PDF)
9. Objetos y clases 4 horas LO-F-009 (PDF)
EP-F-020 (PDF)
EP-F-021 (PDF)
10. Algunas clases estándar de Java (I) 3 horas LO-F-010 (PDF)
EP-F-022 (PDF)
EP-F-023 (PDF)
EP-F-024 (PDF)
11. Algunas clases estándar de Java (II) 4 horas LO-F-011 (PDF)
EP-F-025 (PDF)
EP-F-026 (PDF)
EP-F-027 (PDF)
12. Tipos de atributos 3 horas LO-F-012 (PDF)
EP-F-028 (PDF)
EP-F-029 (PDF)
EP-F-030 (PDF)
13. Constructores 3 horas LO-F-013 (PDF)
EP-F-031 (PDF)
EP-F-032 (PDF)
EP-F-033 (PDF)
14. Tipos de métodos 3 horas LO-F-014 (PDF)
EP-F-034 (PDF)
EP-F-035 (PDF)
EP-F-036 (PDF)
15. Parámetros y argumentos 3 horas LO-F-015 (PDF)
EP-F-037 (PDF)
EP-F-038 (PDF)
16. Herencia 5 horas LO-F-016 (PDF)
EP-F-039 (PDF)
EP-F-040 (PDF)
17. Otras relaciones entre objetos 4 horas LO-F-017 (PDF)
EP-F-041 (PDF)
EP-F-042 (PDF)
18. Interfaces 4 horas LO-F-018 (PDF)
EP-F-043 (PDF)
EP-F-044 (PDF)
19. Paquetes 3 horas LO-F-019 (PDF)
EP-F-045 (PDF)
EP-F-046 (PDF)
Autores del material
Escuela Técnica Superior de Ingenieros Industriales
Departamento de Automática, Ingeniería Electrónica e Informática Industrial
Ángel García Beltrán
Profesor Titular de Universidad
José María Arranz Santamaría
Profesor Asociado