Aprenda Java para Desarrollo en Android: Abreviaturas de Java
Spanish (Español) translation by Rodney Martinez (you can also view the original English article)
Estos consejos rápidos hablan de algunos de las abreviaturas y técnicas más comunes que hay en Java con las que usted se encontrará cuando esté comenzando a desarrollar en Android.
Encontrará éstos pequeños códigos como golosinas —a los cuales llamamos abreviaturas de Java—, usadas en la muestra de código Android SDK, que trae casi todo libro de desarrollo de Android hasta el momento, sin mencionar los tutoriales en línea y los foros de desarrollo. Ninguno de estos consejos son específicos de Android, son simplemente técnicas de Java que habitualmente confunde a los nuevos aprendices en Java y Android, basados en los correos que recibimos de nuestros lectores.
Tip #1: Operador Unario de Java (Incremente / Decremento, Abreviatura de Variable).
Muchos desarrolladores al igual que sus códigos son cortos y fáciles de leer. Como en otros lenguajes de programación, Java incluye los operadores unarios, para incrementar y decrementar con facilidad los valores de una variable por 1.
En otras palabras,
1 |
|
2 |
int counter = 1; |
3 |
counter++; |
4 |
counter--; |
Este código es equivalente a:
1 |
|
2 |
int counter = 1; |
3 |
counter = counter + 1; |
4 |
counter = counter – 1; |
Estos operadores unarios pueden aparecer antes (prefijo) o después (sufijo) de la variable. La ubicación del operador dicta si la operación de incremento/decremento ocurre antes o después de que el resto de la expresión es evaluada. Por ejemplo, el siguiente código muestra como los operadores unarios funcionan para manipular una variable llamada contador usando Android logging:
1 |
|
2 |
int counter = 0; |
3 |
Log.i(DEBUG_TAG, "The counter value is ="+counter++); // prints 0 |
4 |
Log.i(DEBUG_TAG, "The counter value is ="+counter); // prints 1 |
5 |
Log.i(DEBUG_TAG, "The counter value is ="+counter--); // prints 1 |
6 |
Log.i(DEBUG_TAG, "The counter value is ="+counter); // prints 0 |
7 |
Log.i(DEBUG_TAG, "The counter value is ="+(++counter)); // prints 1 |
8 |
Log.i(DEBUG_TAG, "The counter value is ="+--counter); // prints 0 |
Tip #2: Omitiendo Variables Temporalmente (Abreviaturas de Variables Innecesarias
Los desarrolladores de Java, por lo general, evitan crear variables que no van a necesitar. Esto es cierto, en especial, para las variables temporales o temp que son usadas una vez para almacenar el resultado de un declaración, solamente para ser abandonada.
En lugar de eso, los desarrolladores de Java con frecuencia usan la declaración para ser evaluadas como el mismo valor "resultado". Esto, a menudo, se ve cuando aparece la declaración return, pero también lo verá en otros lugares. Por ejemplo, el siguiente método usa una variable "temp" llamada sum para almacenar la suma de dos enteros y luego devolver éste valor:
1 |
|
2 |
int sumVerbose(int a, int b) |
3 |
{
|
4 |
int temp = a + b; |
5 |
return temp; |
6 |
}
|
Muchos desarrolladores de Java simplemente omitirían la sobrecarga y las molestias de crear una variable temporal, y sólo evalúan la declaración como parte de la condición return, así:
1 |
|
2 |
int sum(int a, int b) |
3 |
{
|
4 |
return (a+b); |
5 |
}
|
El estilo es cierto para casos donde la variable temp es usada solamente una vez. Si el método, además, incluye operaciones en ese valor, es por lo general prudente usar un variable bien llamada para el código fácil de leer. Asimismo, a menudo verá más estilo de código "redundante" que tiene muchas funciones de depuración.
Tip #3: La palabra clave "this" de Java y los métodos de Encadenado.
A menudo verá que los métodos de Java están encadenados. Con frecuencia, estos métodos son llamados en la instancia de la clase actual (así como la palabra clave this). Similar al tip que discutimos anteriormente, el valor de retorno de cada método son usados solamente para conseguir acceso los métodos básicos. Por lo tanto, el valor de retorno no es almacenado en un valor contenedor, en lugar de eso, el método subyacente es llamado. Por ejemplo:
1 |
|
2 |
InputStream is = getResources().openRawResource(R.drawable.icon); |
Este código es lógicamente equivalente al siguiente:
1 |
|
2 |
Resources myAppResources = this.getResources(); |
3 |
InputStream is = myAppResources.openRawResource(R.drawable.icon); |
Tip #4: Operador Ternario de Java (Abreviatura de If-Else).
Una declaración condicional que probablemente verá que usaremos para soporte es el operador ternario de Java. Esta es una forma de abreviatura de diseño de una declaración sencilla If-Else, usando una declaración condicional (la cual puede o no ser encapsulada entre paréntesis) seguido por un signo de interrogación (?) luego una declaración que ocurrirá si la condición es verdadera, luego; dos puntos (:) y otra declaración que ocurre si la condición es falsa.
Aquí está un ejemplo del operador ternario en uso:
1 |
int lowNum = 1; |
2 |
int highNum = 99; |
3 |
int largerNum = lowNum < highNum ? highNum : lowNum; |
Éste es el equivalente lógico del siguiente fragmento de código, mucho más largo por supuesto:
1 |
int largerNum; |
2 |
if(lowNum < highNum) |
3 |
{
|
4 |
largerNum = highNum; |
5 |
} else { |
6 |
largerNum = lowNum; |
7 |
}
|
Este tipo de abreviaturas de Java solamente es apropiado cuando su declaración if-else es sencilla. Algunas veces verá a los desarrolladores meter mucha lógica en una de éstas declaraciones, sin embargo, no recomendamos hacer esto. Use sólo operadores ternarios ya que hacen que su código sea más fácil de leer, no más difícil.
Tip #5: Declaraciones Vacías (Abreviatura de un Ciclo Infinito)
En Java, podemos tener declaraciones vacías simplemente al terminar una línea de código en blanco con su punto y coma. Este truco, a menudo es usado para especificar un ciclo condicional for() para crear un ciclo infinito, como éste:
1 |
for (;;) { |
2 |
//Hace algo una vez, y otra vez, y otra vez.
|
3 |
}
|
Cada componente del ciclo for() es una declaración vacía. Éste considera que es verdadero y por lo tanto el ciclo continua indefinidamente. Como con cualquier diseño de código, asegúrese de que cualquier ciclo infinito que usted vaya a crear tenga reazonables oportunidades de salir.
En conclusión
Puede ser frustrante cuando los nuevos desarrolladores se encuentran con algún código de Java o con una sintáxis extraña en su primer día de trabajo con Android —es decir, la sintáxis que, por lo general; no se abordóa través del típico tutorial "Sea experto en Java en 20 minutos". Sin embargo, ahora usted sabe como lucen algunas de éstas "abreviaturas" y que significan. Ya sea si las usa o no, eso depende de usted, ¡pero al menos no le confundirán cuando vea una muestra en un código! Buena suerte y siéntase libre de compartir algunas de sus abreviaturas favoritas del código en Java a través de la sección de comentarios.
Sobre los Autores
Desarrolladores de Celulares, Lauren Darcey y Shane Conder son coautores de varios libros sobre el desarrollo en Android: un libro de programación a fondo titulado: Desarrollo de Aplicaciones Inalámbricas de Android y Sams Aprenda usted mismo a Desarrollar Aplicaciones para Android en 24 horas. Cuando no escriben, ellos pasan su tiempo desarrollando programas para celulares en sus empresas y proporcionando servicios de consultoría. Ellos pueden ser localizado a través de correo electrónico androidwirelessdev+mt@gmail.com, o por medio de su blog en androidbook.blogspot.com, y en Twitter @androidwireless.