Ir al contenido principal

Entradas

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/

Java Tip 9: Variables

Una variable está formada por un espacio en el sistema de almacenaje (memoria principal de un ordenador) y un nombre simbólico (un identificador) que está asociado a dicho espacio. Ese espacio contiene una cantidad de información conocida o desconocida, es decir un valor. Su longitud puede ser fija , las que no cambian a lo largo del programa y de longitud variable , las que cambian de tamaño a lo largo del programa. En cuanto al ámbito o alcance tenemos las globales , las que son accesibles desde cualquier punto del programa y las locales , las que sólo son accesibles desde el punto de declaración. package pack1 ; public class Modelo { /*Variable de instancia o atributo de clase, se inicializa automáticamente. Con modificador private, sólo accesible desde la propia clase*/ private String nombre ; //null /*Constante global, también conocida como variable de clase: Modelo.MAX */ public static final int MAX = 100 ; public void metodo ...

Java Tip 8: Interfaces

Una interface puede considerarse como una clase abstracta pura .  Puede contener un conjunto de declaraciones sin cuerpo (cabeceras de métodos sin implementar) y propiedades constantes.  Es similar a una clase abstract con las siguientes diferencias: Todos los métodos de una interfaz se declaran implícitamente como abstractos y públicos. Una clase abstracta no puede implementar los métodos declarados como abstractos, una interfaz no puede implementar ningún método (ya que todos son abstractos). Una interfaz no declara variables de instancia. Una clase puede implementar varias interfaces, pero sólo puede tener una clase ascendiente directa. Una clase abstracta pertenece a una jerarquía de clases mientras que una interfaz no pertenece a una jerarquía de clases. En consecuencia, clases sin relación de herencia pueden implementar la misma interfaz. Ejemplo . Tenemos una interface con método void suma(int x, int y). package pack1; public interface Operab...