Transcript
ÍNDICE DEL LIBRO Y DEL EBOOK “APRENDER A PROGRAMAR EN JAVA DESDE CERO. CURSO PASO A PASO.”
Para más información:
[email protected]
INDICE 1.
INTRODUCCIÓN A JAVA 1.1. 1.2. 1.3. 1.4. 1.5. 1.6.
2.
INSTALACIÓN Y PRIMEROS PASOS CON JAVA 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 2.9. 2.10.
3.
Descargar (download) Java: obtener el instalador Instalación de Java en Windows (en nuestro pc) Configuración de Java en Windows: JAVA_HOME, PATH Máquina virtual JVM, compilador e intérprete Java. Bytecode. NetBeans, Eclipse, JCreator, JBuilder… ¿Cuál es el mejor entorno de desarrollo (IDE) Java? Descargar (download) BlueJ. Instalación en Windows. ¿Qué es un proyecto Java? Creación del primer proyecto. La ventana del editor de BlueJ Escribir código (una clase) en Java con un IDE. Primer programa. Comentarios en lenguaje Java y bloques en Java
OBJETOS Y CLASES EN JAVA. INSTANCIAS. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9. 3.10. 3.11. 3.12.
4.
¿Qué es Java? ¿Es Java un lenguaje ideal para aprender a programar? ¿Es Java software libre? ¿Cuáles son las versiones y distribuciones Java y cuál usar? ¿Qué sistema operativo debo usar para programar Java? ¿Qué son las actualizaciones de Java?
Visualizar clases y objetos con BlueJ e invocar métodos Tipos de datos (variables) en Java Ejemplos de uso de tipos de datos (variables). Declaración y asignación de contenido. ¿Qué es una clase? Atributos, constructor y métodos Métodos tipo procedimiento (…void) y tipo función (…return). Métodos con y sin parámetros Métodos consultores o de acceso (getters) y métodos modificadores (setters) Estado de un objeto Parámetros formales y parámetros actuales Comprender la filosofía de métodos y clases en Java Signatura de un método. Interfaz o interface. Guardar los proyectos Java. Copias de seguridad.
SINTAXIS BÁSICA Y CONDICIONALES EN JAVA 4.1 4.2 4.3 4.4 4.5 4.6
Imprimir por pantalla con System.out. Concatenar cadenas. Notación de punto. Operadores aritméticos en Java. Operadores lógicos principales en Java. Sentencia de asignación. Asignación compuesta. Condicional if else / if else if en Java Condicional de selección con switch en Java
Para más información:
[email protected]
5.
ORGANIZAR EL CÓDIGO EN JAVA 5.1 5.2 5.3 5.4 5.5 5.6
6.
Variables locales a un método o constructor. Sobrecarga de nombres. Cómo crear constructores en Java. Ejemplos. Clases con dos o más constructores. Sobrecarga de constructores o métodos. Clases que utilizan objetos preexistentes: relación de uso entre clases. Diagrama de clases. Paso de objetos como parámetros a un método o constructor La sentencia new como invocación de un constructor.
EL API DE JAVA. BIBLIOTECAS DE CLASES. 6.1 Otra definición de clase: un paquete de código. Objetos del mundo real y objetos abstractos. 6.2 ¿Qué es y para qué sirve el API de Java? 6.3 Organización y forma de nombrar las librerías 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 método. El método substring de la clase String. 6.7 Usar métodos para evitar errores. Ejemplo método length de la clase String
7.
CREAR UN PROGRAMA CON JAVA 7.1. Concepción de programas mediante abstracción y modularización 7.2 Un ejemplo de código Java muy elemental. Crear clases con campos, constructor y métodos. 7.3 Definición de método interno y método externo en Java 7.4 La palabra clave this. Contenido null por defecto de un objeto. 7.5 Clase con el método main: clase principal, iniciadora o “programa” principal. 7.6 Sintaxis y código ejemplo de uso del método main. 7.7 Pedir datos por consola (teclado) en java. Escape con barra invertida backslash. Print y salto de línea con \n.
8.
ESTRUCTURAS DE REPETICIÓN O BUCLES, COLECCIONES DE OBJETOS Y RECORRIDOS 8.1 Concepto general de bucle 8.2 Bucle con instrucción for. Operador ++ y – –. Sentencia break 8.3 Bucle con instrucción while. Ejemplo de uso de break. 8.4 Bucle con instrucción do … while. 8.5 El debugger de BlueJ. Detener un programa en ejecución. 8.6 Pensar en objetos. Pensar una entrada de teclado como objeto. 8.7 El método equals. Diferencia entre igualdad e identidad entre objetos. 8.8 Asignación de igualdad con tipos primitivos y con objetos. 8.9 Repaso y ejemplos sobre igualdad, identidad y método equals. 8.10 Colecciones de objetos de tamaño flexible. Contenedores de objetos. 8.11 La clase ArrayList del API de Java. 8.12 Concepto de clase genérica (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.
Para más información:
[email protected]
8.15 8.16 8.17 8.18 8.19 8.20 8.21 8.22
9.
Resumen de tipos de bucles (ciclos) en Java. Objetos con referencia null y excepciones tipo java.lang.NullPointerException. Autoboxing y unboxing. Conversión automática de tipos envoltorio a primitivos y viceversa. Objetos anónimos. Colecciones de tamaño fijo: arrays, arreglos o formaciones. Campo length para saber el número de elementos de un array Uso de ciclos for each con arrays Resumen de colecciones
AVANZAR EN EL USO Y CONOCIMIENTO DE JAVA 9.1 Conversión de tipos en java 9.2 Método valueof para conversión de tipos 9.3 Ejemplo de conversión de tipos. Tipo obtenido frente a tipo requerido. Métodos get y remove de ArrayList 9.4 Generar números aleatorios en Java. Clase Random. 9.5 Variables de clase o estáticas y constantes. Palabras clave static y final. 9.6 Organizar un proyecto Java en paquetes (packages). Cláusulas package e import 9.7 Formas de nombrar packages, jerarquización 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. Métodos equals y copyof. 9.10 Rellenar un array con un valor u objeto. Método fill de la clase Arrays. 9.11 Interfaz o interface en Java. Ampliación del concepto. 9.12 Polimorfismo en Java. Primera aproximación. 9.13 Transformar un array en una lista con el método aslist de la clase Arrays. Constructores que usan colecciones. 9.14 Documentar un proyecto con javadoc. Comentarios, símbolos, tags. 9.15 Tipos enumerados (enum) en Java. 9.16 Método values. Enumerados clases con campos y constructores. 9.17 Métodos de clase o static frente a métodos de instancia. Comprender el método main.
10.
HERENCIA EN JAVA 10.1 ¿Qué es la herencia en programación orientada a objetos? 10.2 Jerarquías de herencia. Organización 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 Jerarquía de tipos. Subtipos. Polimorfismo y variables polimórficas. 10.6 Conversión de tipos (enmascaramiento). Hacer casting y ClassCastExceptions. 166 10.7 Determinación del tipo de variables con instanceof. 10.8 Tipo estático y tipo dinámico de variables. Sobreescritura (redefinición) de métodos. Métodos polimórficos. 10.9 Ejercicio ejemplo de código con herencia, polimorfismo de variables y métodos, y sobreescritura de métodos. 10.10 Uso de la palabra clave super para llamar a métodos. 10.11 Modificadores de acceso public, private y protected. 10.12 Sobreescribir métodos de la clase Object: método toString().
Para más información:
[email protected]
10.13 10.14 10.15 10.16 10.17 10.18 10.19 10.20
11.
Sobreescribir métodos de la clase Object: método equals. Clases y métodos abstractos. Clases abstractas en el API de Java Herencia múltiple. 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.
PROGRESAR COMO PROGRAMADORES JAVA: SWING, GESTIÓN DE ERRORES Y MÁS ALLÁ. 11.1
12.
¿Qué hemos aprendido y qué no hemos aprendido con este curso?
INDICE DE TÉRMINOS
A abstracción, 15, 39, 48, 75, 85, 87, 91, 158, 161, 182 abstract (palabra clave), 177, 183
acoplamiento, 190
banco de objetos (object bench), 41, 89 barra invertida, 101 bibliotecas. Véase api de Java bloque, 39 BlueJ, 31, 32, 35, 38, 55, 70, 88, 105, 156 boolean / Boolean (tipos), 43
actualizaciones Java, 19 add (método de la clase ArrayList), 115 aleatorio. Véase números aleatorios algoritmia, 13 and (operador de conjunción &&), 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
botones, 79 break, 61, 103, 119 breakpoint, 105 bucles, 102 bug (error), 105 búsqueda dinámica de métodos, 171 byte / Byte (tipos), 43 bytecode, 26, 33
Arrays (clase del api Java), 141, 144, 147, 156
C
arrays (tipo de datos), 43, 124, 126, 139, 141, 144 arreglo. Véase arrays (tipo de datos) asignación, 45, 59, 61, 96, 111, 125, 165
Calendar, 79
asignación compuesta, 59
campos. Véase atributos de instancia
asList (método de la clase Arrays), 147
capacidad de una colección, 115
atributos, 133
case (palabra clave para switch), 61
atributos de clase (estáticos), 133
casting, 167
atributos de instancia, 39, 46, 52, 65, 68, 82, 84, 106
char / Character (tipos), 43
atributos de objeto. Véase atributos de instancia
clase, 39, 46, 67, 75, 91, 160
autoboxing, 123
clase enumerada. Véase enumerados (tipo)
AutoLayout, 37
clase genérica o parametrizada, 118
awt (biblioteca api java), 79, 145, 191
clases abstractas, 177, 182, 184, 189 clases internas, 190
B backslash. Véase barra invertida
Para más información:
[email protected]
clases sin campos o atributos, 74 ClassCastException, 167 clone (método), 113 codepad, 89
código fuente, 17, 23, 26, 33, 36, 78, 85, 170 código máquina, 26, 30, Véase bytecode
documentar proyectos y código Java, 36, 79, 148, Véase javadoc double / Double (tipos), 43
cohesión, 190 colas, 114 colecciones de objetos, 114, 120, 124, 126, 147
E
Collection (interface), 148 Collections (clase), 190
Eclipse, 30, 38, 134
comentarios en código Java, 38, 93, 149
ejecutar línea a línea, 106
Comparable (interface), 188
else, 60
comparar arrays, 141
else if, 60, 69
comparar objetos, 110, 175, Véase equals
else vacío, 60, 116
compareTo (método), 189
encapsulamiento, 173, 174
compilación, 25, 28, 35, 170, Véase compilador
enmascaramiento de tipos. Véase casting
compilador, 17, 23, 25, 28, 31, 38, 77, 82, 169
enteros. Véase tipos de datos Java
concat (método de la clase String), 86, 175, 179
entorno de desarrollo, 30, 37, 56
concatenación de cadenas de texto (Strings), 57, Véase
entrada de teclado, 100, 106
concat (método de la clase String)
enum. Véase enumerados (tipo)
ConcurrentModificationException, 120
enumerados (tipo), 62, 152
condicionales, 60, 61
envoltorio (tipos envoltorio), 43, 123
configuración de Java en Windows, 24
equals (método), 108, 110, 113, 141, 161, 175
conjunto, 114, 123
error. Véase bug
constantes, 132, 152, 183, 187
errores de compilación, 35, 37, 56, 61
constructor, 46, 51, 63, 65, 73, 75, 79, 82, 85, 91, 108, 113
errores en tiempo de ejecución, 123, 125, 167
constructores con colecciones como parámetro, 148
escape. Véase barra invertida
constructores con herencia, 163
estado de un objeto, 52
constructores de subclases. Véase constructores con
eventos, 191
herencia
excepción. Véase error, bug
constructores múltiples o sobrecargados, 67
extends (palabra clave), 159, 161, 184, 189
contains (método de la clase String), 86, 121 conversión de tipos, 127, 128, 166, Véase casting
F
copiar arrays, 139 copiar objetos, 113
fill (método de la clase Arrays), 144
copias de seguridad, 55 cuerpo, 47, 157, 169, 178, 183
filosofía Java, 16, 32, 53 final (palabra clave), 133, 183, 185 float / Float (tipos), 43
D
for, 102, 118, 120, 125 for each. Véase for extendido
Date, 79
for extendido (for each), 118, 126, 188
debugger, 30, 105
formación. Véase arrays (tipo de datos)
declaración de ámbito. Véase modificadores de acceso
función. Véase métodos tipo función
declaración de campos. Véase declaración de variables declaración de constantes, 133 declaración de variables, 46, 64, 67, 118, 123, 133 default (cláusula en switch), 62 depurador. Véase debugger desbordamiento, 116 descarga de Java (download), 21 diagrama de clases, 70, 94, 117, 162, 164, 166, 170, 179, 184 diseño de clases, 161, 190 diseño de programas, 190 distribuciones Java, 17, 19 divide y vencerás, 91 do … while, 104 Para más información:
[email protected]
G genérica. Véase clase genérica o parametrizada get (método de la clase ArrayList), 115, 129 get (prefijo para métodos), 51 getters. Véase métodos consultores o de acceso Graphical User Interface (GUI), 145 GUI. Véase Graphical User Interface
H
L
HashMap, 78, 79, 115, 118, 190
length (campo de un array), 126
HashSet, 79, 114, 190
length (método de la clase String), 86, 89
hasNext (método de Iterator), 121
librerías. Véase api de Java
herencia, 157
ligadura dinámica. Véase búsqueda dinámica de métodos
herencia múltiple, 183, 185, 189
LinkedList, 79, 114, 124, 146, 147, 166, 186, 190
herencia simple, 158, 164
Linux, 13
historia (evolución) de Java, 18
List (inteface), 146, 166, 184, 186
HTML, 148, 150
lista enlazada. Véase LinkedList long / Long (tipos), 43
I M IDE. Véase entorno de desarrollo identidad entre objetos, 109, 113, 139
Macintosh, 13
if (condicional), 60, 92, 96
main (método iniciador), 98, 133, 153, 156
igualdad entre objetos, 110, 113, 140, 141, Véase equals
máquina virtual Java, 17, 23, 25, 31, 34, 77, 136, 170
implements (palabra clave), 183, 188, 189
Math (clase), 81, 130, 156
import, 79, 82, 84, 115, 135, 138, 141
método externo, 95
incompatibilidad de tipos, 111, 148, 167
método interno, 95, 108
IndexOutBoundsException, 116
método main. Véase main (método iniciador)
inicialización, 46, 65, 97, 164
método principal. Véase main (método iniciador)
inspector de objetos, 52, 68
métodos, 49, 53, 63, 87, 95, 173
instalar Java, 20, 23
métodos abstractos, 177, 182, 183, 187, 189
instanceof (palabra clave), 168, 181
métodos consultores o de acceso, 51
instancias. Véase objetos
métodos de clase (estáticos), 156
int (tipo), 43
métodos modificadores, 51
Integer (tipo), 43, 113, 127, 189
métodos observadores. Véase métodos consultores o de
interface (como signatura), 55, 85, 145
acceso
interface Java, 114, 145, 147, 183, 186, 189
métodos polimórficos, 170
Interfaz Gráfica de Usuario. Véase GUI
métodos tipo función, 49, 54, 58, 64, 128, 150
intérprete Java, 23, 25, 28
métodos tipo procedimiento, 50, 55
interrupción de bucles. Véase break
modificadores de acceso, 174
iterator (método), 120
modularización, 91
Iterator (tipo para recorrer colecciones), 120
N J NetBeans, 30, 38 J2SE, J2EE, J2ME, 17
new, 73, 82, 113, 122, 155, 177
java.lang, 79, 81
next (método de Iterator), 121
JAVA_HOME, 24
nombre completo de una clase, 79
javadoc, 38, 148
not (operador de negación !), 59
JBuilder, 31
notación de punto, 57
JCreator, 31
null, 65, 96, 122, 144
JDK, 13, 19, 20, 31, 77
NullPointerException, 122
jerarquía de herencia, 160
números aleatorios, 130, 151
jerarquía de tipos, 165 JRE, 15, 23
O
JVM. Véase máquina virtual Java
Object (clase), 158, 161, 166, 169, 174, 188 objetos, 39, 51, 68, 106, 114 objetos anónimos, 124, 169 Para más información:
[email protected]
ocultamiento de la información, 54, 85
signatura, 55, 78, 85, 89, 145, 156, 169, 177
operadores aritméticos, 58
Singleton (patrón de diseño), 191
operadores lógicos, 59
sistema de archivos, 56, 136
or (operador de disyunción ||), 59
sistema operativo, 13, 19, 24, 26, 32, 145
orden natural, 189
size (método de la clase ArrayList), 115
ordenar, 19, 78, 141
sobrecarga de constructores o métodos, 68
ordinal, 62
sobrecarga de nombres, 64
orientación a objetos, 13, 16, 28, 39, 54, 70, 87, 98, 106, 158
sobreescritura, 169, 175, 178 Stack, 146
P
static, 133, 156, 183 String (clase), 44, 49, 62, 71, 77, 79, 84, 96, 110, 112, 121
packages, 134, 136, 145
StringIndexOutOfBoundException, 89
parametrización. Véase clase genérica o parametrizada
StringTokenizer, 79
parámetro actual, 52
subclase, 160, 163, 165, 169, 174, 178, 182, 189
parámetro formal, 52
substring (método de la clase String), 87, 110
parámetros, 50, 55, 65, 73, 87, 91, 96, 149, 157, 163
subtipo. Véase subclase
PATH, 25
super (palabra clave), 163, 173
polimorfismo, 147, 166, 170, 188
superclase, 160, 161, 165, 169, 173, 177, 182, 189
print, 101
supertipo. Véase superclase
println, 57
sustitución, 165
private, 45, 48, 54, 64, 174
Swing (biblioteca gráfica), 18, 79, 145, 191
procedimiento. Véase métodos tipo procedimiento
switch, 61
programa, 37, 91, 98, 106, 157, 170, 186
System (clase), 77
programa principal. Véase main (método iniciador)
System.in, 101, 127
protected, 45, 54, 174
System.out, 57
prototipos, 55
System.out.print, 101
pruebas, 30, 105, 106
System.out.println, 57
pseudoaleatorio, 130 public, 45, 48, 54, 64, 136, 174
T
punto de interrupción. Véase breakpoint tabulador (carácter de escape \t), 154
R
tags, 150 this (palabra clave), 91, 95
Random (clase), 79, 130
tiempo de ejecución, 169
read (método de System.in), 127
tipo dinámico, 169, 172, 178
recursión, 75
tipo enumerado. Véase enumerados (tipo)
redefinición de métodos. Véase sobreescritura
tipo estático, 169, 179
relación de uso entre clases, 68
tipo requerido, 51, 128
rellenar un array. Véase fill (método de la clase Arrays)
tipos de datos Java, 42
remove (método de Iterator), 121
tipos envoltorio. Véase envoltorio
remove (método de la clase ArrayList), 129
tipos primitivos, 42, 70, 96, 108, 111, 123, 128, 161
retorno de carro, 101
toString (método), 153, 161, 170, 174, 182, 188
return, 49, Véase métodos tipo función
TreeSet, 79
U
S salto de línea, 101
unboxing, 123
Scanner (clase), 100
Unix, 27
set (método de la clase ArrayList), 115 set (prefijo para métodos), 51
V
setters. Véase métodos modificadores short / Short (tipos), 43
Para más información:
[email protected]
valueOf (método para conversión de tipos), 127
values (método para enumerados), 154 variables, 42, 63, 132, 165 variables de clase, 133 variables de entorno, 24 variables de instancia. Véase atributos de instancia variables locales, 63, 96, 106 variables polimórficas, 166, Véase polimorfismo variables que referencian a objetos. Véase objetos vector. Véase array (tipo de datos) Vector (clase api Java), 190 versiones de Java, 17 visibilidad de clases, 134, 138 visibilidad de métodos y campos. Véase modificadores de acceso void, 50
W while, 103, Véase do ... while Windows, 13, 19, 20, 22, 24, 32
Para más información:
[email protected]