
Buenas gente, siguiendo con lo que dejamos ayer, esta vez les dejaré la clase 4 que consta de la instalación de todos los elementos para empezar a programar en Java y algunos tip's que deben hacer para no cometer esos errores que después nos vuelven locos. Esta clase es un poco técnica, pero ya que es la única vez que la van a hacer, sería bueno que lo realicen a la perfección. Recuerden el viejo refrán chino: "goles errados, goles en contra" ahora no sé si era chino o nuestro.
Sin más cháchara he aquí los temas a tratar:


CLASE 4: INTRODUCCIÓN A JAVA
4.1.- INSTALACIÓN Y CONFIGURACIÓN DE JAVA JDK
Antes de empezar a programar necesitaremos imperiosamente de una plataforma para lograr nuestro cometido, para ello debemos buscar en Google o en algún otro buscador lo siguiente:
Java JDK elegimos el link como en la figura adjunta:

Se abrirá la página de Oracle en donde encontraremos varias versiones de dicha plataforma y la que nos interesa es la Java Platform (JDK) con ello entraremos a la dirección de descarga que hemos elegido (Si usamos Chrome, podemos utilizar el traductor automático para poder entender que es lo que nos dicen).
Acá es muy importante saber qué Sistema Operativo tenemos en nuestra máquina y si es de 32 o 64 bits. No olvidar aceptar la licencia.

Una vez elegido le damos clic en el link para descargarlo, lo guardamos en algún lugar de nuestra PC, cuando ubiquemos el ejecutable, procederemos a la instalación. La misma resulta sumamente sencilla pues sólo hay que seguir al asistente.

Con esto ya tenemos la plataforma JDK para desarrollar cualquier programa bajo Java.
4.2.- INSTALACIÓN DE ECLIPSE
Para empezar a programar en Java necesitamos de los IDE (Integrated Development Environment / Entorno integrado para desarrollo), para Java y así poder completar lo necesario para programar de una manera ágil en Java. Quizás este sea el último paso para poder comenzar a trabajar con Java de una manera profesional y organizada.
Tenemos una serie de IDE, a decir: JCreator, JBuilder Foundation, Netbeans, Eclipse. Por nuestra parte utilizaremos este último por ser más fácil de utilizar y de hecho no menos poderoso.
Entonces para ubicarlo en la red, nuevamente nos ponemos a buscarlo en su buscador favorito y escribimos: eclipse.
Elegimos el link de Eclipse download, y nos aparecerá la página de descarga, una vez adentro veremos una serie de elementos, herramientas, etc. Elegiremos la que tenemos marcada en la figura de abajo:

Nuevamente nos fijamos el sistema que tenemos (32 o 64 bits) y simplemente bajamos la aplicación y guardamos en un lugar visible.
Será necesario descomprimirlo para poder instalarlo en nuestra computadora. Las cosas debemos hacerlas simples a la hora de precisar el programa para poder hallarla fácilmente.
Una vez descomprimido se crea una carpeta con el mismo nombre y hacemos (dentro) doble clic en el ejecutable (eclipse.exe).
Empezará a instalarse lo cual tardará muy poco y nos aparecerá por primera vez la interface gráfica de Eclipse. La versión es la Indigo o cualquiera que se haya bajado. Además lo que hará es indicarnos en dónde vamos a guardar nuestros proyectos, también podremos cambiar los mismos de ubicación.




Una vez dentro del cuadro de diálogo, en Work with, escribimos cualquier nombre, por ejemplo: Android. Luego presionamos en el botón Add y dentro del nuevo cuadro de diálogo, donde en Name pondremos Android ADT y en Location “pegaremos” la URL que copiamos en el punto anterior. (Use Ctrl + V).
Damos Ok y esperamos a que Eclipse coloque las herramientas que necesitamos. Como podremos observar en la figura de abajo ya están instaladas las herramientas para desarrollar en Java – Eclipse.


