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;

jueves, 28 de abril de 2011

CLASSPATH Y PACKAGE EN NETBEANS

Vamos a ver cómo he hecho el ejercicio 1 del Tema 6 con Netbeans. El enunciado del ejercicio dice:

Crea una clase dentro de un paquete. Crea una instancia de esa clase fuera de dicho paquete.
En primer lugar vamos a crear un proyecto nuevo, como estamos en el Tema 6 lo voy a llamar Tema_6:



CLASSPATH Y PACKAGE EN LINUX Y WINDOWS

Para explicaros de una forma sencilla la variable CLASSPATH y la creación de paquetes, vamos a hacer el ejercicio 1 de este tema con el jdk a través de la consola o terminal. El ejercicio 1 dice:

Cree una clase dentro de un paquete. Cree una instancia de esta clase fuera de dicho paquete.

Voy a crear dos clases, la clase Ejer_1 es la que se va a ejecutar y, por tanto, va a contener el método main. Esta clase la voy a crear en la carpeta:

/home/arween/Documentos/Java/PiensaEnJava/EjerciciosPiensaEnJava4/Tema_6
El código de esta clase es:
// Clase Ejer_1.java
import tema6.*;

public class Ejer_1{

   public static void main(String args[]){       
      Lib1 lib1=new Lib1();
   }
   
}


martes, 26 de abril de 2011

CONTROL DE ACCESO

TEMA 6
- package: la unidad de biblioteca
- Organización del código
- Creación de nombres de paquetes unívocos
- Una biblioteca personalizada de herramientas
- Utilización de importaciones para modificar el comportamiento
- Un consejo sobre los nombres de paquete
- Especificadores de acceso Java
- Acceso de paquete
- public: acceso de interfaz
- private: ¡no lo toque!
- protected: acceso de herencia
- Interfaz e implementación
- Acceso de clase

El control de acceso (u ocultación de la implementación) trata acerca de "que no salgan las cosas a la primera".

El trabajo de rediseño consiste en reescribir código que ya funciona para hacerlo más legible, comprensible y mantenible.
En diseño orientado a objetos, hay que separar las cosas que cambian de las cosas que permanecen.

martes, 12 de abril de 2011

EJERCICIOS TEMA 5

Hola a todos:
En primer lugar dar las gracias a la gente que sigue el blog, eso me da muchas fuerzas para seguir adelante.
Están ya disponibles los ejercicios del tema 5, Inicialización y limpieza. Es un tema bastante largo e interesante. Si tenéis cualquier duda o sugerencia por favor no dudéis en hacerla. Los ejercicios los he compilado con Netbeans y con el JDK desde Linux. Si los compiláis desde la consola o terminal quizá os salgan advertencias porque no he quitado acentos ni eñes, si os molesta sólo tenéis que quitarlos de los comentarios.
Los ejercicios los podéis descargar desde:

Ejercicios Tema 5.


Un saludo y gracias.

miércoles, 6 de abril de 2011

INICIALIZACIÓN Y LIMPIEZA

TEMA 5
- Inicialización garantizada con el constructor
- Sobrecarga de métodos
   - Cómo se distingue entre métodos sobrecargados
   - Sobrecarga con primitivas
   - Sobrecarga de los valores de retorno
- Constructores predeterminados
- La palabra clave this
   - Invocación de constructores desde otros conductores
   - El significado de static
- Limpieza: finalización y depuración de memoria
   - ¿Para qué se utiliza finalize()?
   - Es necesario efectuar las tareas de limpieza
   - La condición de terminación
   - Cómo funciona un depurador de memoria
- Inicialización de miembros
   - Especificación de la inicialización
- Inicialización mediante constructores
   - Orden de inicialización
   - Inicialización de datos estáticos
   - Inicialización static explícita
   - Inicialización de instancias no estáticas
- Inicialización de matrices
   - Listas variables de argumentos
- Tipos enumerados


A medida que se abre paso la revolución informática, la programación "no segura" se ha convertido en uno de los mayores culpables del alto coste que tiene el desarrollo de programas.

Dos cuestiones relacionadas con la seguridad son la inicialización y la limpieza. En Java los objetos tienen que ser inicializados antes de ser utilizados, para ello se utiliza un constructor, que es un método especial que se invoca automáticamente cada vez que se crea un objeto. Además Java dispone de un depurador de memoria que libera los recursos de memoria cuando ya no se utilicen. En este tema se van a ver ambas cuestiones.