Conoce Java

Es un lenguaje de programación en la que su sintaxis está basado en gran parte por C y C++ y es un lenguaje fuertemente tipado,. Desarrollado por Sun Microsystems cuyo lema era "escribir una vez, ejecutarse en cualquier parte". Esto es gracias a la máquina virtual de Java que se encarga de interpretar y ejecutar los bytecodes, generado por el compilador de Java. Gracias a esto, es capaz de leer y ejecutar código independientemente de la plataforma desde que sea ejecutado. Para poder desarrollar código con Java necesitamos unas herramientas que nos las proporciona Sun a través de su JDK (Java Development Kit). Para empezar a usar JDK es necesario hacer la descarga, puedes acudir a la web de Oracle y tras la ejecución del programa de instalación obtendremos unos directorios específicos:  

  • bin: Se encuentran todos los ejecutables de JDK.
  1. javac.exe: es el compilador, compila los ficheros **.java**.
  2. java.exe: es el intérprete, ejecuta los ficheros compilados (**.class**) y ejecutarlos.
  3. javadoc.exe: generador de documentación.
  4. jdb.exe: es el depurador.
  • demo:Ejemplos que ha desarrollado Sun con propósitos didácticos, sobre todo de Applets, y JFC (Java Fundation Classes).
  • docs: Aquí se encuentra la documentación API de Java (no viene por defecto, es necesario instalarlo).
  • lib: Aquí se encuentran las clases de Java y que conforman el API. Están comprimidas en un fichero que se llama tools.jar.
  •  jre: Java RUn Environment. Entorno de ejecución de Java. Para que nuestras aplicaciones funcionen correctamente, es necesario configurar dos variables de entorno, en este caso para _Windows_:  
  1. PATH: es la ruta hascia los ejecutables del JDK.
  2. CLASSPATH: es la ruta hacia las clases que importemos en nuestros programas. Es necesario para que el compilador (javac) encuentre las clases y no olvidar introducir el propio directorio (.) para no tener errores.
  3. set CLASSPATH=%CLASSPATH%;C:\Program FIles\Java\jdk(version)\lib\tools.jar. set path=%path%;C:\Program Files\Java\jdk(version)\bin 
    Para configurar el entorno en _Linux_:
    export JAVA_HOME = /usr/lib/jvm/java-9-openjdk export PATH = $PATH:/usr/lib/jvm/java-9-openjdk/bin

Estas rutas pueden ser las predeterminadas, hay que seleccionar la que tengamos en nuestro equipo.

Orientado a Objetos.

Cuando alguien viene de utilizar programación procedimental (como es mi caso) el hecho de encontrar un lenguaje de programación orientado a objetos, puede ser algo complicado de entender. Esta programación está basada en la herencia, en la abstracción, en polimorfismo, encapsulación...Términos que quizás no entiendas.... pero poco a poco le darás sentido. Java es un lenguaje de programación totalmente orientado a objetos, donde estos son ejemplares (instancias) de una clase. En las clases se especifican los atributos (datos) de los objetos y se definen los métodos que permiten realizar operaciones sobre dichos atributos. El ejemplo más claro, Vehículo.

public class Vehiculo {
 //Definimos la clase y sus atributos private String marca;
    private String modelo;
    private int kilometraje;

    public Vehiculo(String ma, String mo) { //Constructor 
        this.marca = ma;
        this.modelo = mo;
        this.kilometraje = 0; 
    }
    public int getKilometraje() { //Métodos 
        return this.kilometraje; 
    }
    public void recorre(int km) { 
        this.kilometraje += km;
        Vehiculo.kilometrajeTotal += km;
    } 
}

Si nosotros creamos otro objeto que se llame Furgoneta y hacemos que extienda de Vehículo (es decir, herede) en el objeto Furgoneta tendremos los atributos y métodos de Coche más los propios de Fugoneta.

public class Furgoneta extends Coche {
    private int volumenCarga;
    public Furgoneta(int carga) { 
        super(marca, modelo, kilometraje);
        this.volumenCarga = carga; 
    }
    public int getvolumenCarga() {
        return this.volumenCarga; 
    } 
    public void setVolumenCarga(int carg) { 
        this.volumenCarga += carg;
        Furgoneta.volumenCarga += carg;
    } 
} 

Toda clase suele tener los famosos métodos "_getter y setters_". Para saber más sobre esto, pulsa en más información :

 El polimorfismo es la habilidad de una función, método, variable u objeto de poseer varias formas distintas. Podríamos decir que un mismo identificador comparte varios significados diferentes. El poliformismo está muy ligado a la herencia. Si en algún momento queremos podemos sobreescribir algún método heredado (polimorfismo de asignación), o sobrecargarlo con diferentes parámetros (polimorfismo de sobrecarga), redefinir un método (polimorfismo de inclusión)....

La encapsulación consiste en la ocultación del estado o de los datos miembro de un objeto, de forma que sólo es posible modificar los mismos mediante los métodos definidos para dicho objeto. Para ello se utilizan modificadores que pueden ser:

  • Private: es el más restrictivo de todos, sólo es visible dentro del ámbito del que se declara. Es buena práctica declararlo así siempre que sea posible.
  • Public: se podrá acceder a él desde cualquier clase.
  • Protected: se pueden acceder a él por todas las clases y subclases que estén en el mismo paquete en donde estén declarados. Es muy complicado explicar la programación Orientada a Objetos en unas pocas líneas, ya que es tal la potencia de este lenguaje que cualquier cosa que pueda decir se queda corto. Sólo quería explicar a grandes rasgos cuales son las características más importantes, aunque como digo, se quedan muchas cosas en el tintero.