Ahora bien, pulsaremos en la casilla de Developer Tools para seleccionarlas todas ellas y le damos en el botón Next. Y de nuevo Next y Finish.
En la siguiente pantalla debemos aceptar la licencia y vemos que se empiezan a instalar las herramientas seleccionadas anteriormente.
Nos aparecerá un cartel de advertencia (Warning) al cual le daremos OK.
Luego nos saldrá otro mensaje en el que nos advierte que debemos reiniciar nuestra IDE. Lo hacemos. Al cartel del guardado de proyectos nuevamente le damos OK. Y con esto hemos finalizado la instalación de nuestro ADT for Eclipse.

Si bien es cierto que tenemos instalado el plug in de nuestro Java –Eclipse aún falta configurarlo correctamente como veremos a continuación.
4.3. CONFIGURACIÓN DE ECLIPSE
Ahora veremos cómo bajar e instalarnos el Android SDK, que es el kit de desarrollo necesario para programar e implementar todo tipo de aplicaciones para Android, el sistema operativo para teléfonos móviles de Google.
Escribimos el mismo nombre en nuestro buscador habitual, elegimos la opción que nos aparece:


DOWNLOAD FOR OTHER PLATFORMS
Este link nos llevará a la siguiente página:
http://developer.android.com/sdk/index.html
Y dentro de los cuadros que hay elegiremos lo que está marcado en la figura de abajo:


¡Y ya está! Ya tenemos preparado el entorno para poder programar en Android.
Bueno, como vimos, no es tan complicado, sin embargo hay que prestar atención a todos los pasos y con esto ya tendremos para programar como locos.
Si desean bajarse el pdf para imprimirlo y reverlo a gusto y piaccere, haga clic en la imagen:


4.4 PRIMEROS PASOS CON ECLIPSE
PERSPECTIVAS Y EMULADOR
1. PERSPECTIVA JAVA
Dados por sabidos los conocimientos básicos sobre Eclipse y la programación en Java, ésta perspectiva debería ser conocida por todos.
Es la interfaz de usuario (o conjunto de vistas) que provee el ADT Plugin para poder programar en lenguaje Java. Esta interfaz, proporciona una serie de herramientas (se puede considerar como una determinada organización de las vistas), para el correcto desarrollo de programas y aplicaciones, y será la que utilizaremos para programar en este curso de Android.

2. PERSPECTIVA DDMS
En este caso, es el ADT Plugin el que nos proporciona la nueva perspectiva, por lo que lo primero que hay que hacer es habilitarla. En la pestaña “Window”, seleccionar “Open Perspective” -> “Other”-> “DDMS”.
Esta perspectiva, sirve para poder programar y realizar debugging al mismo tiempo, lo que es una forma muy efectiva de programar.
Aunque se programará con la perspectiva Java, a la hora de corregir errores se puede pasar a la perspectiva DDMS.

3. EMULADOR
Una vez tengamos el proyecto listo para ejecutar, entra en escena el emulador de Android. Éste proporciona una vista especial para comprobar si la aplicación hace lo que se desea. A continuación se muestra la vista del emulador para la versión 2.2 de Android:

Lo primero que hay que hacer cuando se quiere ejecutar una aplicación, es hacer clic con el botón derecho sobre el proyecto, y en “Run as” seleccionar “Android Application”, entonces se lanzará el emulador más apropiado siempre que esté creado (más adelante, se explicará cómo generar los emuladores).
No se debe parar la ejecución del emulador, dado que cada vez que se ejecuta el mismo, necesita de muchos recursos del computador, por lo que tarda bastante en lanzarse, y realmente no es necesario cerrarlo, puesto que cada vez que se lleva a cabo una ejecución del proyecto, la aplicación se reinstala en el emulador.
Primer ejemplo: Hola Android
Vamos a crear nuestro primer proyecto en Android, pero antes veamos de qué se compone cada uno. Al generar un nuevo proyecto de Android, dado que estamos utilizando el entorno Eclipse, éste va a generar automáticamente la distribución de carpetas que contendrá la aplicación, la cuál será común a todos los proyectos Android.

