jueves, 14 de febrero de 2013

Java: estructura básica

(Por petición) Post en PDF, con más info: 

¿Has descubierto Java recientemente y te parece interesante?
¿Quieres aprender Java pero no sabes por dónde empezar?
¿Te has descargado un JDK y no sabes cómo aprovecharlo?
¿Te has descargado un IDE y no sabes qué poner?
Entonces dale a Leer más...




Hoy os traigo una guía (casera) de Java básico, para pillar la estructura de este lenguaje.

Java, como cualquier lenguaje de programación orientado a objetos (POO) tiene dos conceptos fundamentales: CLASE y OBJETO.

Una clase es como si dijéramos un lugar donde hay varios atributos, constructores y métodos (y más cosas) de los objetos que se crean. Un objeto tiene los atributos (características) de la clase en la que se crea y los constructores deciden cómo se va a crear y con cuántos atributos. Los métodos son acciones que se aplican en el objeto en cuestión, como por ejemplo imprimirlo por pantalla. No tienen por qué estar los constructores y los métodos en la misma clase en la que se crea el objeto.

Ejemplo de clase:


En Java, para determinar cómo se debe usar una clase se usan dos palabras reservadas: public (el contenido de la clase se comparte con el resto del programa) y private (no se puede hacer referencia al contenido de la clase desde otra). También no se puede poner nada. Las clases public al crearse el programa se guardan en un archivo (clase1.java).

La gracia de la POO es manejar los objetos con los métodos. Un ejemplo de método es el siguiente:



Si hay varias clases en un mismo programa hay una que es la principal, que se llama igual que el archivo y siempre es public. Es principal porque contiene el método main, en el que "dar las órdenes":



*lo de static es que no hace falta hacer ningún objeto para usar el método

Un método puede desde sumar dos variables, modificarlas hasta imprimirlas por pantalla. Dependiendo de lo que haga no devolverá ningún valor (void) o devolverá desde un entero (int) hasta un booleano (boolean). Para devolver valores se usa la palabra reservada return, y en el encabezado del método hay que poner de qué tipo es la variable devuelta.



Un constructor no devuelve nada (pero no se pone void), sólo establece cómo se crea el objeto (con qué atributos). Los atributos (variables) están definidos al principio de la clase, antes de cualquier método o constructor. Se llaman igual que la clase. Si creamos varios constructores para crear objetos de la misma clase pero con diferentes atributos deben llamarse igual todos. Ejemplos de constructores:



Vale, supongamos que tenemos un programa persona.java con una clase que se llama Humano, donde ponemos tres atributos: nombre, apellido y edad; un constructor que si no se le pasan atributos los pone por defecto y otro que pone los datos con los atributos que le pasan; y dos métodos, uno para imprimir por pantalla los datos y otro para cambiarlos:



*this se usa cuando el nombre de la variable que pasas y el atributo que manejas son el mismo, es para distinguirlos. Si la variable que le pasara se llamara nuevoNombre, pasaría de this.nombre=nombre a nombre=nuevoNombre.

Ahora te preguntarás, ¿dónde creo al objeto? Se crea en el método main de la clase principal (es lo más conveniente y lo que más se hace), que se llama persona (igual que el archivo). Y, ¿cómo lo creo? Así:



Asique para crear nuestro objeto Humano con datos por defecto pondremos esto:



Y tendremos un objeto Humano llamado humano1, con nombre Fuckencio, apellido Martínez de 18 años de edad. Si queremos que se llame Rogelio Marín y tenga 58 años usaremos el otro constructor:



Ahora podremos usar los métodos que creamos en la otra clase con humano1. Para aplicar un método a un objeto se hace así:



Asique si queremos mostrar los datos de humano1 lo haremos así:



Y si queremos cambiar sus datos a Semencio Nalgastunas de edad 25, lo hacemos con el método que ya creamos:




¡Genial!, ¿verdad?
Lo realmente cojonudo de Java es que tiene herencia. La herencia es poder coger los atributos de una clase y usarlos en otra, además de los otros atributos que están en esa otra clase. Símplemente hay que poner en la cabecera de la clase un extends y el nombre de la otra clase de la que queramos usar los atributos y ya lo tendremos:



Si hacemos eso, el objeto Ciudadano que creemos tendrá nombre, apellido, edad y además dni. Eso sí, para usar los atributos de la clase Humano en un constructor en la clase Ciudadano hay que echar mano del super, para hacer referencia a los atributos añadidos que provienen de la superclase (de la que añadimos cosas (en este caso Humano), así usamos su constructor):



Y esto chicos/as es lo más básico de la estructura de Java, un lenguaje de POO muy famoso y útil para todo. ¡Comentad y darle +1 si os ha servido de algo!

4 comentarios:

Fran Juárez López dijo...

Oh maestro, me inclino ante ti, ahora me falta saber por que mierda me sale todo el rato:

Exception in thread "main" java.lang.NullPointerException

PML88 dijo...

Yyyyy.... dime discípulo xDD
cuándo te sale eso?

Alberto López dijo...

Miralo aquí tenemos al JAVA MASTER, QUE MAQUINA JAJAJ

PML88 dijo...

vayaaaa...
podrías hacerte un blog de informática y poner cómo crear bases de datos :P