Ir al contenido principal

Entradas

Java Tip 15: Hilos

  Java es un lenguaje de programación diseñado para ser concurrente y distribuido. Sin embargo, muchas veces una aplicación con procesos secuenciales (de una sola tarea)  no ofrecen el mejor rendimiento. Para eso existen los llamados procesos o programas multitarea.  El paquete java.lang incluye dos elementos para la creación de aplicaciones multitarea en Java: la clase Thread y la interfaz Runnable . Mediante éstas, disponemos de dos caminos alternativos a la hora de implementar una aplicación multitarea: Heredar la clase Thread Implementar la interfaz Runnable Ejemplo. Creamos una clase que extiende de la clase Thread . MyHilo.java package cityjava; import static java. lang . System . out ; public class MyHilo extends Thread{ private String nombre; public MyHilo (){} public MyHilo (String nombre){ this . nombre = nombre; } public void setNombre (String nombre){ this . nombre =nombre; ...

Variables "anónimas" en Java

  Las nuevas versiones de Java (desde la 11) nos traen muchos cambios que pueden volar la cabeza a más de un programador Java que sigue usando el JDK 8 o inferiores. Uno de estos cambios son las famosas variables "anónimas". Variables "anónimas" package org . info ; /** * *@author Comunidad City Java *@date 31/03/2021 * */ public class Main { public static void main ( String [] args ){ testA (); } public static void testA (){ var entero = 32 ; var cadena = "Esta es una cadena en Java" ; var flotante = 23.7f ; var real = 45.3 ; var caracter = '\u9943' ; var claveLarga = 12330000L ; var booleano = 45 > 43 ; System . out . println ( "**** Tipos anonimos ****" ); System . out . printf ( "Entero: %d \n" , entero ); System . out . println ( "Cadena: " + cadena ); System . out . println ( ...

Java Tip 14: Encapsulación

¿Qué es la encapsulación en Java? Es una parte fundamental de la Programación Orientada a Objetos. Consiste en: Proteger las variables de instancia (con modificador private, protected, etc.).   Tener métodos de acceso públicos (respetando las convenciones como get y set) para las variables de instancia.   Ejemplo. package curso ; public class Tipo { private String valor ; public Tipo (){ System . out . println ( "Objeto 'Tipo' creado e inicializado" ); } public Tipo ( String valor ){ super (); this . valor = valor ; } public String getValor (){ return valor ; } public void setValor ( String valor ){ this . valor = valor ; } @Override public String toString (){ return "Tipo:{valor = " + valor + "}" ; } } El modificador private nos dice que la variable de instancia es privada, sólo la pr...

Java Tip 13: Clases abstractas

Una clase abstracta es una clase Java con algunas peculiaridades:  Su objetivo es heredar a otras clases. Tener métodos abstractos (los que no tienen implementación, solo la firma) y  No puede ser instanciada, pues, como se dijo arriba, su objetivo es que otras clases hereden de ella. La herencia nos permite ahorrar escribir código de más y la abstracción es su punto fuerte. Una clase abstracta es similar a una interface, pero puede tener métodos implementados. La palabra abstract nos dice que la clase es abstracta. package com . city . java ; public abstract class Abstracta extends Object { public abstract void imprimir (); } La clase Abstracta (que hereda directamente de la clase padre Object) define un método abstracto imprimir(). Si queremos instanciar ésta clase no podremos hacerlo, pues la especificación del lenguaje Java no lo permite. El compilador marcará un error de compilación. //Dentro de un método main Abstracta abstrac...

Java Tip 12: Uso de for each

En está ocasión veremos como recorrer colecciones (arrays, listas, etc.) usando el clásico for y el "for each". ¿Qué es un array?  Una estructura de datos con elementos del mismo tipo y cuyo tamaño es definido. En Java, el índice de un array inicia en cero. final int TAM = 10 ; //Definimos un arreglo con un tamaño de 10 int [] arreglo = new int [ TAM ]; int numeros [] = { 11 , 22 , 33 , 44 , 55 , 66 , 77 }; int tamanyo = numeros . length ; char [] caracteres = { 'A' , 'B' , 'C' }; caracteres [ 0 ] = 'X' ; caracteres [ 1 ] = 'Y' ; caracteres [ 2 ] = 'Z' ; try { caracteres [ 3 ] = '\u0043' ; } catch ( Exception ex ){ System . err . println ( "Tratas de acceder a un índice que no existe: " + ex . toString ()); } for ( int n = 0 ; n < numeros . length ; n ++){ System . out . printf ( "%d\n" , numeros [ n ]); } ¿Qué es una lista...

Java Tip 11: Estructuras de control

En Java tenemos tres estructuras de control: Secuencial (top-down) Selectiva (if, if-else, if-elseif-else, switch,"operador Elvis") Repetitivas (for, do-while, while, "for each") La más sencilla es la secuencial , es la que escribimos de arriba hacia abajo. { instrucci ó n instrucci ó n instrucci ó n ... } { denota el inicio de una declaración y } el fin de la misma: { int entero = 80 ; char car = '\u0099' ; boolean verdadero = 45 > 0 || 33 >= 100 ; //true Integer numero = null ; // correcto: Integer es una subclase de Object //... } Estructuras de control selectivas: Las que nos ayudan a tomar decisiones lógicas, se evalua una condición y de acuerdo a su resultado (true o false) se realiza una determinada secuencia de instrucciones. Instrucción if if (booleanExpression) { //Executes when booleanExpression holds true } else if (booleanExpression2) { //Executes ...

Java Tip 10: Boxing, unboxing y autoboxing

Continuando con la serie de Java en está ocasión veremos conceptos como boxing, unboxing y autoboxing. Boxing: un tipo primitivo a un objeto. /*Boxing*/ char car = '\u0043' ; Character myChar = new Character(car); int entero = 120; Integer myInteger = new Integer(entero); Unboxing: de un objeto a un tipo primitivo. /*Unboxing*/ Float myFloat= new Float( "12.0f" ); float flotante = myFloat.floatValue(); Autoboxing: asignación indirecta; permite asignar directamente y obtener los tipos primitivos sin necesidad de utilizar clases envoltorio(Wrappers). /*Autoboxing*/ Character myChar = new Character( 'X' ); char car = myChar; float flotante = 120.0f; Float myFlotante = flotante; float otroFloatnte = myFlotante; Links: https://www.arquitecturajava.com/java-boxing-y-sus-curiosidades/