Indice Libro Aprender A Programar en Java Desde Cero Curso Pasoapaso
Indice Libro Aprender A Programar en Java Desde Cero Curso Pasoapaso
Indice Libro Aprender A Programar en Java Desde Cero Curso Pasoapaso
INDICE
1. INTRODUCCINAJAVA 1.1. Qu es Java? 1.2. Es Java un lenguaje ideal para aprender a programar? 1.3. Es Java software libre? 1.4. Cules son las versiones y distribuciones Java y cul usar? 1.5. Qu sistema operativo debo usar para programar Java? 1.6. Qu son las actualizaciones de Java? INSTALACINYPRIMEROSPASOSCONJAVA 2.1. Descargar (download) Java: obtener el instalador 2.2. Instalacin de Java en Windows (en nuestro pc) 2.3. Configuracin de Java en Windows: JAVA_HOME, PATH 2.4. Mquina virtual JVM, compilador e intrprete Java. Bytecode. 2.5. NetBeans, Eclipse, JCreator, JBuilder Cul es el mejor entorno de desarrollo (IDE) Java? 2.6. Descargar (download) BlueJ. Instalacin en Windows. 2.7. Qu es un proyecto Java? Creacin del primer proyecto. 2.8. La ventana del editor de BlueJ 2.9. Escribir cdigo (una clase) en Java con un IDE. Primer programa. 2.10. Comentarios en lenguaje Java y bloques en Java OBJETOSYCLASESENJAVA.INSTANCIAS. 3.1. Visualizar clases y objetos con BlueJ e invocar mtodos 3.2. Tipos de datos (variables) en Java 3.3. Ejemplos de uso de tipos de datos (variables). Declaracin y asignacin de contenido. 3.4. Qu es una clase? Atributos, constructor y mtodos 3.5. Mtodos tipo procedimiento (void) y tipo funcin (return). 3.6. Mtodos con y sin parmetros 3.7. Mtodos consultores o de acceso (getters) y mtodos modificadores (setters) 3.8. Estado de un objeto 3.9. Parmetros formales y parmetros actuales 3.10. Comprender la filosofa de mtodos y clases en Java 3.11. Signatura de un mtodo. Interfaz o interface. 3.12. Guardar los proyectos Java. Copias de seguridad. SINTAXISBSICAYCONDICIONALESENJAVA 4.1 Imprimir por pantalla con System.out. Concatenar cadenas. Notacin de punto. 4.2 Operadores aritmticos en Java. 4.3 Operadores lgicos principales en Java. 4.4 Sentencia de asignacin. Asignacin compuesta. 4.5 Condicional if else / if else if en Java 4.6 Condicional de seleccin con switch en Java
2.
3.
4.
5.
ORGANIZARELCDIGOENJAVA 5.1 Variables locales a un mtodo o constructor. Sobrecarga de nombres. 5.2 Cmo crear constructores en Java. Ejemplos. 5.3 Clases con dos o ms constructores. Sobrecarga de constructores o mtodos. 5.4 Clases que utilizan objetos preexistentes: relacin de uso entre clases. Diagrama de clases. 5.5 Paso de objetos como parmetros a un mtodo o constructor 5.6 La sentencia new como invocacin de un constructor. ELAPIDEJAVA.BIBLIOTECASDECLASES. 6.1 Otra definicin de clase: un paquete de cdigo. Objetos del mundo real y objetos abstractos. 6.2 Qu es y para qu sirve el API de Java? 6.3 Organizacin y forma de nombrar las libreras en el API de Java 6.4 Importar y usar clases del API de Java. Ejemplo: clase Math 6.5 Interface de clase. Ejemplo: clase String 84 6.6 Explorar un mtodo. El mtodo substring de la clase String. 6.7 Usar mtodos para evitar errores. Ejemplo mtodo length de la clase String CREARUNPROGRAMACONJAVA 7.1. Concepcin de programas mediante abstraccin y modularizacin 7.2 Un ejemplo de cdigo Java muy elemental. Crear clases con campos, constructor y mtodos. 7.3 Definicin de mtodo interno y mtodo externo en Java 7.4 La palabra clave this. Contenido null por defecto de un objeto. 7.5 Clase con el mtodo main: clase principal, iniciadora o programa principal. 7.6 Sintaxis y cdigo ejemplo de uso del mtodo main. 7.7 Pedir datos por consola (teclado) en java. Escape con barra invertida backslash. Print y salto de lnea con \n. ESTRUCTURASDEREPETICINOBUCLES,COLECCIONESDEOBJETOSYRECORRIDOS 8.1 Concepto general de bucle 8.2 Bucle con instruccin for. Operador ++ y . Sentencia break 8.3 Bucle con instruccin while. Ejemplo de uso de break. 8.4 Bucle con instruccin do while. 8.5 El debugger de BlueJ. Detener un programa en ejecucin. 8.6 Pensar en objetos. Pensar una entrada de teclado como objeto. 8.7 El mtodo equals. Diferencia entre igualdad e identidad entre objetos. 8.8 Asignacin de igualdad con tipos primitivos y con objetos. 8.9 Repaso y ejemplos sobre igualdad, identidad y mtodo equals. 8.10 Colecciones de objetos de tamao flexible. Contenedores de objetos. 8.11 La clase ArrayList del API de Java. 8.12 Concepto de clase genrica (clase parametrizada) 8.13 El for extendido o bucles for each en Java. 8.14 Recorrer colecciones con objetos Iterator. Evitar errores tipo java.util.ConcurrentModificationException.
6.
7.
8.
Resumen de tipos de bucles (ciclos) en Java. Objetos con referencia null y excepciones tipo java.lang.NullPointerException. Autoboxing y unboxing. Conversin automtica de tipos envoltorio a primitivos y viceversa. Objetos annimos. Colecciones de tamao fijo: arrays, arreglos o formaciones. Campo length para saber el nmero de elementos de un array Uso de ciclos for each con arrays Resumen de colecciones
AVANZARENELUSOYCONOCIMIENTODEJAVA 9.1 Conversin de tipos en java 9.2 Mtodo valueof para conversin de tipos 9.3 Ejemplo de conversin de tipos. Tipo obtenido frente a tipo requerido. Mtodos get y remove de ArrayList 9.4 Generar nmeros aleatorios en Java. Clase Random. 9.5 Variables de clase o estticas y constantes. Palabras clave static y final. 9.6 Organizar un proyecto Java en paquetes (packages). Clusulas package e import 9.7 Formas de nombrar packages, jerarquizacin y visibilidad de clases. Los packages en BlueJ. 9.8 Copiar arrays y comparar arrays. Identidad e igualdad entre arrays. 9.9 La clase Arrays del API de Java. Mtodos equals y copyof. 9.10 Rellenar un array con un valor u objeto. Mtodo fill de la clase Arrays. 9.11 Interfaz o interface en Java. Ampliacin del concepto. 9.12 Polimorfismo en Java. Primera aproximacin. 9.13 Transformar un array en una lista con el mtodo aslist de la clase Arrays. Constructores que usan colecciones. 9.14 Documentar un proyecto con javadoc. Comentarios, smbolos, tags. 9.15 Tipos enumerados (enum) en Java. 9.16 Mtodo values. Enumerados clases con campos y constructores. 9.17 Mtodos de clase o static frente a mtodos de instancia. Comprender el mtodo main. HERENCIAENJAVA 10.1 Qu es la herencia en programacin orientada a objetos? 10.2 Jerarquas de herencia. Organizacin y acceso entre clases. 10.3 Ejemplo de herencia y uso de palabras clave extends y super. Constructores con herencia. 10.4 Ejemplo de herencia descendente o herencia simple. 10.5 Jerarqua de tipos. Subtipos. Polimorfismo y variables polimrficas. 10.6 Conversin de tipos (enmascaramiento). Hacer casting y ClassCastExceptions. 166 10.7 Determinacin del tipo de variables con instanceof. 10.8 Tipo esttico y tipo dinmico de variables. Sobreescritura (redefinicin) de mtodos. Mtodos polimrficos. 10.9 Ejercicio ejemplo de cdigo con herencia, polimorfismo de variables y mtodos, y sobreescritura de mtodos. 10.10 Uso de la palabra clave super para llamar a mtodos. 10.11 Modificadores de acceso public, private y protected. 10.12 Sobreescribir mtodos de la clase Object: mtodo toString().
10.
Sobreescribir mtodos de la clase Object: mtodo equals. Clases y mtodos abstractos. Clases abstractas en el API de Java Herencia mltiple. Interfaces en Java. Para qu sirven las interfaces en Java. Ejemplo sencillo de interface en Java. Implementar una interface del API de Java. Resumen de herencia en Java.
PROGRESARCOMOPROGRAMADORESJAVA:SWING,GESTINDEERRORESYMSALL. 11.1 Qu hemos aprendido y qu no hemos aprendido con este curso? INDICEDETRMINOS
12.
A
abstraccin, 15, 39, 48, 75, 85, 87, 91, 158, 161, 182 abstract(palabraclave), 177, 183 acoplamiento, 190 actualizaciones Java, 19 add (mtodo de la clase ArrayList), 115 aleatorio. Vase nmeros aleatorios algoritmia, 13 and (operador de conjuncin &&), 59 API (Application Programming Interface), 19 api de Java, 19, 77, 80, 81, 118, 136, 145, 152, 161 aprenderaprogramar.com, 13, 191 ArrayList, 114, 115, 118, 128, 146, 148, 165, 186 Arrays (clase del api Java), 141, 144, 147, 156 arrays (tipo de datos), 43, 124, 126, 139, 141, 144 arreglo. Vase arrays (tipo de datos) asignacin, 45, 59, 61, 96, 111, 125, 165 asignacin compuesta, 59 asList (mtodo de la clase Arrays), 147 atributos, 133 atributos de clase (estticos), 133 atributos de instancia, 39, 46, 52, 65, 68, 82, 84, 106 atributos de objeto. Vase atributos de instancia autoboxing, 123 AutoLayout, 37 awt (biblioteca api java), 79, 145, 191
banco de objetos (object bench), 41, 89 barra invertida, 101 bibliotecas. Vase api de Java bloque, 39 BlueJ, 31, 32, 35, 38, 55, 70, 88, 105, 156 boolean / Boolean (tipos), 43 botones, 79 break, 61, 103, 119 breakpoint, 105 bucles, 102 bug (error), 105 bsqueda dinmica de mtodos, 171 byte / Byte (tipos), 43 bytecode, 26, 33
C
Calendar, 79 campos. Vase atributos de instancia capacidad de una coleccin, 115 case (palabra clave para switch), 61 casting, 167 char / Character (tipos), 43 clase, 39, 46, 67, 75, 91, 160 clase enumerada. Vase enumerados (tipo) clase genrica o parametrizada, 118 clases abstractas, 177, 182, 184, 189 clases internas, 190 clases sin campos o atributos, 74 ClassCastException, 167 clone (mtodo), 113 codepad, 89
B
backslash. Vase barra invertida
cdigo fuente, 17, 23, 26, 33, 36, 78, 85, 170 cdigo mquina, 26, 30, Vase bytecode cohesin, 190 colas, 114 colecciones de objetos, 114, 120, 124, 126, 147 Collection (interface), 148 Collections (clase), 190 comentarios en cdigo Java, 38, 93, 149 Comparable (interface), 188 comparar arrays, 141 comparar objetos, 110, 175, Vase equals compareTo (mtodo), 189 compilacin, 25, 28, 35, 170, Vase compilador compilador, 17, 23, 25, 28, 31, 38, 77, 82, 169 concat (mtodo de la clase String), 86, 175, 179 concatenacin de cadenas de texto (Strings), 57, Vase concat (mtodo de la clase String) ConcurrentModificationException, 120 condicionales, 60, 61 configuracin de Java en Windows, 24 conjunto, 114, 123 constantes, 132, 152, 183, 187 constructor, 46, 51, 63, 65, 73, 75, 79, 82, 85, 91, 108, 113 constructores con colecciones como parmetro, 148 constructores con herencia, 163 constructores de subclases. Vase constructores con herencia constructores mltiples o sobrecargados, 67 contains (mtodo de la clase String), 86, 121 conversin de tipos, 127, 128, 166, Vase casting copiar arrays, 139 copiar objetos, 113 copias de seguridad, 55 cuerpo, 47, 157, 169, 178, 183
documentar proyectos y cdigo Java, 36, 79, 148, Vase javadoc double / Double (tipos), 43
E
Eclipse, 30, 38, 134 ejecutar lnea a lnea, 106 else, 60 else if, 60, 69 else vaco, 60, 116 encapsulamiento, 173, 174 enmascaramiento de tipos. Vase casting enteros. Vase tipos de datos Java entorno de desarrollo, 30, 37, 56 entrada de teclado, 100, 106 enum. Vase enumerados (tipo) enumerados (tipo), 62, 152 envoltorio (tipos envoltorio), 43, 123 equals (mtodo), 108, 110, 113, 141, 161, 175 error. Vase bug errores de compilacin, 35, 37, 56, 61 errores en tiempo de ejecucin, 123, 125, 167 escape. Vase barra invertida estado de un objeto, 52 eventos, 191 excepcin. Vase error, bug extends (palabra clave), 159, 161, 184, 189
F
fill (mtodo de la clase Arrays), 144 filosofa Java, 16, 32, 53 final (palabra clave), 133, 183, 185 float / Float (tipos), 43 for, 102, 118, 120, 125 for each. Vase for extendido for extendido (for each), 118, 126, 188 formacin. Vase arrays (tipo de datos) funcin. Vase mtodos tipo funcin
D
Date, 79 debugger, 30, 105 declaracin de mbito. Vase modificadores de acceso declaracin de campos. Vase declaracin de variables declaracin de constantes, 133 declaracin de variables, 46, 64, 67, 118, 123, 133 default (clusula en switch), 62 depurador. Vase debugger desbordamiento, 116 descarga de Java (download), 21 diagrama de clases, 70, 94, 117, 162, 164, 166, 170, 179, 184 diseo de clases, 161, 190 diseo de programas, 190 distribuciones Java, 17, 19 divide y vencers, 91 do while, 104 Para ms informacin: [email protected]
G
genrica. Vase clase genrica o parametrizada get (mtodo de la clase ArrayList), 115, 129 get (prefijo para mtodos), 51 getters. Vase mtodos consultores o de acceso Graphical User Interface (GUI), 145 GUI. Vase Graphical User Interface
H
HashMap, 78, 79, 115, 118, 190 HashSet, 79, 114, 190 hasNext (mtodo de Iterator), 121 herencia, 157 herencia mltiple, 183, 185, 189 herencia simple, 158, 164 historia (evolucin) de Java, 18 HTML, 148, 150
L
length (campo de un array), 126 length (mtodo de la clase String), 86, 89 libreras. Vase api de Java ligadura dinmica. Vase bsqueda dinmica de mtodos LinkedList, 79, 114, 124, 146, 147, 166, 186, 190 Linux, 13 List (inteface), 146, 166, 184, 186 lista enlazada. Vase LinkedList long / Long (tipos), 43
I
IDE. Vase entorno de desarrollo identidad entre objetos, 109, 113, 139 if (condicional), 60, 92, 96 igualdad entre objetos, 110, 113, 140, 141, Vase equals implements (palabra clave), 183, 188, 189 import, 79, 82, 84, 115, 135, 138, 141 incompatibilidad de tipos, 111, 148, 167 IndexOutBoundsException, 116 inicializacin, 46, 65, 97, 164 inspector de objetos, 52, 68 instalar Java, 20, 23 instanceof (palabra clave), 168, 181 instancias. Vase objetos int (tipo), 43 Integer (tipo), 43, 113, 127, 189 interface (como signatura), 55, 85, 145 interface Java, 114, 145, 147, 183, 186, 189 Interfaz Grfica de Usuario. Vase GUI intrprete Java, 23, 25, 28 interrupcin de bucles. Vase break iterator (mtodo), 120 Iterator (tipo para recorrer colecciones), 120
M
Macintosh, 13 main (mtodo iniciador), 98, 133, 153, 156 mquina virtual Java, 17, 23, 25, 31, 34, 77, 136, 170 Math (clase), 81, 130, 156 mtodo externo, 95 mtodo interno, 95, 108 mtodo main. Vase main (mtodo iniciador) mtodo principal. Vase main (mtodo iniciador) mtodos, 49, 53, 63, 87, 95, 173 mtodos abstractos, 177, 182, 183, 187, 189 mtodos consultores o de acceso, 51 mtodos de clase (estticos), 156 mtodos modificadores, 51 mtodos observadores. Vase mtodos consultores o de acceso mtodos polimrficos, 170 mtodos tipo funcin, 49, 54, 58, 64, 128, 150 mtodos tipo procedimiento, 50, 55 modificadores de acceso, 174 modularizacin, 91
J
J2SE, J2EE, J2ME, 17 java.lang, 79, 81 JAVA_HOME, 24 javadoc, 38, 148 JBuilder, 31 JCreator, 31 JDK, 13, 19, 20, 31, 77 jerarqua de herencia, 160 jerarqua de tipos, 165 JRE, 15, 23 JVM. Vase mquina virtual Java
N
NetBeans, 30, 38 new, 73, 82, 113, 122, 155, 177 next (mtodo de Iterator), 121 nombre completo de una clase, 79 not (operador de negacin !), 59 notacin de punto, 57 null, 65, 96, 122, 144 NullPointerException, 122 nmeros aleatorios, 130, 151
O
Object (clase), 158, 161, 166, 169, 174, 188 objetos, 39, 51, 68, 106, 114 objetos annimos, 124, 169
ocultamiento de la informacin, 54, 85 operadores aritmticos, 58 operadores lgicos, 59 or (operador de disyuncin ||), 59 orden natural, 189 ordenar, 19, 78, 141 ordinal, 62 orientacin a objetos, 13, 16, 28, 39, 54, 70, 87, 98, 106, 158
P
packages, 134, 136, 145 parametrizacin. Vase clase genrica o parametrizada parmetro actual, 52 parmetro formal, 52 parmetros, 50, 55, 65, 73, 87, 91, 96, 149, 157, 163 PATH, 25 polimorfismo, 147, 166, 170, 188 print, 101 println, 57 private, 45, 48, 54, 64, 174 procedimiento. Vase mtodos tipo procedimiento programa, 37, 91, 98, 106, 157, 170, 186 programa principal. Vase main (mtodo iniciador) protected, 45, 54, 174 prototipos, 55 pruebas, 30, 105, 106 pseudoaleatorio, 130 public, 45, 48, 54, 64, 136, 174 punto de interrupcin. Vase breakpoint
signatura, 55, 78, 85, 89, 145, 156, 169, 177 Singleton (patrn de diseo), 191 sistema de archivos, 56, 136 sistema operativo, 13, 19, 24, 26, 32, 145 size (mtodo de la clase ArrayList), 115 sobrecarga de constructores o mtodos, 68 sobrecarga de nombres, 64 sobreescritura, 169, 175, 178 Stack, 146 static, 133, 156, 183 String (clase), 44, 49, 62, 71, 77, 79, 84, 96, 110, 112, 121 StringIndexOutOfBoundException, 89 StringTokenizer, 79 subclase, 160, 163, 165, 169, 174, 178, 182, 189 substring (mtodo de la clase String), 87, 110 subtipo. Vase subclase super (palabra clave), 163, 173 superclase, 160, 161, 165, 169, 173, 177, 182, 189 supertipo. Vase superclase sustitucin, 165 Swing (biblioteca grfica), 18, 79, 145, 191 switch, 61 System (clase), 77 System.in, 101, 127 System.out, 57 System.out.print, 101 System.out.println, 57
T
tabulador (carcter de escape \t), 154 tags, 150 this (palabra clave), 91, 95 tiempo de ejecucin, 169 tipo dinmico, 169, 172, 178 tipo enumerado. Vase enumerados (tipo) tipo esttico, 169, 179 tipo requerido, 51, 128 tipos de datos Java, 42 tipos envoltorio. Vase envoltorio tipos primitivos, 42, 70, 96, 108, 111, 123, 128, 161 toString (mtodo), 153, 161, 170, 174, 182, 188 TreeSet, 79
R
Random (clase), 79, 130 read (mtodo de System.in), 127 recursin, 75 redefinicin de mtodos. Vase sobreescritura relacin de uso entre clases, 68 rellenar un array. Vase fill (mtodo de la clase Arrays) remove (mtodo de Iterator), 121 remove (mtodo de la clase ArrayList), 129 retorno de carro, 101 return, 49, Vase mtodos tipo funcin
S
salto de lnea, 101 Scanner (clase), 100 set (mtodo de la clase ArrayList), 115 set (prefijo para mtodos), 51 setters. Vase mtodos modificadores short / Short (tipos), 43 unboxing, 123 Unix, 27
V
valueOf (mtodo para conversin de tipos), 127
values (mtodo para enumerados), 154 variables, 42, 63, 132, 165 variables de clase, 133 variables de entorno, 24 variables de instancia. Vase atributos de instancia variables locales, 63, 96, 106 variables polimrficas, 166, Vase polimorfismo variables que referencian a objetos. Vase objetos vector. Vase array (tipo de datos) Vector (clase api Java), 190 versiones de Java, 17 visibilidad de clases, 134, 138 visibilidad de mtodos y campos. Vase modificadores de acceso void, 50
W
while, 103, Vase do ... while Windows, 13, 19, 20, 22, 24, 32