miércoles, 5 de octubre de 2011

ÍNDICE DE TEMAS

TEMAS DEL TUTORIAL
Tema 1
- Introducción a los objetos
Tema 2
- Todo es un objeto
Tema 3
- Operadores
Tema 4
- Control de ejecución
Tema 5
- Inicialización y limpieza
Tema 6
- Control de acceso
Tema 7
- Reutilización de clases
Tema 8
- Polimorfismo
Tema 9
- Interfaces

Otros enlaces interesantes dentro del blog:
- Ejercicios
- Compilación, ejecución y classpath
- Diferencias entre método equals() y operador ==
- Classpath y package en Linux y Windows
- Classpath y package en Netbeans
- Importación estática de miembros

Ejercicios Tema 8

Después de bastante tiempo sin actualizar el blog por diferentes motivos, acabo de colgar los 17 ejercicios del tema 8. Esta vez los he hecho con Eclipse. Como siempre digo, la solución a los ejercicios es personal, por tanto, para un mismo ejercicio puede haber otras soluciones diferentes. Si véis algún error o no estáis de acuerdo con alguna solución, por favor, no dudéis en decírmelo. Podéis ver los ejercicios en:

Ejercicios Tema 8

viernes, 1 de julio de 2011

POLIMORFISMO

TEMA 8
- Nuevas consideraciones sobre la generalización
   - Por qué olvidar el tipo de un objeto
- El secreto
   - Acoplamiento de las llamadas a métodos
   - Especificación del comportamiento correcto
   - Ampliabilidad
   - Error: "sustitución" de métodos private
   - Error: campos y métodos static
- Constructores y polimorfismo
   - Orden de las llamadas a los constructores
   - Herencia y limpieza
   - Comportamiento de los métodos polimórficos dentro de 
     los constructores   
- Tipos de retorno covariantes
- Diseño de sistemas con herencia
   - Sustitución y extensión
   - Especialización e información de tipos en tiempo de
     ejecución


"En ocasiones me he preguntado, Sr. Babbage, si introduce en la máquina datos erróneos, ¿podrá suministrar las respuestas correctas? Debo confesar que no soy capaz de comprender qué tipo de confusión de ideas puede hacer que alguien plantee semejante pregunta". Charles Babbage (1791-1871)

El polimorfismo, la abstracción de datos y la herencia son las tres características esenciales de un lenguaje de programación orientado a objetos.

miércoles, 22 de junio de 2011

EJERCICIOS TEMA 7

Por fin tenéis listos los ejercicios del tema 7, son 24, bueno alguno más porque he hecho dos versiones de alguno de ellos. Esta vez no he utilizado Netbeans sino que los he hecho con gedit, el editor de textos de Linux y los he compilado y ejecutado desde la consola. Espero que os sean de utilidad y si tenéis alguna duda o sugerencia, por favor no dudéis en hacerlo. Para ver los ejercicios pinchad en el siguiente enlace:

Ejercicios Tema 7

martes, 7 de junio de 2011

REUTILIZACIÓN DE CLASES

TEMA 7

- Sintaxis de la composición
- Sintaxis de la herencia
   - Inicialización de la clase base
- Delegación
- Combinación de la composición y de la herencia
   - Cómo garantizar una limpieza apropiada
   - Ocultación de nombres
- Cómo elegir entre la composición y la herencia
- protected
- Upcasting (generalización)
   - ¿Por qué "upcasting"?
   - Nueva comparación entre la composición y la herencia
- La palabra clave final
   - Datos final
   - Métodos final
   - Clases final
   - Una advertencia sobre final
- Inicialización y carga de clases
   - Inicialización con herencia


Una de las características más atractivas de Java es la posibilidad de reutilizar el código. Pero para ser verdaderamente revolucionario es necesario ser capaz de hacer mucho más que simplemente copiar el código y modificarlo.

sábado, 14 de mayo de 2011

EJERCICIOS TEMA 6

Aquí tenéis los ejercicios del Tema 6, Control de acceso. Ha sido bastante complicada la realización de los ejercicios, tanto por falta de tiempo, como por algunos problemas con Netbeans y la dificultad de alguno de ellos. Eso sí, vais a aprender mucho haciendo estos ejercicios, tratad de hacerlos sin mirar la solución porque aprenderéis cosas muy útiles.
Podéis descargarlos desde:

Ejercicios Tema 6

Si utilizáis el bloc de notas para realizar los ejercicios, tratáis de compilar los ejercicios descargados y os da un error raro de compilación, guardad el archivo cambiando la codificación de caracteres, es una opción que os sale en Archivo - Guardar como.
Por favor, si tenéis alguna sugerencia o no estáis de acuerdo con la resolución de alguno de los ejercicios no dudéis en comentarlo.
Un saludo.

miércoles, 4 de mayo de 2011

IMPORTACIÓN ESTÁTICA DE MIEMBROS

El ejercicio 3 dice:

Cree dos paquetes: debug y debugoff, que contengan una clase idéntica con un metodo debug(). La primera versión debe mostrar su argumento String en la consola, mientras que la segunda no debe hacer nada. Utilice una linea static import para importar la clase en un programa de prueba y demuestre el efecto de la compilacion condicional.

Como vemos, el ejercicio pide que se utilicen importaciones estáticas, vamos a explicar un poco qué es esto. En Java, tenemos una clase Math, con varias constantes y métodos estáticos. Por ejemplo, tenemos la constante PI:
   public static final double PI = 3.14159265358979323846;

La palabra final significa que este valor es constante y no varía. Al ser esta constante estática, para referirnos a ella desde cualquier otra clase sin necesidad de importar la clase Math, tendríamos que escribir:
   System.out.println("Numero PI: "+Math.PI);

Como vemos hay que utilizar el nombre de la clase para referirnos a la constante. Hay una forma de evitar esto, podemos importar la variable:
   import static java.lang.Math.PI;