programación

155 entradas

Java Medio 4: Miembros tipo Static

Algo raro pasa con static. Surge de la necesidad de compartir datos o código entre todas los objetos de una misma clase. Por ello, los atributos declarados como static dentro de una clase, existen incluso sin tener ningún objeto de la clase, y se puede acceder a ellos con sólo haber cargado la clase en la JVM. Es decir, por ejemplo, si tenemos una clase como la siguiente: package javaMedio;public class Persona { public String nombre = new String(); public static String nombreDeLaClase = new String(“Persona”); private static String version = new String(“1.0.0”);  public void escribir() { System.out.println(“Ésta persona se llama ” + nombre); System.out.println(“…” + nombreDeLaClase); System.out.println(“…” + version); }} Y en otro fichero tenemos algo tal que así: package javaMedio;public class JavaMedio4Static { public static void main(String[] args) { System.out.println(Persona.nombreDeLaClase); // no podemos hacer ésto // System.out.println(Persona.version); Persona p1 = new Persona(); Persona p2 = new Persona(); p1.nombre = “Pepito”; p2.nombre = “Juanito”; // no debemos, pero podemos hacer ésto p1.nombreDeLaClase = “Clase de nombre Persona”; // deberíamos hacer así Persona.nombreDeLaClase = “Clase de nombre Persona”; // para evitar confusiones // porque todas las Personas // van a tener la misma variable // nombreDeLaClase p1.escribir(); p2.escribir(); }} Observa […]

Java Medio 3: Clases abstractas

Continuando con la herencia y polimorfismo de las clases vamos a ver qué son los métodos y clases abstractas. Cuando una clase va a ser la base para otras, pero no van a codificarse las funciones que tiene, sino que se van a hacer en las clases que la extienden, entonces declaramos la clase como abstract. Vamos a ver con un ejemplo cómo se usa, es muy sencillo: package javaMedio;public class JavaMedio3Abstract { public static void main(String[] args) { claseBase objeto1, objeto2; // ésto no lo podemos hacer porque es abstract // objeto1 = new claseBase(); objeto1 = new claseA(); objeto2 = new claseB(); objeto1.cadena = “cadena del objeto1”; objeto2.cadena = “cadena del objeto2”; objeto1.escribir(); objeto2.escribir(); }}abstract class claseBase { public byte x, y; public String cadena; public abstract void escribir();}class claseA extends claseBase { public void escribir() { System.out.println(“Esto es un objeto de la claseA: ” + cadena); }}class claseB extends claseBase { public void escribir() { System.out.println(“Esto es un objeto de la claseB: ” + cadena); }} Como vemos, no podemos reservar memoria para un objeto de tipo claseBase, porque éste tipo de objeto es base de otros, es decir, que al ser abstract sólo se puede usar […]

Java Medio 2: Extendiendo clases a partir de otras clases

Sábado sabadete, aquí va otro tutorialete… xD para los que esten siguiendo estos minitutoriales para aprender a programar en Java, vamos a continuar con los conocimientos indispensables antes de empezar a hacer programas más o menos grandes. O si ya te has enfrascado con alguno y necesitas saber ésto de los extends espero que aclare las cosas. Ésta vez voy a explicar cómo reutilizar código, para no tener que hacer una y otra vez lo mismo o para mantener el código bien organizado utilizando la herencia y polimorfismo. Vamos a ver cómo crear clases reutilizando el código de clases ya creadas, de manera que podremos ampliar su uso añadiendo nuevas funciones o miembros de la clase, o podremos modificar los existentes. Todo ésto se hace con la palabra reservada extends. A saber, al utilizar extends, la clase que extiende a otra hereda todas las variables y funciones de la otra. A ésto se le llama herencia. Y por otro lado, en la clase que ha heredado, por ejemplo una función, podemos volver a declararla en la clase que extiende, de manera que haga otra cosa. A ésto otro se le llama polimorfismo. Ésto es todo lo que hay que saber, […]

Java Medio 1: Clases y paquetes, organización en ficheros

Vamos a ver cómo organizar los programas Java, en clases u objetos como prefiramos llamarlos. Cómo dividir los códigos fuentes en distintos ficheros o cómo plantearse la creación de un programa bien grande estructurándolo para poder hacerlo poco a poco, repartiendo el trabajo o haciéndolo en partes más simples. Todo son clases en Java, y estas clases se organizan packetes, llamados packages en inglés. Podemos crear clases a partir de otras clases utilizando el extends. Y cada clase la podemos separar individualmente en cada fichero. Por otro lado los paquetes de clases los podemos importar para usarlos en una clase mediante la instrucción import. Resumiendo ésto es todo, a continuación lo veremos explicado.Cada fichero se debe nombrar con el nombre de la clase principal. Un ejemplo que nos va a servir para comprender varios conceptos es el siguiente:package javaMedio;import java.util.Date;public class JavaMedio1ClasesPaquetes { public static void main(String[] args) { Persona p = new Persona(); p.nombre = “Pepito”; p.escribir(); }}class Persona { String nombre = new String(); Date fechaCreacion = new Date(); public void escribir() { String aux = new String(); aux = “Objeto de tipo Persona con nombre: ” + nombre + “n”  + “Creado en fecha: ” + fechaCreacion; […]

Java Básico 6: Matrices y vectores

Ya estamos a domingo de nuevo, parece que va siendo costumbre los domingos de nuevo escribir un post. Vamos a empezar con un tipo de variables que vamos a usar para almacenar muchos datos de igual naturaleza, es decir, los llamados vectores y matrices. Algunos llaman a los vectores matrices también porque son matrices de una sola fila. Imaginemos pues que queremos guardar 3 elementos de tipo entero. Para ello usaremos lo siguiente: package javaBasico;public class JavaBasico6Matrix { public static void main(String[] args) { // declaración de la variable ‘vector’ int vector[]; // se reserva memoria para guardar los  // valores, es decir, guardamos 3 posiciones // de memoria de tipo entero vector = new int[3]; // guardamos en la posición 0 el número 2 vector[0] = 2; // guardamos… vector[1] = 3; // guardamos… vector[2] = 4; // escribimos en el out (pantalla) el vector System.out.println(vector[0] + “, ” + vector[1] + “, ” + vector[2]); } } En Java siempre los vectores y matrices, también las clases que hagamos primero hay que declararlas y luego se les reserva memoria para poder usarlas. Es decir, la primera parte es decirle al programa que vamos a usar una variable, que […]

Java Básico 5: Clases comunes

¡Hola de nuevo! Estoy cogiendo carrerilla con ésto de los tutoriales, me siento fresco, será el buen tiempo, que es fin de semana, los pájaros cantan, el indice Ibex sube, la prima de riesgo baja aquí en España. La cosa no está para echar cohetes pero bueno, si necesitas hacer cosas en Java, que ya están hechas, sólo tendrás que usarlas y entonces sí que vas a hechar cohetes. Vamos a ver unas clases de Java que nos facilitan la vida mucho, sobre todo si estas siguiendo el tutorial desde cero. Para empezar, si vamos a utilizar cadenas de caracteres, Java nos proporciona la clase String. Podemos declarar variables de tipo String de la forma: String cadena;cadena = “Aquí va la cadena de caracteres que queramos”;cadena = cadena + cadena;System.out.println(cadena); Ésto anterior nos va a imprimir: Aquí va la cadena de caracteres que queramosAquí va la cadena de caracteres que queramos Lo que hemos visto aquí arriba es que la variable cadena le hemos dicho que almacene “Aquí va la cadena de caracteres que queramos”, luego al hacer la suma lo que le hemos dicho que haga es que ahora cadena vale cadena + cadena, es decir, pon dos veces […]

Java Básico 4: Funciones

Hola! hoy es domingo, tengo un rato libre, y he pensado avanzar un poco este curso de programación rápido con las funciones. Vamos a ver en líneas generales cómo dividir el código de nuestro programa para que sea más fácil luego leerlo, para desarrollarlo en partes o poco a poco, en fin, es de buena costumbre usar funciones cuando hacemos tareas que usan mas de unas 20 líneas de código. Es decir, comenzamos escribiendo código en el ‘main’, y llegado el momento de que nuestro ‘main’ ocupa muchas líneas entonces se convierte en un mamotreto de código que es bien complicado de leer. Para evitar ésto lo dividimos con funciones como por ejemplo puede ser el código siguiente: public class JavaBasico4Funciones { public static void main(String[] args) { PrincipioDelPrograma(); HacerCosa1(); HacerCosa2(); HacerCosa3(); FinalDelPrograma(); } static void PrincipioDelPrograma(){ } static void HacerCosa1(){ } static void HacerCosa2(){ } static void HacerCosa3(){ } static void FinalDelPrograma(){ } }De ésta manera queda más claro todo y podemos centrarnos en hacer los subprogramas declarados en las funciones. Éste es un ejemplo claro de la técnica de programación ‘Divide y vencerás’.También puede ocurrir que estamos escribiendo un programa y llegamos a un momento en que nos […]

Java Básico 3: Bucles y estructuras de control

Sábado por la mañana, hace buena temperatura ahora en otoño, ni frio ni calor en Alicante. Así da gusto. Pues hoy voy a darle vueltas a los bucles y a controlar qué se ejecuta en un pequeño programa en Java. Vamos a ver los bucles y las estructuras principales que se usan. Éstos son los if, else, switch, while, do while, for, break, continue y el try-catch para control de errores de ejecución. Vamos al grano, si usamos el siguiente código: // Paquete donde se organiza ésta clase de Javapackage javaBasico;// Declaración de la clase con su nombrepublic class JavaBasico3BuclesEstructuras { // Entrada principal al programa, el main para los amigos public static void main(String[] args) { // Aquí va el código que empieza nada más  // arrancar el programa System.out.println(“¡Hola Mundo!”); // declaro la variable a y le doy valor byte a = 1;  // el if sirve para comprobar si ocurre // una cosa… if (a == 2) { // si a vale 2 entonces hace ésto System.out.println(“a sí vale 2”); } else { // si a no vale 2 muestra éste mensaje System.out.println(“a no vale 2”); } // switch sirve para hacer una lista de  // casos posibles switch (a) { […]

Java Básico 2: Tipos de datos

En éste post vamos a ver los tipos de datos primitivos, los básicos, sobre los que se construirán datos u objetos más complejos o complicados, valga la redundancia. Los más usuales son: byte, que permite almacenar número de 8 bits, negativos y positivos. Es decir desde el -11111111 al +11111111, o que es lo mismo que desde -128 al +127. short, es igual que el byte pero en vez de 8 bits con signo tenemos 16 bits. Aumentan considerablemente la contidad de números posibles que van desde el -32768 al +32767. int, es igual pero ahora tenemos 32 bits. long, ahora tenemos 64 bits. char, guarda valores del 0 al 65535. Los primeros valores corresponden a los caracteres ASCII, que son los caracteres normales que usamos al escribir, es decir, las letras. Por ejemplo el 97 es la ‘a’ float, se utiliza para números decimales. Se utilizan 32 bits, con una precisión aproximada de 7 dígitos. double, es un número decimal. Internamente se usan 64 bits, con lo que se tiene una mayor precisión, aproximadamente de unos 16 dígitos. boolean, se usa para almacenar un valor booleano, es decir, verdadero o falso. Éstos son los mínimos sobre los que se […]

Java Básico 1: ¡Hola Mundo!

Aquí dejo la estructura básico de un programa mínimo en Java, el clásico ‘Hola Mundo’. Suponemos que ya estamos familiarizados con nuestro IDE de desarrollo favorito, así que iremos al grano. Creamos una nueva clase, yo la he llamado JavaBasico1HolaMundo, está creada dentro del paquete de código javaBasico, con lo que el fichero del programa se llama JavaBasico1HolaMundo.java y su contenido es el siguiente: // Paquete donde se organiza ésta clase de Java package javaBasico;   // Declaración de la clase con su nombre public class JavaBasico1HolaMundo { // Entrada principal al programa, el main para los amigos public static void main(String[] args) { // Aquí va el código que empieza nada más                  // arrancar el programa System.out.println(“¡Hola Mundo!”); } } Hay que saber que en Java todo son clases, se llaman clases. Es una forma de organizar el código utilizando la programación orientada a objetos (POO). Éstos conceptos trataré de estudiarmelos bien, repasarlos, y a ver si podemos verlos en un post más avanzado. De momento no hace falta saber más que todo son clases en Java. Así que verás la palabra ‘class’ por todos lados… Ésta es una aplicación de […]

Java Básico 0: Aterrizando

Daremos comienzo con éste post a una serie sobre programación para todos aquellos que siempre hemos querido aprender Java pero nos ha costado bastante. No será por la falta de información disponible sino todo lo contrario. Las posibilidades de Java para programar ordenadores, dispositivos móviles, tablets, coches, lavadoras y un largo etcétera… hacen, o por lo menos a mi, me han hecho aprender Java bastante engorroso. No recomiendo empezar con Java como primer lenguaje de programación, pero si lo prefieres tampoco es una mala opción porque tiene mucha salida, es muy completo, tiene de todo y sirve para todo. Prácticamente se puede hacer de todo en Java aunque a veces no sea lo mejor. Depende de la aplicación que vayamos a desarrollar, la funcionalidad, tiempo disponible, recursos de hardware que tenemos, su tipo, si tenemos un pedazo de ordenador multinúcleo o necesitamos aprovechar al máximo el pequeño núcleo de un pequeño dispositivo, sería mejor un lenguaje u otro, pero ese es otro tema. Para todo ello tenemos muchas herramientas disponibles, gratuitamente o de pago, a mi me gustan las gratuitas claro: Eclipse, NetBeans, Notepad++… que nos van a hacer la vida más fácil. Algunos programas tienen generadores de código, para crear […]