martes, 15 de octubre de 2013

Tutorial Java en Linux Introduccion

Tengo pensado traer un nuevo lenguaje de programación al sitio y uno de ellos es Java,en las siguientes entradas haré algunos tutoriales de lenguajes de programación que no he traído al sitio y tenia pensado preguntar que lenguaje les gustaría que hiciera tutoriales,pero como no hay mucha respuesta me basare en las estadísticas aunque se caiga el poco SEO que queda,asi que en los próximos días veremos nuevos lenguajes en el sitio y basado en la respuesta que vea dejare alguno.

Como no es un tutorial muy propio del mismo lenguaje no voy a entrar en detalles muy técnicos,Java es un lenguaje diseñado por Sun Microsystems cuenta con una implementacion un tanto libre llamada OpenJDK que tiene una licencia GPL con linking exception,así que para los amantes de lo libre pueden usar OpenJDK para programar.

OpenJDK es la versión libre de JDK(Java Development Kit) es el kit de desarrollo para Java,el cual se debe instalar para poder usarlo.

Otra ventaja que tiene Java es que es multiplataforma por lo cual si hacemos algo en Windows lo podemos traer a Linux(usando las librerías especificas) por ejemplo,solo que el otro lado de la modena de esto es que Java tiene su propia maquina virtual JVM(Java Virtual Machine) la cual hace una doble ejecución,primero la maquina y luego la ejecución del código en la maquina,ademas esto se traduce en bytecode para que lo lea la JVM y luego la ejecución en el sistema,es algo así como en Lua.

Otra cosa que hay que tener en cuenta es que Java es puro OPP,Programación Orientada a Objetos,la cual en mi punto de vista es muy lenta en java ya que son variables de objetos de variables de variables de variables de variables,por lo cual veremos mucho algo como:

var.var.var.var.var();

Es una opinión muy propia,pero la pueden tomar en cuenta.

Java es muy bueno para aprender ya que es un lenguaje de programación total muy popular por lo cual podremos crear programas y aplicaciones profesionales.

Bien vamos a comenzar:

Primero instalamos Java,en Ubuntu podemos instalar Java 7 con este comando:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java7-installer

O OpenJDK con:

sudo apt-get install openjdk-7-jdk

Para otros sistemas googlen.

Hola Mundo,este programa es muy básico el cual consta en mostrar en la salida estándar(consola) el mensaje Hola Mundo,vamos a verlo y en seguida lo explico:

Primero que nada abrimos nuestro editor de texto,yo uso vim pero si necesitamos hacer algo mas rápido o con ayuda les recomiendo instalar eclipse.

Pero en este tutorial vamos a usar un editor de texto común,primero que nada abrimos nuestro archivo,en mi caso:

Desde terminal.

vim hola.java

O por ejemplo con gedit(un editor grafico):

gedit hola.java &

El nombre del archivo es el nombre de la clase,el nombre principal,así que vamos a definir nuestra clase y adentro nuestro constructor:


public class hola {
    public static void main(String[] args) {
        System.out.println("Hola Mundo");
    }
}

Ahora necesitamos compilar a bytecode:

javac hola.java

Y por ultimo ejecutamos:

java hola



Y listo Hola Mundo,como ven al ejecutar java no necesitamos usar el nombre completo del archivo creado que seria hola.class,vamos a explicar linea a linea ya que es un poco diferente a los programas de script que hemos visto:


public class hola { // Crea una clase llamada hola de instancia publica

public static void main(String[] args) { // Iniciamos la clase con el metodo(funcion) main

public // Instancia publica

static // Modificador static,se usa para poder usar metodos de un objeto sin definirlo

void // Tipo de retorno de la funcion en este caso ninguna(vacia->[void])

main // Metodo principal que inicia el programa principal y en este caso la clase hola

(String[] args) // Es el parámetro que le pasamos a la función main o en este caso que nos pasa el sistema,lo que esta adentro es un vector compuesto de variables tipo string,en otras palabras es un array de strings,el cual contiene los parámetros pasados desde la terminal o desde el Path del ejecutable.

System.out.println("Hola Mundo"); // Esta es una función de System que a la vez entra a out que a la vez llama a println al cual le pasamos un parámetro que en esta ocasión es el texto Hola Mundo:


Vamos a comenzar con las variables,esta estructura siempre la vamos a ver:


public class clase {
    public static void main(String[] args) {
        // Codigo
    }
}


En java podemos escribir comentarios con // o podemos escribir comentarios en varias lineas con (/**/):


// Comentario

/* comentarios */

/************
  
 Comentario  
    
*************/


En java debes escribir el tipo de variable antes de iniciarla,los tipos mas comunes con:

boolean => true o false

int => Numero entero

long => Numero entero largo

short => Numero entero corto

float => Numero de coma flotante de precicion simple

double => Numero de coma flotante de doble precision

char => Carácter

String => Cadena

void => Nada


Por ejemplo:

boolean no = false;

int x = 100;

long y = 143435435675;

short z = 1;

float xy = 10.1;

double yx = 123213.2421421421;

char a = '\u0061';

String cadena = "Hola Mundo";

En el caso de los caracteres son caracteres Unicode,los primeros son de ASCII pero también podemos poner directamente un carácter.

char a = 'a';
También hay que recordar que en Java debemos terminar cada linea con punto y coma.

O un numero que se pasara a carácter:


for (int i = 48;i < 91;++i)
{
    System.out.printf("%c\n",i);
}

En el caso de los argumentos usamos un vector de strings,es algo que veremos si se queda java,pero podemos ver un array de una dimensión (vector o arreglo unidimensional
) de strings fácilmente:

public class hola {
    public static void main(String[] args) {
        String[] abs = new String[2]; // Creamos un vector de strings
        abs[0] = "Hola"; // <- Comenzamos el valor desde cero
        abs[1] = " Mundo";
        String[] abc = {"Hola"," Mundo"}; // <- Esto equivale lo mismo
        System.out.println(abs[0]+abs[1]);
        System.out.println(abc[0]+abc[1]);
    }
}

Vamos a emular lo que nos pasa la linea de comandos:


public class hola {
    public static void main(String[] args) {
        String[] abs = new String[2]; // Creamos un vector de strings
        abs[0] = "Hola";
        abs[1] = " Mundo";
        String[] abc = {"Hola"," Mundo"}; // <- Esto equivale lo mismo
        ver(abc); // Pasamos el vector
    }
    static void ver(String[] args) { // El parametro es el mismo tipo que le pasamos arriba
        for (int i = 0;i < args.length;i++) // Lo recorremos
        {
            System.out.println(args[i]);
        }
   }
}

Vamos a verlo en uso:


public class hola {
    public static void main(String[] args) {
        for (int i = 0;i < args.length;i++)
        {
            String ar = String.format("Argumento %d : %s\n",i,args[i]);
            System.out.print(ar);
        }
    }
}

Podemos ejecutar así:



java hola Hola Mundo

Eso es una pequeña introducción a lo que seria Java,así que veremos en unos días si lo dejo.

7 comentarios:

  1. Genial, solo tengo dos observaciones que hacer:

    - Trata de explicar los temas conforme a un "newbie" y no como alguien ya con conocimientos previos en prog.

    - Estan bien detallados, solo haria falta un poco mas de ejemplo, de como funciona x o y cosa, etc.

    PD: Lo digo con fines sinceros y conforme a mejorar el contenido desde mi punto de vista :D!

    Otra cosa, estaria super bien echarle ganas y hacer unos tutos de: Gambas3, Lazarus, Sqlite, Mongo DB y Postgresql (uso basico y medio avanzado de dichas DB's) y en cuanto a los lenguajes de programacion, Python con Tkinter o QT, Lua igual :D!

    Saludos!

    ResponderBorrar
  2. Gracias,lo tendré en cuenta :D.

    Sobre Gambas tendría que verlo un poco ya que no lo conozco mucho,yo use un tiempo Visual Basic en Windows y dicen que es similar asi que cuando pueda veremos unos tutoriales,sobre Lazarus tambien es similar pero a Delphi el cual no me gusta mucho así que lo mas seguro es que no lo veremos por aquí.

    Pero haré algunos tutoriales para MongoDB y SQLite sobre su propia shell,Postgresql ya veremos :D.

    Saludos.

    ResponderBorrar
  3. muy bueno ,a mi me vinieron muy buenos los tutos de python asi que si podrias seguir publicando entradas de dicho lenguaje en cosas avanzadas o varias entradas para realizar un proyecto de python + GUI.saludos

    ResponderBorrar
  4. Si, de hecho use un tiempo atras Gambas en su version 2 y es practicamente el mismo VB6 de Microsoft.

    Por lo demas en espera a ver que tienes bajo la manga.

    Saludos!

    ResponderBorrar
  5. Disculpa man, sobre los IDE para programar en JAVA, te inclinas por eclipse o netbeans?.

    PD: Otra cosa, veremos estos proximos tutoriales de programacion a fondo para ligarnos en algun proyecto en concreto o solo lo introductorio?.

    PD: Off-Topic: Podrias darme el plugin o codigo quiza Javascript que detecta el navegador y sistema operativo de un "guest" una vez entre al blog?

    Saludos!

    ResponderBorrar
  6. Netbeans no lo he probado,dicen que es bueno pero a mi me gusto tanto eclipse que ya no probé otro.

    De momento es solo introductorio,tal vez en el futuro hagamos algo incluso con github o algo similar pero de momento solo es introductorio,ademas no hay mucha respuesta en las entradas por eso solo me centro en lo básico y iré aumentando el nivel poco a poco.

    Si es para blogspot,solo puedes usar javascript,yo hice este hace tiempo que es el que muestro en esta pagina:

    Enlace

    Se abre cada vez que entras al sitio,solo añádelo en widgets.

    Saludos :D

    ResponderBorrar
  7. Genial :D!.. Muchisimas gracias compa!.

    Con respecto a los IDEs pues, me quedare con Eclipse por Egit :D!

    Saludos!

    ResponderBorrar

Los comentarios serán revisados antes de ser publicados.