Veamos el significado de cada carpeta por separado:
Carpeta src:
Toma la totalidad del código fuente (Java) de la aplicación. En el ejemplo que vamos a llevar a cabo, Eclipse generará automáticamente el código base de la ventana principal (Activity).
Carpeta res:
Contiene los recursos necesarios para generar una aplicación Android:
.- res/drawable/: Guarda las imágenes y se divide en: drawable-ldpi, drawable-mdpi y drawable-hdpi, que dependerán de la resolución del dispositivo.
.- res/raw/: Contiene archivos de propósito general, en otro formato que no es XML.
.- res/layout/: Incluye los archivos que definen el diseño de la interfaz gráfica, siempre en XML.
.- res/values/: Guarda los datos y tipos que utiliza la aplicación, tales como colores, cadenas de texto, estilos, dimensiones, etc.
Carpeta gen:
Ésta carpeta guarda un conjunto de archivos (de código Java) creados automáticamente cuando se compila el proyecto, para poder dirigir los recursos de la aplicación. El archivo R ajusta automáticamente todas las referencias a archivos y valores de la aplicación (guardados en la carpeta res).
Carpeta assets:
Guarda el resto de archivos necesarios para el correcto funcionamiento de la aplicación, como los archivos de datos o de configuración. La principal diferencia entre los recursos que almacena ésta carpeta y los que guarda la carpeta “res”, es que los recursos de ésta última generan un identificador por recurso, identificador que se encargará de gestionar el fichero R y sólo se podrá acceder a ellos a través de determinados métodos de acceso, mientras que los recursos almacenados en la carpeta “assets” no generan identificador alguno y se accederá a ellos a través de su ruta, como se hace con cualquier otro fichero.
Archivo AndroidManifest.xml:
Éste archivo es uno de los más importantes de cualquier aplicación Android. Se genera automáticamente al crear el proyecto, y en él se encuentra definida la configuración del proyecto en XML (Actividades, Intents, los permisos de la aplicación, bibliotecas, etc.).
Por ejemplo, el proyecto que vamos a generar (“Hola Android”), contiene un AndroidManifest.xml como el siguiente:
android:versionCode="1"
android:versionName="1.0" >
android:label="@string/app_name" >
android:name=".Hola" >
Otra vista diferente del manifiesto es la siguiente:

Y por fin, una vez explicadas cada una de las partes que componen el proyecto, vamos a crear nuestro primer proyecto con Android. Primero hacemos clic en “File”->“New”->“Other”- >“Android Application Project”, damos a “Next” saldrá la pantalla que se muestra a continuación (“New Android Aplication”).
Simplemente en “Project Name” poner: HelloAndroid y pulsar “Next”. En la siguiente pantalla, “damos “Next” nuevamente, en la siguiente podemos aplicarle un ícono, “Next”. Luego en la siguiente pantalla nos pide que elijamos una actividad, elegiremos la primera, Actividad en Blanco, Next y finalizar.
En la última pantalla antes de dar por concluida la configuración del nuevo proyecto, “Application Info”, completar los siguientes campos:
•“Application Name”: Hello, Android
•“Package Name”: org.example.hello
•“Create Activity”: Hello
Con esto ya hemos configurado nuestro primer proyecto, la pantalla nos debería quedar como en la figura de abajo:

Para ejecutar nuestra aplicación, primero debemos tener creado un emulador de nuestra versión de Android. Para ello, hacer clic en el símbolo que abre el “Android Virtual Device Manager” -AVD- (en la fig. de arriba está marcado con una elipse roja.)
Una vez abierto el AVD Manager, Pulsar en el botón New. Y configuraremos como se muestra en la siguiente pantalla:

Ahora ya podemos ejecutar nuestra aplicación. Clic con el botón derecho sobre el proyecto, y en “Run As”, seleccionar “Android Application”. Se lanzará el emulador (hay que tener paciencia, pues debido a que consume muchos recursos, tardará un rato), y pasado un tiempo, se mostrará nuestro primer programa en Android:

Vieron que fue bastante sencillo. Nada del otro mundo.

