sábado, 28 de diciembre de 2013

Tutorial Java en Linux Basico 1

Comenzamos con los tutoriales de Java,antes que nada una pequeña aclaración sobre estos tutoriales:

Java es un lenguaje mas avanzado que los que hemos visto hasta ahora ya que se compila,usa definición de tipos y muchas clases para trabajar distintas cosas,así que este lenguaje lo que voy a hacer es como lo hice con bash va a haber un nivel de dificultad para que se entienda o mejor dicho no se complique para los nuevos usuarios,ya que hasta en el programa mas básico que es el hola mundo si explicara todo lo que se usa ahí se complicaría un poco la explicación porque si son usuarios medios/avanzados y quisieran explicar bien como funciona el Hola Mundo en Java desde los modificadores que usa hasta los parámetros que se pasan al main y de ahí explican lo relacionado con eso y luego lo relacionado con eso,pueden explica java a un nivel avanzado,así que voy a dividir los tutoriales en cuatro niveles básico,medio,avanzado y otras cosas como bases de datos,GUI,etc.

En este caso veremos tipos de datos y modificadores:

Nota: Van a faltar algunos,los que considero algo mas avanzados y que veremos en su momento.

En Java para definir una variable tenemos que definir primero el tipo de dato que contiene,por ejemplo no podemos solamente escribir:
variable = 1

o
var = "hola mundo"
Necesitamos definir que tipo de dato contienen,para "ayudarle" a java a administrar la memoria,como en el caso de C.

En el caso anterior seria así:
int variable = 1;
String var = "hola mundo";

En java casi todo son objetos excepto los tipos primitivos,los objetos llamados asi son clases con metodos(funciones),asi que los tipos primitivos no tienen metodos,son solo la definición y el uso que les demos como tal:

Tipos primitivos:


Palabra Tipo                     En memoria

int     Entero                   4 byte

boolean true o false             1 byte

char    Caracter                 2 bytes

long    Entero                   8 bytes

float   Decimal de una precicion 4 bytes

void    Vacio


Cambien contamos con los tipos objeto,que para comenzar mencionaría los tipos envueltos, o wrapper(en ingles),los tipos wrapper son los tipos primitivos pero como Objetos(con Metodos),veamos su equivalentes:

Integer

Boolean

Character

Long

Float

^ Estos  datos son la equivalencia de los primitivos pero en Objetos,para una manipulación en conjunto con otros objetos mas sencilla.

También tenemos los tipos de Objetos de la librería estándar de Java que solo citare en este momento:

String  Cadena de texto
Para definir tipos sencillos de datos siempre es bueno usar los tipos primitivos,por ejemplo no es muy necesario usar:

Integer val = 10;

Vamos a ver los modificadores de acceso que usa Java,los modificadores de acceso lo usa para controlar el alcance de las variables,estos son los modificadores de acceso mas sencillos de java:

public

Este modificador permite acceder a dicho elemento desde cualquier clase o paquete.

private

Este modificador permite acceder a dicho elemento solo desde la clase que lo creo util para los parámetros.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class hola {

   private int x;

   hola(int x){

      this.x = x; // this menciona x de la clase,x menciona x por parametro

   }

   int getX(){

      return this.x; // Podemos usar x de la clase

   }

}

final

Este modificador permite crear lo que serian constantes,ya que el valor que se les asigna no puede cambiar,por ejemplo es bueno para crear valores que no cambian,como nombres valores numéricos(como PI),etc.

Cabe mencionar que el valor de final no puede ser cambiado como en principio(su referencia) pero se puede modificar el valor que ya tiene(en objeto),un código explica mejor que yo:


1
2
3
4
5
6
7
final String n = "itimetux.com";

val = "Tiempo de Tux"; // No sirve

final String n = "Tiempo de ";

String s = n.concat("Tux");


static

El modificador static,este modificador es un poco mas avanzado y no quería mencionarlo pero lo incluye hasta el programa mas simple,ya que lo incluye el main de nuestro programa,así hay que mencionarlo.

El modificador static se usa para evitar hacer referencias de un objeto,por ejemplo tenemos el ejemplo de arriba(el que dice hola),para usar getX seria de esta manera:

hola var = new hola(1); // Primero creamos la referencia

Luego lo llamamos así:

var.getX();

Si fuera static no necesitamos referencias,esta seria la versión:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class hola {

   private static int x = 1;

   static int getX(){

      return x; // Podemos usar x de la clase

   }

}


Para llamar la función getX lo hacemos así:
hola.getX();
Aunque también podemos usarlos desde instancias de clases:

hola var = new hola();
var.getX();

Con el modificador static también contamos con una función estatica,o mejor dicho un bloque ya que solo lleva la palabra, static,este es un inicializador statico que se ejecuta una y solo una vez:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class hola {

   private int x = 10;

   static { // Inicio estatico

	  	System.out.println("Iniciada clase");

   }

   int getX(){

      return x; // Podemos usar x de la clase

   }

}

Si en la clase principla usamos:

hola var = new hola();

hola var2 = new hola();

Solo veremos un mensaje.

abstract

Este modificador indica que no se van a implementar los métodos dentro de una clase si no que los implementaran desde clases que se extiendan de las mismas(Lo veremos en herencia).

Bien ahora si vamos a ver el Hola Mundo en Java:

Abrimos un archivo llamado hola.java,por ejemplo:

En terminal,con vim:

vim hola.java

Y en su interior:


1
2
3
4
5
6
7
8
9
public class hola {

   public static void main(String [] argumentos) {

      System.out.println("Hola mundo");

   }

}

Vamos a explicarlo :


1
2
3
4
5
public class hola // Clase publica debe llevar el mismo nombre que el archivo si es publica

public static void main(String [] argumentos) // metodo publico,main es el primer metodo que ejecuta el programa,es estatico(static) para que no necesitemos referencia,es vacio(void) porque no tiene retorno,los agumentos pasados son indefinidos,podemos pasarlos desde la linea de comandos,por eso son recibidos en el constructor mediante un array de Strings.

System.out.println("Hola mundo"); // Salida estandar,tambien tenemos print,printf,println agrega "\n" nueva linea

Bien como vemos no es muy complicado un poco mas largo que en los lenguajes como ruby,python,lua pero es sencillo si se comprende.

Para ejecutar debemos compilar:

javac hola.java

Luego ejecutamos así:

java hola



De hecho se nos crea un archivo hola.class,pero no es necesesario el .class al ejecutar.



2 comentarios:

  1. Bastante Claro :D!

    Esperando el segundo tutorial, otra cosa, ya no piensas seguir con Lua?!

    Otra cosa, andaba buscando en el blog algun post para personalizar mi terminal y tenerla semejante a la tuya y no me tope con nada parecido. Me pasas el contenido del mismo para agregarlo a mi bashrc?

    SaludoS!

    ResponderBorrar
  2. Sobre lua ya no he tenido tiempo,tal vez en unos dias coloque algún tutorial,y para la terminal si te refieres a los colores,puedes ver este tutorial:

    Enlace

    En la terminal de este tutorial solo tengo esto:

    PS1="\u@\h{\w} \$ "


    Saludos :D

    ResponderBorrar

Los comentarios serán revisados antes de ser publicados.