He comenzado a leer el libro y me ha sorprendido gratamente. No me esperaba que fuese tan fácil de entender y al mismo tiempo tan interesante.
El libro comienza con una introducción bastante extensa, pretendiendo de alguna manera parecer informal y familiar con el lector, lo cual es bastante de agradecer por mi parte
(ya he dicho que me aburro de las cosas monótonas).
Estructura de un código de Java:
El primer aspecto a tener en cuenta, según el libro, es la estructura de un código en java:
Source file (.java);
Donde se supone que está el programa.
Class file;
Las cuales van dentro del source file y son las "piezas" del programa
Methods;
Los cuales van dentro de la Class file y son las "instrucciones" de como debería ejecutar una acciones la Clase
Statements;
Van dentro de los métodos y son la "forma de implementar dicho método", en otras palabras, los Methods no son más que un conjunto de Statements.
Como escribir una clase:
Todas los programas Java comienzan por una clase con un método
Main, lo cual será la primera cosa en ser ejecutada (y por tanto, todo aquello que se encuentre entre sus "Curly braces" o llaves).
La forma de esta clase es:
public class ElNombreDeLaClase { //esto es la clase principal, porque contiene el método main
public static void main (String [] args) { //esto es el método y lo de paréntesis es el argumento
System.out.print ("Escribe algo aquí"); //esto hace que escriba algo en la consola
}
}
En definitiva, no importa cual grande sea tu código (es decir, no importa que cantidad de clases tenga), siempre iniciará por el
method main.
¿Que puede ir dentro de un método?:
Dentro de un método podemos emplear toda la lógica ya conocida en cualquier otro lenguaje de programación (ya sea C, C++, etc...) para hacer que el programa haga algo (Statements, Loops, Branching...).
Con el código podemos decirle a la
JVM que:
1) Haga algo (Statements):
Mediante declaraciones:
int x=3;
String nombre= "Pepito";
Asignaciones:
x = x * 2;
Llamada a otros métodos:
System.out.print ("x es igual a" + x);
Comentarios:
//Hola, esto es un comentario. Los comentarios son ignorados por el compilador, así que es buena idea
//poner todos los comentarios necesarios para hacer el código más entendible.
2) Haga algo una y otra vez (Loops):
while (x<12) {
x=x-1;
}
for (int x=0; x<12; x=x+1) {
System.out.print("x es ahora " + x);
}
3) Hacer algo bajo una condición:
if (x==10) {
System.out.print("x debe ser igual a 10");
} else {
System.out.print("x NO debe ser igual a 10");
}
if ((x<3) & (name.equals("pepito"))) {
System.out.print("pues se cumplen esas dos condiciones");
}
//El resto de código, así como la explicación de estos se puede encontrar fácilmente en cualquier web.
Diferencia entre la programación "procedimental" y la orientada a objetos:
Aun no lo tengo claro, pero me atrevería a decir que la programación orientada a objetos divide (por decirlo de alguna forma) el código en "módulos" independientes entre sí los cuales iremos "invocando" en función de lo que necesitemos en cada momento. Mientras que la programación mediante procedimientos recorremos el código completamente y mediante los condicionantes se va determinando que es lo que hay que hacer en cada momento (estoy 100% seguro de que esta es la peor definición de la historia, pero no se me ocurre nada mas). El problema con la programación procedimental es que si cambia el objetivo de nuestro código, se le añaden nuevos factores a tener en cuenta, etc... El cambio que deberíamos hacerle a éste es mucho mayor que si dividimos nuestro código en varios pedacitos.
Diferencia entre una Clase y un Objeto:
No debemos confundir un objeto con una clase, los objetos con una "instancia" de una clase. Se podría hacer un símil al
dualismo Platónico entre los mundos sensible e inteligible ya que la clase es como un prototipo sin definir completamente, como una libreta de direcciones... Mientras que los objetos son casos particulares de esa clase "padre" adaptándose a un caso concreto, cada hoja de la libreta de direcciones tiene la misma estructura (nombre, teléfono, etc...) pero si rellenamos cada una con una persona diferente, cada hoja será diferente.
Como crear un objeto:
Para crear y usar un objeto necesito como mínimo
2 clases. Una clase para el tipo de objeto que quiero usar y otra clase para testearla. La
segunda clase es donde irá el método
main, y tiene solo un objetivo (probar la clase que he creado (la primera)).
De tal forma que tendremos siempre dos clases:
- La verdadera clase
- La clase "tester"
Ejemplo:
//mi clase verdadera es:
--------------------------------------------------------------
class Gato {
int tamaño;
String color;
//variables
String nombre;
void
sonido () {
System.out.println("miau miau");
//un método
}
}
--------------------------------------------------------------
//mi clase tester es:
--------------------------------------------------------------
class GatoTestDrive {
public static void main (string [] args){
Gato g = new Gato (); //Creo un objeto Gato
g.tamaño = 40; //uso el operador punto (.) para definir el tamaño del gato
g.sonido (); //así llamo al método "sonido"
}
}
--------------------------------------------------------------
Aquí termina esta entrada de "Aspectos básicos". Solo queda digerirlo y nos vemos prontooo!!
Extra:
JVM : Java Virtual Machine, Es la encargada de interpretar y arrancar el programa una vez ha sido compilado por el "
compiler".