PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Documentos relacionados
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

JAVA 7 Los fundamentos del lenguaje Java

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans

Fundamentos de Programación Visual Basic

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Java para no Programadores

5. Sentencias selectivas o condicionales

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª

INDICE Prefacio 1. Fundamentos de Java 2. Introducción a los tipos de datos y operadores

Principios de Programación en Java

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

JAVA -INTRODUCCIÓN AL LENGUAJE

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

4. Operadores Operador asignación

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

Índice general. Capítulo 1 Conceptos básicos. Capítulo 2 Controles básicos I. Pág. N. 1

POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I

1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

: Algorítmica y Estructura de Datos I

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios:

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Guía del Curso Experto en Microsoft Excel 2016, VBA y Business Intelligence

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Java para programadores

Ficha de Aprendizaje N 13

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

Aprender a desarrollar con JavaScript

Fundamentos de programación y Bases de Datos

Tema 2. El lenguaje JAVA

Guía del Curso Certificación It en Microsoft Excel VBA para Excel: Macros and Graphics Expert

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN

ÍNDICE. PRÓLOGO Parte I Parte II Apéndices... 23

Curso: Programación con JAVA SE Estándar Edition.

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Técnico Superior en Programación con Java SE Standard Edition

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

PLAN DE MATERIAS ACADEMUSOFT 3.2

Universidad Ricardo Palma

GUÍA DE ESTILO EN JAVA

JAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos)

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Guía práctica de estudio 05: Diagramas de flujo

DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios.

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Temario Iniciación a Java J2SE para web

Tema 2 Introducción a la Programación en C.

Curso AVANZADO DE EXCEL 2013

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL

Resultado de Aprendizaje:

Universidad Autónoma de Tlaxcala. M.C. José Juan Hernández Mora. Primera Sesión

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

Tema 2. El lenguaje de programación Java (Parte 1)

PROGRAMA INSTRUCCIONAL

DATOS GENERALES 60 HORAS 3 HORAS

Principios de Computadoras II

Pontificia Universidad Católica del Ecuador

Introducción a Java LSUB. 30 de enero de 2013 GSYC

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

INDICE Capitulo 1. Fundamentos de Java Capitulo 2. Clases y POO

Lanzamiento de nueva versión KIT PLUGIN_AW... Ahora aprender C es más fácil!

Elementos léxicos del lenguaje de programación Java

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Elementos de un programa en C

MISIÓN UNIVERSIDAD DEL ISTMO VICERRECTORIA ACADÉMICA PROGRAMA ANALÍTICO

Programación Estructurada

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos Introducción... 24

Programa de Asignatura Programación Visual I

Oracle Database: Programación con PL/SQL

Introducción a la programación Metodología de programación, creación y desarrollo de programas en Java... 25

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

2.2 Nombres, Ligado y Ámbito

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Curso Programación Orientada a Objetos con VB y Visual Studio 2013

Operadores y Expresiones

VISUAL BASIC.NET. NIVEL COMPLETO

Principios de Computadoras II

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos

JAVA Fundamentos Sesiones por Video-Conferencia

Capítulo 16. Diagrama de Clases UML

1

Programación Java SE 7

Transcripción:

PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Angel García Beltrán y José María Arranz Santamaría Sección de Publicaciones Escuela Técnica Superior de Ingenieros Industriales Universidad Politécnica de Madrid 2ª Edición Septiembre de 2007

2 A. García-Beltrán y J.M. Arranz

Programación orientada a objetos con Java 3 Esta publicación impresa y sus capítulos online están registrados por los autores. Esto significa que los contenidos, de forma total o parcial, se pueden leer, imprimir, compartir y distribuir libremente aunque con las consideraciones indicadas a continuación: Autoría: debe indicarse el nombre de los autores originales Uso no comercial: No debe utilizarse para usos comerciales. Sólo se permite para uso educacional por instituciones públicas o sin ánimo de lucro El contenido no debe alterarse o transformarse para ser incluido en trabajos derivados Programación Orientada a Objetos con Java (C) Angel García Beltrán y José María Arranz Santamaría agarcia@etsii.upm.es; jmarranz@dii.etsii.upm.es Sección de Publicaciones de la Escuela Técnica Superior de Ingenieros Industriales Universidad Politécnica de Madrid

4 A. García-Beltrán y J.M. Arranz