4.5 PRIMEROS PASOS CON JAVA (Parte 2)
Veremos antes algunos conceptos importantes para poder asimilar la programación con JAVA, a decir:
4.5.1 Tipos de Datos Primitivos
Los tipos de datos son conjuntos de elementos que cumplen con unas características bien definidas, de manera que es posible determinar si un elemento dado pertenece a él o no. En java se habla de dos grandes grupos de tipos de datos: los primitivos y los referenciados.
Los tipos de datos primitivos son comunes a casi todos los lenguajes de programación, y tienen como característica principal el que sus instancias son valores, además no se puede definir un nuevo tipo de dato, se debe trabajar con los que ofrece java.
Los tipos referenciados agrupan clases, interfaces y arreglos; a sus instancias se les denomina objetos. Los lenguajes de programación orientados a objetos, ofrecen un grupo grande de estos tipos, al cual se denomina API , pero, a diferencia de los tipos de datos básicos, el programador puede definir nuevos tipos de estos datos. En este curso se trabajará con dos tipos referenciados, los arreglos y los que se definen a través de clases.
Un tipo de dato primitivo es la definición de un grupo de valores y de las operaciones que se que existen para trabajar con ellos. Como ejemplo de tipos de datos se pueden citar, en matemáticas, los números naturales y los números enteros. Se habla de los números naturales, como los números enteros mayores o iguales a cero; y se sabe que para ellos están definidas las operaciones suma y multiplicación sin ninguna restricción, además está la resta, siempre y cuando el minuendo sea mayor que el sustraendo, y la división siempre y cuando el divisor sea diferente de 0 y se pueda encontrar otro número natural tal que al multiplicar este número por el divisor se obtenga el dividendo. También existen los números enteros, que se extienden desde el infinito negativo hasta el infinito positivo; para estos números también se han definido operaciones, entre ellas la suma, la resta y la multiplicación sin ninguna restricción, pero la división sigue teniendo las mismas restricciones que para los números naturales.
Ya en los capítulos anteriores hemos hecho el enunciado y explicación sobre los tipos de datos. Sería de provecho revisar los capítulos.
4.5.2 PALABRAS RESERVADAS
Las palabras reservadas o palabras claves son identificadores predefinidos en un lenguaje de programación, es decir, ya tienen un significado especial para el lenguaje. Por lo tanto, estas palabras no pueden emplearse como identificadores definidos por el usuario.
Java maneja las siguientes palabras reservadas:

Es importante resaltar que true, false y null no son palabras reservada, sino que son valores. Es por esto que no pueden ser utilizados como identificadores, ni pueden ser redefinidos.
4.5.3 COMENTARIOS
Un comentario es una anotación que se quiere hacer para explicar algo referente al código que se está produciendo. Lo que se incluya como comentario no será tenido en cuenta por el compilador. Se acostumbra incluir información que pueda ayudar a comprender el código elaborado.
En java existen tres tipos de comentarios:

4.5.4 CLASES
En java la organización de las clases es similar a la de las carpetas que se emplean en el sistema operativo Windows, sólo que en java se denominan “paquetes”. Igual que en el sistema operativo una carpeta puede contener otra carpeta, en java un paquete puede estar ubicado dentro de otro paquete, sin que esto genere ningún inconveniente.
Los paquetes básicos de java están en un gran paquete denominado java y dentro de este hay otros, el primero es el paquete lang. Este es el paquete que contiene las clases básicas para el funcionamiento del lenguaje; tanto así que sin él no podría ejecutarse ningún tipo de código, y contiene un gran número de clases pero, en la parte inicial del libro, se trabajará únicamente con String, y las clases Wrapper, y en la parte final del mismo (en el capítulo de Conceptos Básicos de Programación Orientada a Objetos), se incluirá la clase Object.
java.lang.String
Cada objeto, o instancia, de esta clase contiene una secuencia de caracteres pertenecientes a la tabla Unicode. Esta secuencia puede tener la longitud que se requiera, es decir puede comprender desde una letra hasta un párrafo.
Una de las mayores fortalezas de esta clase, son los métodos o servicios que ofrece a los programadores, y que resuelven operaciones básicas de trabajo con cadenas de caracteres. Estos métodos se presentarán más adelante.
Clases Wrappers
Se trata de un grupo de clases que permiten “envolver” un tipo de dato básico en un objeto, para algún tratamiento particular. Existe una clase para cada tipo de dato básico, como se muestra a continuación:

