Bienvenidos sean a este post, antes de continuar con Android vamos a ver una breve introduccion de como es el lenguaje Java porque como habran visto en el ejemplo creado el lenguaje utilizado es basicamente este, si bien despues los distintos parametros los podremos definir por medio de XML, la base para que nuestra app funcione esta controlada por Java, por eso vamos a hablar un poco sobre el mismo.

Anuncios

Java es un lenguaje orientado a objetos, al estilo C++, para poder utilizarlo va a tener basicamente dos tipos:

  • Clases, entidad contenedora de atributos y metodos
  • Objeto, es donde se define un elemento concreto

Vamos a hablar sobre los elementos de los dos tipos descriptos anteriormente:

  • Atributos, es donde se almacenara la informacion para el objeto (variable)
  • Contructor, funcion utilizada para inicializar un objeto
  • Metodos, sirven para modificar el estado de un objeto, similar a las funciones en otros lenguajes.

El metodo para definir las variables es similar a C o C++, es de la siguiente forma:

< tipo de variable > < nombre de variable > [ = valor ]
int numero = 0;
Anuncios

Donde primero diremos el tipo de variable, en este caso entero (int de integer), luego definiremos su identificacion, en este caso el nombre es numero, y por ultimo como opcional el valor, en este caso cero.

Pasemos a hablar de como crear una clase, primero vamos a crear un archivo, al cual debe llamarse igual a la clase con la extension .java, por ejemplo si hacemos una clase llamada Prueba el archivo deberia ser Prueba.java, y siempre se debe crear un archivo por cada clase, en el comienzo del archivo declararemos a cual paquete pertenece esta clase, por ejemplo:

package org.example.unidad0;

Luego de esto declararemos los paquetes adicionales necesarios para nuestra clase:

import android.app.Activity;
import android.content.BroadcastReceiver;
import ...;
Anuncios

Esto lo veremos mas adelante, por ahora es solo un ejemplo pero el unico basico y seguro en todas nuestras app va a ser la ultima linea pero los otros son algunos de los componentes explicados en este post.

Ahora veamos un ejemplo de estructura de clase:

class < nombre de la clase >
{

// declaracion de atributos
[ visibilidad ] [ modificadores ] < tipo > < nombre de atributo > [= valor];

//declaracion de constructor
public < clase > (< argumentos >)
{
< instrucciones >;
}

// declaracion de metodos
[ visibilidad ] [ modificadores ] < tipo > < nombre del metodo > (< argumentos >)
{
< instrucciones >;
}

...

}
Anuncios

Como pueden ver es muy similar a declara una clase en C++ pero con la salvedad de no tener una parte publica y una privada sino sera definida por el argumento visibilidad y los modificadores el tipo de dato, con mas detalle es asi:

  • visibilidad, public, private o protected
  • modificadores, static, final o abstract

Los argumentos de visibilidad son similares a los vistos en C++, mas adelante hablare un poco sobre esto pero en todo caso no se hagan problema cuando veamos algun ejemplo seguramente hare una breve reseña sobre la conducta de cada uno de ellos, de los modificadores hablo mas adelante en este mismo post pero en algun ejemplo hare mas hincapie sobre ellos, y observen como es la estructura:

