Aprendiendo JavayProgramación Orientada a Objetos
Gustavo Guillermo Pérezwww.compunauta.comgustavo@compunauta.com*Hasta que esta leyenda no desaparezca el libro no ha sido terminado, revisar:http://compunauta.com/forums/linux/programacion/java/ebook.html para las actualizaciones diarias o semanales y para descargar el código de los ejemplos.
ESTE LIBRO ES LIBRE Y GRATUITO, CONSIDERA HACER UNA PEQUEÑA DONACIÓN EN LA WEB INDICADA ARRIBA.
*Para navegar el Índice con Adobe Acrobat Reader, abrir favoritos o bookmarksUltima actualización, lunes 11 de febrero de 2008
 
INDICE DEL TEMARIO
Prólogo...........................................................................................................................................................4I. TEMAS INTRODUCTORIOS..................................................................................................................5La Máquina Virtual de Java (JVM, Java Virtual Machine).....................................................................5Kit de desarrollo y Entorno de ejecución (JDK, JRE)........................................................................5Comandos que inician el JDK, JRE....................................................................................................5Salida por pantalla de los comandos del JDK, JRE............................................................................6Programación Orientada a Objetos con Java...........................................................................................9Descripción Empírica del funcionamiento del entorno JRE...............................................................9Herencia soportada por Java..............................................................................................................10Tipos de datos Básicos.......................................................................................................................10Operadores y Delimitadores Básicos................................................................................................11 Nombres de variables y funciones.....................................................................................................12II. Codificación Inicial y Estructuras de Datos...........................................................................................13El primer programa.................................................................................................................................13Paquetes.............................................................................................................................................13Palabras clave o reservadas...............................................................................................................14Tipos de datos...............................................................................................................................14Permisos y declaración de clases, propiedades o métodos..........................................................14Bucles y tomas de decisión...........................................................................................................15Reservadas....................................................................................................................................16Excepciones, control de errores....................................................................................................16Secuencias de escape.........................................................................................................................16Concatenación y conversiones a texto...................................................................................................17Salida por pantalla y entrada por teclado...............................................................................................18System.out..........................................................................................................................................18System.in............................................................................................................................................20System.err..........................................................................................................................................20System.exit(int cod);..........................................................................................................................21Leer líneas de la entrada estándar......................................................................................................21Crear Objetos (de la biblioteca de Java).................................................................................................22El bloque de control de errores, try{}catch(){}.....................................................................................22Ejercicios................................................................................................................................................232.1. Entrada de Datos y conversiones. [if, try, catch].......................................................................232.2 NumberFormatException while(){}............................................................................................242.3 Mezcla de bucles do{} while(); y for(;;){}.................................................................................242.4 Switch Select................................................................................................................................25Práctica Complementaria Resuelta (sin procedimientos, sin arreglos).................................................25P.C.E1................................................................................................................................................25P.C.E2................................................................................................................................................26P.C.E3................................................................................................................................................27P.C.E4................................................................................................................................................28P.C.E5................................................................................................................................................29P.C.E6................................................................................................................................................31P.C.E7................................................................................................................................................32P.C.E8................................................................................................................................................33P.C.E9................................................................................................................................................35Práctica Complementaria (bucles sin arreglos)......................................................................................38III – Métodos estáticos y Mecanismos de Programación...........................................................................39Métodos estáticos (funciones o procedimientos)...................................................................................39Página 2/73
 
Arreglos (Arrays) o Vectores.................................................................................................................41La clase Math de procedimientos y constantes matemáticas.................................................................42Buffering – Memoria temporal...............................................................................................................45Usando arreglos para un buffer, colas de espera, pilas y listas.........................................................45Implementación del buffer tipo FIFO (Cola de espera, el primero es primero en salir).............46Implementación del buffer tipo LIFO (La pila, último en llegar es primero en salir)................53Implementación de una Lista de datos.........................................................................................57Búsqueda de datos..................................................................................................................................60Búsqueda secuencial..........................................................................................................................60Búsqueda aleatoria, desordenar lista.................................................................................................60Búsqueda Binaria (lista ordenada).....................................................................................................62Métodos para ordenar listas....................................................................................................................63Método de la burbuja o Método de Ordenación por Selección........................................................63Método QuickSort Recursivo............................................................................................................65Otros mecanismos para ordenar........................................................................................................66Ejercicios................................................................................................................................................67Ejercicio 3.1.......................................................................................................................................67Ejercicio 3.2.......................................................................................................................................69Ejercicio 3.3.......................................................................................................................................69IV- Primeros Objetos como mecanismo de programación.........................................................................70Lista con punteros para ordenar datos....................................................................................................70 Nuestro primer objeto........................................................................................................................70Propiedades...................................................................................................................................70Página 3/73
 
Prólogo
Este libro se hizo con la idea de proveer a mis alumnos y cursos un material didáctico con qué trabajar (también es útil para profesores y otros cursos) y al mismo tiempo dar una idea concisa de lo que significan los objetos en Java. La programación orientada a objetos en Java no es tratada y enfocada en muchos textos tutoriales, manuales o libros sobre el tema y considero que es la etapa inicial del aprendizaje donde se falla en muchos cursos respecto a Java. Por otro lado los estudiantes que recién se inician en la programación, no podrán ir muy lejos si no se les inculca los conceptos básicos, entonces este material no avanzara de lleno sobre la programación orientada a objetos, sino hasta que los conceptos de programación básicos, como tomas de decisión, bucles, variables etc, estén fijados lo suficiente. Java es un lenguaje muy útil debido a la opción multiplataforma que provee (desde PC, Linux, Windows, hasta MAC, teléfonos, pocket PCs, etc.) y veremos en el transcurso de este texto como se  puede optimizar la ejecución de una aplicación Java para que se aproxime a la ejecución de un binario nativo como los que se compilan con gcc.Por lo tanto suponer que el alumno posee conocimientos avanzados de programación orientada a objetos o de otros lenguajes de programación no siempre suele ser la mejor opción, en este libro dejaremos en claro que el lenguaje de programación Java tiene sus operadores matemáticos básicos y tipos de datos básicos sin importar que estos mismos existan o no en otros lenguajes de programación.Este libro se distribuye bajo la licencia GNU GPL v2, con la excepción que está prohibido hacer impresiones modificadas del texto, si alguien tiene una sugerencia o una modificación para sugerir,  puede enviar al correo electrónico indicado la información, para una futura actualización o corrección.Las sugerencias son bienvenidas.Página 4/73
of 73