Clases que se encuentran en java.util
En este paquete se encuentran las clases que los desarrolladores de java, han considerado que facilitan el trabajo de otros programadores, es decir este paquete contiene las clases que “facilitan” la vida al programador. En este capítulo sólo se revisarán las clases Scanner, Random, ArrayList y Arrays.
Dado que las clases que están en este paquete no conforman la parte básica de java, siempre que se quiere usar alguna clase contenida en él, se debe “avisar” al compilador de java, para lo cual se debe usar una línea de código, antes de definir la clase, como se muestra a continuación:
import java.util.*; // Esta es la línea que se debe incluir.
public class Trabajo { // Esta es la línea en la cual se empieza a definir la clase.
Scanner
Cada objeto de esta clase está en capacidad de ofrecer una serie de servicios que permiten obtener información de diversos medios como archivos o el teclado.
Como tema de este libro sólo se estudiará la forma de obtener datos a través del teclado.
Random
Cada objeto de esta clase está en capacidad de generar valores numéricos en forma seudo aleatoria. Entre más grande sea el rango entre el cual pueden variar estos valores, mayor probabilidad hay de obtener valores diversos; puesto que, cuando se trabaja con rangos pequeños, el objeto tiende a regresar el mismo valor o valores muy próximos.
ArrayList
Cada objeto de esta clase permite guardar una colección de referencias a objetos de cualquier clase definida. Su comportamiento es similar al de un arreglo, sin embargo tiene la gran ventaja de que su tamaño puede crecer en forma ilimitada, a diferencia de los arreglos que tienen un tamaño que no puede ser modificado.
Dado que un objeto de esta clase sólo contiene referencias a objetos, no a valores, las clases wrappers son muy útiles si se requiere guardar una cantidad no definida de valores.
Arrays.
Los arreglos, como se mencionó previamente, son tipos de datos referenciados, que no ofrecen ningún servicio especial, de hecho para conseguir su longitud se hace referencia a un atributo (length), no a un método. Sin embargo, existe una clase: java.util.Arrays, que presta una serie de servicios para facilitar el trabajo con los arreglos.
4.5.5 ¿QUÉ ES UN PROYECTO JAVA? - ORGANIZACIÓN DE ARCHIVOS .JAVA, .CLASS Y OTROS
Un proyecto Java podemos considerarlo como una serie de carpetas ordenadas y organizadas de acuerdo con una lógica para mantener organizado el código. Un proyecto suele constar de archivos .java, archivos .class y documentación.
Los archivos .java contienen el código fuente (entendible por humanos) que en un momento dado podemos modificar con un editor de textos y suelen encontrarse en carpetas de nombre src (source). Los archivos .class contienen el bytecode (no entendible por humanos pero sí por la máquina virtual Java) y suelen encontrarse en carpetas de nombre bin (binary).
La organización de los archivos en carpetas y la presencia de otros adicionales depende del entorno de desarrollo que utilicemos. Además, Java introduce un esquema organizativo a través de paquetes (packages) que comentaremos más adelante.
Para trabajar con proyectos en la mayoría de entornos, incluido NetBeans, BlueJ o Eclipse debemos tenerlos en un soporte grabable accesible (por ejemplo en una carpeta de nuestro disco duro). No es válido por tanto un cd, dvd, unidad remota restringida o carpeta del disco duro con restricciones. El motivo es que los entornos de desarrollo trabajan grabando información en la carpeta del proyecto que se encuentre activo. Por tanto un soporte no escribible no es adecuado.
Vamos a crear nuestro primer proyecto. Para ello conviene crear primero una carpeta donde ir almacenando los proyectos que vayamos creando. Hazlo en la ruta que te parezca más adecuada. Nosotros usaremos C:/ProyectosCursoJava Pulsamos en el menú File -> New -> JavaProject y buscamos la carpeta donde vamos a guardar el proyecto.
Donde pone “Nombre de archivo” escribiremos ProyectoP1 o cualquier otro nombre que nos parezca adecuado.
Creación de una class
Podemos hacer: File -> New class o bien clic en el ícono marcado en la figura de la derecha:
Ahora bien, crearemos el clásico “Hola Mundo”, pero esta vez será “Hola Java, este es nuestro primer proyecto”

Entonces dentro de nuestra IDE pondremos lo siguiente (en el recuadro verde marcado debajo:



Bueno, al parecer resulta bastante sencillo programar en Java, pero esto es el comienzo y hay muchas cosas que ver y realizar.
4.5.6 ESTRUCTURA DE UNA CLASE
Ahora analizaremos parte por parte que hemos escrito en el ejemplo anterior y qué significan todos esos códigos:

Con esto hemos declarado la clase Ejemplo y le decimos a nuestro Eclipse que nuestra class se llama Ejemplo.
Otra cosa importante para recordar es que la clase casi siempre coincide con el nombre del archivo con que se guarda la clase, esto lo realizamos para evitar errores.
Podemos observar la importancia en el programa de las llaves { } pueden ser 2, 3 ó más y tiene una de apertura y su correspondiente de clausura. Siempre hay que respetarlas. Lo que hay dentro de una llave { } pertenece a un mismo grupo, que en programación se denominan bloques.
Ahora vamos con nuestra segunda línea de código:
public static void main(String[] args) {
Significa la declaración de main que es el punto de entrada para la mayoría de programas de Java. De hecho que hay excepciones como cuando programamos Applets (Programas que forman parte de una página Web) o Servlets (los que forman parte de los Servidores Java).
En la siguiente línea podemos observar los comentarios, los cuales nos sirven para ir documentando bloques o partes de nuestro programa, a manera de una bitácora.
// Mi primer programa Java
Con esto tendríamos la estructura básica de una clase, nada complicado por ahora, sin embargo como hemos podido observar existen ciertas reglas que hay que seguirlas a rajatabla para evitarnos los errores sintácticos, que más adelante iremos detallando.
4.5.7 VARIABLES
Son lugares de almacenamiento que pueden contener información de distintos tipos, los cuales pueden ser números, decimales, textos, un valor verdadero o falso, cadena de caracteres, etc. Las variables son claves en la creación de cualquier programa no importando el lenguaje en que estemos trabajando.
Además los valores que contienen pueden ir modificándose a lo largo de la construcción del mismo.
A continuación vemos una declaración de una variable con el tipo de dato String, lo que podemos observar es que la variable es saludo, seguido de un texto o una cadena de caracteres que queremos el programa muestre.
public class saludos {
public static void main(String[] args) {
String saludo = "Bienvenido al curso de JAVA";
}
}
El punto y coma (


Ahora bien, cuando ejecutamos el programa (Run) veremos que en la consola no nos aparece absolutamente nada (tampoco muestra signos de errores). Lo que significa es que le hemos ordenado a la computadora que nos guarde la variable, pero no que nos muestre la cadena de caracteres o texto.
Para mostrar los contenidos de una variable, necesitaremos de una línea de código ya usada anteriormente:
String saludo = "Bienvenido al curso de JAVA";
System.out.println (saludo);
}
}
Ya no hemos metido toda la cadena de caracteres, en vez de ella, hemos escrito la variable declarada antes, saludo. Cuando ejecutemos el código, el programa nos imprime el texto.
4.5.8 ERRORES SINTACTICOS
A la hora de programar en java, es común que nos ocurran ciertos errores, ya sea de tipografía o de estructura, es importante entonces ir mirando a la izquierda de nuestras líneas de código que se van marcando, como podemos observar en la figura siguiente:



EJERCICIOS PROPUESTOS
1.Crear un programa que imprima Hola Android.
2.Crear un programa que pida ingresar el Nro de horas, luego el valor por hora y finalmente que ejecute el total del jornal percibido por el trabajador.
3.Realice un programa que halle la superficie de un cuadrado. Una vez ejecutado y probado, modifique el ejercicio para que realice la superficie de un rectángulo.
4.Confeccione un programa en que dados 2 números; primero realice la suma de ellos y luego que los multiplique. Pruebe luego con la resta y la división.
Nota.- Para todos los casos el alumno deberá reproducir con lápiz y papel el algoritmo del programa. Puede utilizar los ya aprendidos: pseudocódigos o Diagramas de flujo.

Bueno gente, si quieren las soluciones deberían primero hacer el intento y cuando estén al borde del colapso y el suicidio, (¡paren ahí!) me mandan un mensaje y les mando las soluciones.
Abrazo grande a mis alumnos y nos vemos en la próxima clase, en donde nos metemos un poquito más en este fabuloso lenguaje.