Programación orientada a objetos con Java 5 ÍNDICE 1. INTRODUCCIÓN...10 1.1. EL LENGUAJE DE PROGRAMACIÓN JAVA...10 1.2. INSTALACIÓN DEL KIT DE DESARROLLO JAVA...13 1.3. PRIMERAS PRÁCTICAS...15 2. ESTRUCTURA DE UN PROGRAMA EN JAVA...26 2.1. LA CLASE PRINCIPAL Y EL MÉTODO MAIN...26 2.2. COMENTARIOS...27 2.3. IDENTIFICADORES...28 3. TIPOS DE DATO...31 3.1. CATEGORÍAS DE TIPOS DE DATOS...31 3.2. TIPOS DE DATO PRIMITIVOS EN JAVA...31 3.3. LITERALES O CONSTANTES LITERALES DE TIPOS DE DATO PRIMITIVOS...32 3.4. FORMATO DE REPRESENTACIÓN DE LOS DATOS NUMÉRICOS REALES...34 3.5. DECLARACIONES DE VARIABLES...35 3.6. DECLARACIÓN DE VARIABLES FINAL O CONSTANTES...36 3.7. CONVERSIONES ENTRE TIPOS DE DATO...37 4. OPERADORES...42 4.1. OPERADOR ASIGNACIÓN...42 4.2. OPERADORES ARITMÉTICOS...43 4.3. OPERADORES ARITMÉTICOS INCREMENTALES...44 4.4. OPERADORES ARITMÉTICOS COMBINADOS...45 4.5. OPERADORES DE RELACIÓN...46 4.6. OPERADORES LÓGICOS O BOOLEANOS...47 4.7. EL OPERADOR CONDICIONAL...49 4.8. OPERADORES DE BIT...50 4.9. OPERADOR CONCATENACIÓN DE CADENAS...51 4.10. SEPARADORES...51 4.11. EXPRESIONES...52 4.12. PRIORIDAD ENTRE OPERADORES...52 5. SENTENCIAS SELECTIVAS O CONDICIONALES...59 5.1. SENTENCIAS DE CONTROL DEL FLUJO DE UN PROGRAMA...59 5.2. SENTENCIA IF-ELSE...59 5.3. SENTENCIA SWITCH...61 6. SENTENCIAS REPETITIVAS O BUCLES...69 6.1. SENTENCIA FOR...69 6.2. SENTENCIA WHILE...72 6.3. SENTENCIA DO-WHILE...73 7. OTRAS SENTENCIAS...82 7.1. SENTENCIA BREAK...82 7.2. SENTENCIA CONTINUE...83 7.3. TRATAMIENTO DE EXCEPCIONES...84 7.4. OPERACIONES DE ENTRADA Y SALIDA DE DATOS...86

6 A. García-Beltrán y J.M. Arranz 8. SENTENCIA RETURN Y MÉTODOS...88 8.1. DECLARACIÓN Y USO DE MÉTODOS...88 8.2. RETURN Y VOID...92 8.3. RECURSIÓN O RECURRENCIA...94 8.4. SOBRECARGA DE MÉTODOS...95 9. OBJETOS Y CLASES...99 9.1. CLASES...99 9.2. INSTANCIAS...99 9.3. MODIFICADORES DE VISIBILIDAD...103 9.4. CLASES ANIDADAS E INTERNAS...104 9.5. EL OPERADOR INSTANCEOF...104 9.6. JAVADOC...104 10. ALGUNAS CLASES ESTÁNDAR DE JAVA (I)...109 10.1. CLASES CONTENEDORAS O WRAPPERS...109 10.2. OBJETOS DE LA CLASE CHARACTER...109 10.3. OBJETOS DE LA CLASE STRING...110 10.4. OPERACIONES CON INSTANCIAS DE LA CLASE STRING...110 10.5. OTROS MÉTODOS PARA TRABAJAR CON OBJETOS DE LA CLASE STRING...112 11. ALGUNAS CLASES ESTÁNDAR DE JAVA (II)...117 11.1. OBJETOS DE LA CLASE ARRAY...117 11.2. OPERACIONES CON ARRAYS...118 11.3. ARRAY DE OBJETOS...121 11.4. ARRAYS MULTIDIMENSIONALES...123 12. TIPOS DE ATRIBUTOS...130 12.1. VARIABLES DE INSTANCIA...130 12.2. VARIABLES DE CLASE (STATIC)...131 12.3. CONSTANTES O VARIABLES FINALES (FINAL)...133 13. CONSTRUCTORES...139 13.1. CONSTRUCTORES...139 13.2. DECLARACIÓN DE UN CONSTRUCTOR...139 13.3. MÁS SOBRE LA DECLARACIÓN Y USO DE VARIOS CONSTRUCTORES...141 14. TIPOS DE MÉTODOS...147 14.1. MÉTODOS DE INSTANCIA...147 14.2. MÉTODOS DE CLASE...147 15. PARÁMETROS O ARGUMENTOS...155 15.1. USO ALTERNATIVO DE THIS COMO REFERENCIA AL PARÁMETRO IMPLÍCITO...156 15.2. PASO POR VALOR Y PASO POR REFERENCIA...157 15.3. VARIABLES LOCALES...158 16. HERENCIA...160 16.1. DEFINICIÓN DE HERENCIA...160 16.2. JERARQUÍA DE CLASES...161 16.3. SOBREESCRITURA DE MÉTODOS HEREDADOS...162