Primero utilizamos la palabra clave class para decirle al programa que esta va a ser una clase, luego le indicamos el nombre y abrimos una llave ({), despues declaramos nuestros atributos (variables) a ser utilizadas por nuestra clase, una vez definidas todas, en el siguiente bloque declaramos y definimos nuestros constructores, y por ultimo creamos los metodos utilizados para modificar los valores de los atributos de la clase, en caso de ser necesario, o asignarles otras funciones para cuando los invoquemos a traves de los objetos creados en base a estas clases.

Anuncios

Ahora veamos algunos de los aspectos mas basicos de Java.

Arrays

Los arrays son una variedad particular de las variables porque nos permiten almacenar mas de un dato en ellos, veamos primero su sintaxis:

Sintaxis:

< tipo > < nombre del Array > [] ... [] = new < tipo > [ < cantidad de elementos > ];

Ejemplo:

int numero[] = new int[ 10 ];

En este caso creamos un Array de una dimension, si agregamos mas corchetes ([]) se agregaran mas dimensiones y les definimos que va a almacenar diez elementos o se puede decir tiene un maximo de diez posiciones, para entender un poco mas les recomiendo este post.

Anuncios

if

Este es el condicional universal de todos los lenguajes, lo utilizaremos para poder dar la posibilidad de razonar a nuestros codigos, veamos su sintaxis:

Sintaxis:

if ( condicion ) 
{
... instrucciones ...
} else {
... instrucciones ...
}

Ejemplo:

if (a < 5) {
	System.out.println("Es menor a 5!!!");
} else {
 	System.out.println("No es menor a 5");
}

Como pueden ver, el condicional if trabaja como en todos los lenguajes derivados de C++, primero vamos a tener una condicion donde si se cumple ejecutara una funcion, en caso contrario (else) ejecutara otra funcion, en todo caso si quieren saber mas sobre este condicional les recomiendo este post.

Anuncios

switch

Este es condicional es la evolucion del if, trabaja de forma similar pero no lo reemplaza sino que se complementa, su sintaxis es la siguiente:

Sintaxis:

switch ( variable )
{
 	case < primera condicion >:
 		< instrucciones >
 		break;
 	....
 	default:
 		< insrtucciones >
 		break;
}

Ejemplo:

switch (a)
{
	case 1:
 		System.out.println("a tiene el valor uno");
 		break;
 	case 2:
 		System.out.println("a tiene el valor dos");
 		break;
 	default:
 		System.out.println("a no tiene el valor uno ni dos");
 	break;
}

Aca tambien existe un condicional pero en este caso, trabaja de forma diferente porque primero toma la variable a verificar, luego chequea en todos los casos definidos si existe una coincidencia, por ejemplo si a tuviera el valor uno coincidiria con el primero, muestra el mensaje y sale del switch(), lo mismo ocurre si tuviera el valor dos pero en caso de tener un valor diferente a los antes citados, al no tener coincidencias con los cases procedera a usar su valor por defecto (default) y nos mostrara el mensaje respectivo, es un condicional mas frecuentemente utilizado para determinadas acciones como por ejemplo un menu, si quieren saber mas les dejo este post.

Anuncios

Herencia

Sintaxis:

class < nombre clase > extends < clase padre >{
 	....
}

Ejemplo:

class Hijo extends Padre 
{
....
}

La herencia es igual al visto en C++ donde la clase “heredera” del padre, no solamente va a tener sus propios metodos sino tambien va a tener acceso a los metodos de la clase padre, les recomiendo este post para ver como trabaja.

Anuncios

Visibilidad

Como dijimos anteriormente, habia tres posibilidades veamos en detalle cada una de ellas:

  • public, esta permite accesibilidad desde cualquier clase
  • private, solo son accesibles por la clase actual
  • protected, son accesibles por la clase actual y sus descendientes pero sin ser public
  • default, cuando no informamos ninguna solo puede ser accedida por el paquete, trabaja de forma similar a private

Como pueden ver cada uno de las metodos elegidos permite restringir el acceso o no a ciertas partes o metodos de la clase, es para lo que basicamente se utiliza.

Anuncios

Modificadores

Como vimos anteriormente, hay tres posibilidades de definir el tipo de constante en un atributo o metodo de una clase veamos los tres tipos:

  • final, esta identifica que sea una variable, metodo o clase donde no podra ser redefinida
  • abstract, indica al metodo como abstracto (sin codigo) y estos son definidos por las clases herederas
  • static, se utiliza para atributos o metodos y esta es util para mantener entre todos los objetos creados de esta clases sin necesidad de redefinirlo, al igual que en C++

Es similar a C++ pero en este lenguaje, final equivaldria a const, abstract no existe sino se define de forma implicita y static es el unico que trabaja de igual forma. Les recomiendo visitar este post donde esta el curso completo inicial de Java y puede ver estos temas en abstracion, polimorfismo y encapsulacion.

Anuncios

Interfaces

Es una clase abstracta sin atributos, sus metodos no tienen codigo pero puede ser heredera de otras interfaces, este tema lo veremos mas adelante con algunos otros ejemplos.

Packages

Se utiliza para organizar un grupo de clases, permitiendo resolver el problema de los nombres de las clases, es decir coincidencias entre los distintos programas, van siempre en el encabezado del archivo de nuestra clase, veamos un ejemplo:

package org.example.font;

Esto le dice al programa que debe cargar esta clase y al momento de utilizarla seria de la siguiente forma:

org.example.font fuente = new org.example.font(...);
Anuncios

Para evitar esto podemos utilizar la siguiente palabra clave:

import org.example.font;

donde quedara de la siguiente forma:

font fuente = new font(...);

Esto es una forma de decirle al codigo que font lleva la palabra a com.tinchicus adelante de forma implicita y asi poder utilizarlo, en C++ es muy parecido a using namespace… Por ultimo podemos utilizar la siguiente forma:

import org.example.*;

De esta forma le diremos que lo utilice para todas las clases pertenecientes a este paquete.

Errores

La forma de capturar errores es similar a C++, utiliza el metodo try() en el codigo fuente donde verifica si ocurre un error y luego por medio de los catch() devuelve una notificacion o trata de solucionarlo y la diferencia esta en finally(), propio de este lenguaje, donde ejecutara el codigo con error o sin error. Para entender este concepto les recomiendo este post para ver su funcionamiento.

Anuncios

En resumen, este es una muy breve introduccion a Java donde vemos sus nociones mas basicas, durante este curso iremos ahondando en algunos temas por medio de ejemplos pero si realmente quieren saber un poco mas de lo que veremos aca les recomiendo este post que trata sobre un curso inicial de Java donde explico algunas cosas que en este no, espero te haya sido util sigueme en Twitter, Facebook o Google+ para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00