// // // // // // //
Mostrando entradas con la etiqueta aprender. Mostrar todas las entradas
Mostrando entradas con la etiqueta aprender. Mostrar todas las entradas

domingo, 11 de enero de 2015

Interfaces funcionales, Clases anónimas y Lambdas

    Todo el mundo sabe que existen las interfaces pero… ¿Sabemos cuándo usarlas? Aquí mostraré uno de sus usos: Las Interfaces funcionales. También aprovecharé para hacer una pequeña introducción a las Lambdas.

jueves, 8 de enero de 2015

Construyendo tu programa IV: Persistencia I: Ficheros

    Como es normal, un programa de gestión que cuando lo cierras no guarda datos no es muy útil, así que toca hablar de la persistencia. Empezaremos por la persistencia en ficheros. Para empezar hay que hablar del concepto de Stream. Un Stream es un flujo de datos entre dos aplicaciones, en este caso el sistema de archivos. Hay varios Objetos Stream en java que representan, hoy hablaré solo del ObjectStream, que guarda objetos. Hay otros que se encargan de tipos primitivos etc.. pero eso lo veré en otra entrada.


viernes, 2 de enero de 2015

Métodos Estáticos

    Todos hemos leído la palabra static y hemos pensado que por que la voy a usar, si sin ponerla funciona. O la hemos puesto en todos lados por simple comodidad para programar sin objetos. Recordemos que los métodos estáticos son métodos que pertenecen a la clase, y con su nombre se pueden ejecutar, mientras que los no estáticos pertenecen a un objeto instanciado de esa clase. Y dicho esto voy a dar una sencilla regla:

  Si el método en el que estamos trabajando, no usa ningún campo de un objeto de la clase en la que está, debería ser static. Por ejemplo:

  Si tuviéramos este método:
public class Utilidades {
   
    public int calcularCuadrado(int i){
       
        return i*i;
    }
}
    Y, si quisiéramos usarlo, tendríamos que hacer esto:
public class Pruebas {
 
    public static void main(String[] args) {

        // Podríamos hacer esto (si lo vamos a usar más de una vez)
        Utilidades util = new Utilidades();
        System.out.println(util.calcularCuadrado(2));
     
        // O esto (si solo lo usamos aquí):      
        System.out.println(new Utilidades().calcularCuadrado(2));
    }
}
    Pero si lo declaramos como static, puesto que no usamos ningún campo del objeto:
public static int calcularCuadrado(int i){return i*i;}

public static void main(String[] args) {

        // Ahora nos da igual usarlo una o más veces, que así podremos hacerlo
        System.out.println(Utilidades.calcularCuadrado(2));      
}
    Puede haber más casos en los que se podría usar, de hecho, seguro que los hay, pero con esto tenemos de sobra para discernir rápidamente cuando un método debería ser estático y cuando no. Usar constantes no cuenta cómo usar campos de un objeto instanciado, asique seguiría siendo static en ese caso.

    Hasta aquí este breve post. Comentad más casos si se os ocurren.

domingo, 28 de diciembre de 2014

Construyendo tu programa III


    Hechos los cambios oportunos en la Gestora para adaptarnos al patrón singleton, hoy toca crear la ventana  e introducir y mostrar los datos. Lo primero es crear nuestro JFrame, que actuará de ventana principal y poner los controles, con nombre apropiados y siguiendo un estándar en ella. Recomiendo simplicidad y amplitud, sin sobrecarga, aunque en este caso, como no hay mucho que poner, y no es más que un ejemplo lo dejaré así:

jueves, 18 de diciembre de 2014

Juegos y Páginas para mejorar II


    Antes os hablaba de CodingBat una pequeña página para aprender, y hoy traigo un juego de Microsoft Code Hunt. Puedes jugarlo tanto en Java como en C#. Este juego además cuenta con una gran ayuda, cuando escribes la solución, te la puntúa en función de lo óptima que sea.

martes, 16 de diciembre de 2014

Juegos y Páginas para mejorar I


    Os presento CodingBat, una página para aprender y agilizar la mente con diversos problemas de programación en Java y Python, muy útil para mejorar diferentes aspectos que nos ayudarán para programar.