Programación orientada a objetos con Java 7 16.4. LA CLASE OBJECT...162 16.5. HERENCIA Y CONSTRUCTORES...163 16.6. CLASES Y MÉTODOS ABSTRACTOS...164 16.7. CLASES Y MÉTODOS FINALES...165 17. AGREGACIÓN Y ANIDACIÓN...172 17.1. AGREGACIÓN, ASOCIACIÓN O COMPOSICIÓN...172 17.2. ANIDACIÓN O DESCOMPOSICIÓN DE CÓDIGO...173 18. INTERFACES...180 18.1. DECLARACIÓN DE UNA INTERFAZ...180 18.2. IMPLEMENTACIÓN DE UNA INTERFAZ EN UNA CLASE...181 18.3. JERARQUÍA ENTRE INTERFACES...182 18.4. UTILIZACIÓN DE UNA INTERFAZ COMO UN TIPO DE DATO...184 19. PACKAGES O PAQUETES...190 19.1. CÓMO SE ORGANIZA UN CONJUNTO DE ARCHIVOS FUENTE DE JAVA?...190 19.2. IDENTIFICACIÓN DE UN PAQUETE...191 19.3. ACCESO A LOS COMPONENTES DE UN PAQUETE...191 19.4. MODIFICADORES DE ACCESO A LOS COMPONENTES...192 19.5. RECOMENDACIONES PARA LA GESTIÓN DE ARCHIVOS DE JAVA...193 20. TRATAMIENTO DE EXCEPCIONES...199 20.1. ERROR DE EJECUCIÓN DE UN PROGRAMA...199 20.2. TIPOS DE ERRORES...199 20.3. TRATAMIENTO DE ERRORES (PREVISIBLES)...202 20.4. TRATAMIENTO DE ERRORES CLÁSICO...202 20.5. TRATAMIENTO DE ERRORES MODERNO (EXCEPCIONES)...205 21. COLECCIONES...216 21.1. INTRODUCCIÓN...216 21.2. INTERFACES...216 21.3. INTERFAZ COLLECTION...218 21.4. INTERFAZ ITERATOR...219 21.5. INTERFAZ SET...220 21.6. INTERFAZ LIST...222 21.7. INTERFAZ MAP...226 21.8. TABLA RESUMEN...231 21.9. IDENTIDAD DE LOS ELEMENTOS DE UNA COLECCIÓN...231 21.10. ORDENACIÓN DE LOS ELEMENTOS DE UNA COLECCIÓN...233 21.11. ALGORITMOS PREDEFINIDOS...234 22. USO DE ARCHIVOS Y ENTRADA Y SALIDA DE DATOS...239 22.1. LA CLASE FILE...239 22.2. CLASES STREAMS...241 22.3. CLASES PARA TRABAJAR CON FLUJOS DE CARACTERES...243 22.4. CLASES PARA TRABAJAR CON FLUJOS DE BYTES...247 22.5. ENTRADAS Y SALIDAS ESTÁNDAR EN JAVA...249 22.6. SALIDA DE DATOS POR PANTALLA...249 22.7. LECTURA DE DATOS POR TECLADO...251 22.8. DATOS DE DISTINTOS TIPOS PRIMITIVOS EN ARCHIVOS...252

