domingo, 6 de febrero de 2011

Bloque I: Introducción al lenguaje de programación Java. (Parte II)

Hola amig@s, en ésta entrada voy a hablaros sobre las estructuras de control de Java y algunas de las características más importantes de las Clases. 


Estructuras de control en Java:
  • Java es un lenguaje de programación estructurado, posee estructuras de control.
  • Una estructura de control sirve para decidir sobre el flujo de ejecución de un programa.
  • Las estructuras de control típicas son las condicionales y las de repetición.
  • La programación estructura debe definir un único punto de entrad a la estructura y un único punto de salida.


Clases:


1.- Caracteristicas Generales:

    • Java es un lenguaje de programación orientado a objetos. Lo único que le sobra a Java para que sea puramente orientada a objetos son los tipos primitivos. De hecho pocos lenguajes pueden denominarse como lenguajes puramente orientado a objetos.
    • Un objeto encapsula atributos y métodos. En Java no puede existir código fuera de una clase.
    • En la programación orientada a objetos estos “colaboran” entre sí para alcanzar un objetivo.
    • La colaboración se establece mediante el paso de mensajes (llamadas a métodos).
2.- Características según el ámbito:
    • Todos los atributos deben de ser por omisión privados, solo tendrán una característica diferente cuando sepamos bien lo que pretendemos y sus implicaciones con el nuevo ámbito. 
    • Todo atributo -por convenio- comienza con minúscula.
3.- Modificadores:
    • STATIC: Implica que se el atributo es compartido por todas las instancias de la clase. Es decir que cualquier cambio sobre el valor en una clase será visto por el resto. A colación de ésto, un error bastante frecuente en éste sentido es definir como private un atributo, y con un método STATIC intentar hacer un cambio de dicho atributo. Esto por definición es incoherente, y dará un error en su compilación.
    • El acceso a los atributos puede realizarse desde la propia clase, o desde una instancia de la misma:
      • p.attEstatico; (Ojo, fijémonos que la p es minúscula por lo que es una instancia).
      • ClaseEjemplo.attEstatico;
4.- Métodos:
    • Usamos void como en C++ para indicar que no devuelve nada un método.
    • Los métodos empiezan por minúscula.
    • Los modificadores pueden aplicarse sobre los métodos:
      • UnaClase.cuantasInstancias();
    • Es común utilizar this para romper la ambigüedad con los parámetros del método pero no es algo obligatorio.
    • Es posible encontrar bloques de código STATIC dentro de las clases ejerciendo una tarea de inicialización de estrucuturas:
 public class bloqueStatic {
    static double tablaSeno[] = new double[360];
    static {
      for(int i = 0; i < 360; i++)
         tablaSeno[i] = Math.sin(Math.PI*i/180.0);
   }

  public static void main (String args[]) {
    for(int i = 0; i < 360; i++)
    System.out.println("Angulo: "+i+" Seno="+tablaSeno[i]);
  }
}
    • Los objetos no se pasan por valor, siempre por referencia.
    • La sobrecarga existe a efecto del número de argumentos y de los tipos de argumentos:
      • void metodo(); //OK
      • void metodo(int a); //OK
      • void metodo(float a); //OK
      • float metodo(float a); //ERROR, los métodos no se distinguen por el valor de retorno.

Bueno, hasta aquí las dos primeras clases del programa.
Espero que sea de vuestro interés. 

Bloque I: Introducción al lenguaje de programación Java. (Parte I)



Es esta la parte más teórica y por tanto la menos atractiva para teclados inquietos, pero no por ello la menos importante. De hecho este bloque es el pilar básico sobre el que empezar a construir nuestros proyectos. Yo tengo la ventaja de venir de C y C++ por lo que a nivel de sintaxis no requiere de un gran esfuerzo por mi parte el adaptarme a este lenguaje.
Voy a empezar por incluir algunos enlaces al material que recibimos, y que para todos aquellos que quieran mejorar, empezar o simplemente curiosear puedan tener un soporte documental de dominio público:

Aquí os dejo algunas de las herramientas necesarias -aunque no las únicas del mercado- para empezar a desarrollar profesionalmente en Java:
A continuación voy a hacer un pequeño ejercicio de reflexión sobre los puntos más interesantes tratados durante mi primera clase.


  • Java es un lenguaje de programación de propósito general y orientado a objetos.
  • Su sintaxis es muy parecida a C++.
  • Se han eliminado características de C++ (punteros, sobrecarga) y se han añadido nuevas (seguridad, recolector de basura, concurrencia).
  • Es un lenguaje tanto compilado como interpretado.
  • Las herramientas de desarrollo son libres.
  • Java da soporte a un gran número de tecnologías de la programación: redes, gráficos, multimedia, XML, etc.
  • Asimismo, hay muchas palabras reservadas comunes entre los dos lenguajes (C++ y Java).
  • Una característica que no encontramos en C/C++ son los comentarios de documentación. Java tiene una herramienta muy potente denominada JavaDoc, es la usada por SUN (ahora Oracle) para generar toda la documentación necesaria durante el desarrollo de Java y sus APIs.
  • En Java existes dos grupos de tipos de datos: primitivos y referencia.
  • Los tipos primitivos tienen el mismo tamaño independientemente de la plataforma.
  • La declaración y el ámbito de las variables es similar a C++.
  • Se han eliminado los operadores sobre punteros. La precedencia de los operadores es similar a C++.
  • Los arrays funcionan de manera distinta a C++, un array reserva espacio para contener referencias, pero no crea los objetos a los que referenciarán.
Pronto más.