8 A. García-Beltrán y J.M. Arranz 22.9. SERIALIZACIÓN DE OBJETOS...255 23. CONCURRENCIA E HILOS...260 23.1. INTRODUCCIÓN...260 23.2. PROGRAMAS DE UN ÚNICO HILO O DE FLUJO ÚNICO...261 23.3. PROGRAMAS MULTIHILO O DE FLUJO MÚLTIPLE...261 23.4. LA CLASE THREAD...262 23.5. LA INTERFAZ RUNNABLE...264 23.6. CICLO DE VIDA DE UN HILO...266 23.7. PROGRAMACIÓN DE HILOS O SCHEDULING...268 23.8. EL MODIFICADOR SYNCHRONIZED...270 23.9. OTROS MÉTODOS DE UTILIDAD PARA HILOS SINCRONIZADOS...271 23.10. COMUNICACIÓN ENTRE HILOS...272 23.11. GRUPOS DE HILOS...275 24. APÉNDICE: EL LENGUAJE UNIFICADO DE MODELADO, UML...278 24.1. DIAGRAMA DE CLASES...278 24.2. REPRESENTACIÓN DE LAS CLASES...278 24.3. REPRESENTACIÓN DE LOS OBJETOS...279 24.4. RELACIONES ENTRE CLASES...279 24.5. RELACIÓN DE HERENCIA...280 24.6. RELACIÓN DE ASOCIACIÓN...280 24.7. RELACIÓN DE DEPENDENCIA...281 24.8. INTERFACES...281 25. PROGRAMACIÓN CON INTERFACES GRÁFICAS DE USUARIO (GUI)...282 25.1. JFC Y SWING...282 25.2. ELEMENTOS DE UNA APLICACIÓN GRÁFICA...283 25.3. UN PRIMER PROGRAMA QUE EMPLEA COMPONENTES SWING...283 25.4. COMPONENTES GRÁFICOS...285 25.5. LA CLASE JCOMPONENT...286 25.6. GENERACIÓN Y ORGANIZACIÓN DE COMPONENTES GRÁFICOS...290 25.7. UNA APLICACIÓN GRÁFICA CON INTERACCIÓN...291 25.8. UNA APLICACIÓN CON UTILIDAD...296 26. APÉNDICE. QUÉ ES EL JDK (JAVA DEVELOPERS KIT)?...305

Programación orientada a objetos con Java 9 PRÓLOGO Este pequeño manual sirve de referencia para el seguimiento de las asignaturas Programación en Java y Programación Orientada a Objetos con Java impartidas en la Escuela Técnica Superior de Ingenieros Industriales de la Universidad Politécnica de Madrid. Pero además puede servir como guía de autoaprendizaje o como material de referencia o de apoyo dentro de un primer curso de programación. Los capítulos han sido redactados por los profesores del Departamento de Automática, Ingeniería Electrónica e Informática Industrial: Ángel García-Beltrán (del capítulo 1 al 17 y del 21 al 24) y José María Arranz (del 19 al 20). Los objetivos principales de esta obra son la presentación de los elementos fundamentales del lenguaje de programación Java y la introducción a la metodología de la programación orientada a objetos. Dentro 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. Todos los programas de ejemplo son deliberadamente pequeños y sencillos para ilustrar cada concepto explicado. A pesar de la simpleza, todos los programas ejemplo pueden compilarse y ejecutarse de forma independiente. Al final de cada capítulo se han incluido algunas cuestiones y ejercicios propuestos que sirven de autoevaluación para los lectores de esta obra. Estos ejercicios son una parte muy importante de esta obra 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. 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 1. Estas convenciones abarcan los identificadores de archivos, la organización de 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. Las convenciones de código son importantes para los programadores por varias razones: El 80% del coste del ciclo de vida del software se dedica a mantenimiento Prácticamente nunca el software es mantenido durante su vida útil por el autor original. Las convenciones de código facilitan la legibilidad del software permitiendo a los programadores entender el nuevo código más rápida y directamente. Si se envía el código fuente como un producto, es necesario asegurarse que está bien presentado y empaquetado como cualquier otro producto que se pudiera crear. El ordenador y el entorno de programación (compilador, intérprete...) son excelentes maestros. Es altamente recomendable experimentar con cada una 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. Java es una marca comercial de Sun Microsystems Inc. 1 http://java.sun.com/docs/codeconv/index.html Revisado y actualizado el 20 de abril de 1999