Antes que nada quiero decir que este tutorial va dirigido a personas que ya tienen conocimientos de programación, en especial si vienes de otro lenguaje orientado a objetos. No me voy a poner a explicar a fondo para que funciona cada cosa, simplemente explicare como es la estructura de la POO en Java.
Creando clases:
NOTA: Cuando creas una clase, dicha clase tiene que ser almacenada en un archivo de texto con la extensión ".java", y ese archivo tiene que tener el mismo nombre de la clase.
Ya dentro del archivo creas la clase de la siguiente manera:
Código
public class NombreDeLaClase {}
Como vemos, en Java es recomendable que sigamos en siguiente formato para el nombre de las clases, empezamos con mayúsculas y cuando empieza otra palabra, la primera letra en mayúscula, a esta forma de escribir se denomina UpperCamelCase.
Y entre las llaves de la clase definiremos, los atributos, métodos, y todas las características que queremos que tenga la clase.
Creando métodos:
La estructura de un método en Java es la siguiente:
Código
public void nombreDelMetodo() {}
Como vemos, en Java es recomendable que sigamos en siguiente formato para el nombre de los métodos, empezamos con minúscula y cuando empieza otra palabra, la primera letra en mayúscula, a esta forma de escribir se denomina lowerCamelCase.
Y dentro de las llaves del método, implementaremos nuestro código.
En Java podemos tener varios métodos con el mismo nombre, pero con la diferencia que deben recibir diferentes parámetros.
Recibir parámetros:
Para que un método reciba parámetros, debemos especificarlos entre los paréntesis, así:
Código
Devolviendo valores:
En Java para que un método devuelva un valor, primeros debemos especificar que va devolver ese método, no podemos devolver cualquier valor que nosotros queramos, como se haría en Python por ejemplo, en Java primero se define que es lo que se va a devolver, si es un String, un entero, etc. Y eso lo definimos de la siguiente manera:
Cuando un método tiene la palabra "void", significa que no va a devolver nada:
Código
Si queremos que devuelva algo, simplemente cambiamos el "void", por el valor que queremos devolver, si qusieramos devolver una cadena, lo haríamos de la siguiente forma:
public void nombreDelMetodo() {}
Código
También es posible devolver, arreglos y hasta objetos, solo es cuestión de especificar que devolver.
Atributos y ámbitos:
Con ámbito, me refiero al alcance que tienen las variables para que se puedan llamar unas a otras dentro de la clase.
En Java tenemos básicamente 2 ámbitos de las variables, ellas pueden ser:
Variables de clase:
Estas variables son visibles para toda la clase, es decir que pueden ser accedida por todos los métodos de la misma.
Estas se definen fuera de los métodos, es decir al mismo nivel en el que se definen los métodos de la clase:
Código
Variables de método:
public class NombreDeLaClase { }
Estas variables, se definen dentro de los métodos, y solo pueden ser accedidas por el método en donde fueron declaradas:
Código
Si quisiéramos llamar la variable cadena, desde otro método, simplemente no podremos, dará error y dirá que no se encuentra esa variable.
public class NombreDeLaClase { public void nombreDelMetodo() { } }
Constructor de la clase:
Como en todo lenguaje siempre tenemos el constructor, que es el primer método que se ejecuta cuando se instancia un objeto de la clase, para crear un constructor basta con crear un método con el mismo nombre de la clase y ya tendremos uno:
Código
public class Animal { public void Animal() { //Código a ejecutar } }
También podemos tener varios constructores con el mismo nombre, pero con la diferencia que deben recibir diferentes parámetros.
NOTA: Los constructores no pueden devolver valores, ni siquiera se pone el "void", pero si pueden contener parámetros.
Herencia:
En Java solo podemos hacer una herencia de otra clase, no se permite la herencia múltiple.
Para heredar de otra clase, simplemente debemos poner al lado del nombre de la clase lo siguiente:
Código
Y se vería de la siguiente forma:
extends NombreDeLaClaseAHeredar
Código
En este ejemplo estaríamos heredando los atributos y métodos de la clase Animal.
public class Perro extends Animal{ }
Llamar al constructor de la superclase:
En muchos casos necesitaremos llamar al constructor de la superclase para pasarle parámetros.
Para hacerlo, llamamos este método super() y entre los paréntesis, le pasamos los parámetros que requiere la superclase. Pero este método solo puede llamarse desde el constructor, y debe estar en la primera linea del método constructor:
Código
public class Perro extends Animal{ public Animal() { super("perro"); } }
Modificadores de acceso(Encapsulamiento):
En Java existen los modificadores de acceso, que son los permisos que le podemos poner a los atributos y métodos. Estos nos permiten determinar si los atributos o métodos, pueden ser accedidos desde un determinado lugar.
Estos modificadores se colocan al principio de la definición de un atributo o método, por ejemplo el modificador "private":
Código
private void metodo() {}//Metodo
Tenemos diferentes modificadores:
public:
El método o atributo podrá ser accedido desde cualquier lugar.
protected:
El método o atributo que lo posea, solo podrá ser accedido por la misma clase o por las clases que lo hereden.
defualt:
Este "modificador" en realidad no es un modificador, y se define cuando no ponemos ningún modificador de acceso. Y el método o atributo que lo posea solo podrá ser accedido por clases que estén en el mismo paquete.
private:
El método o atributo que lo posea, solo podrá ser accedido por la misma clase.
Creando objetos:
Para crear objetos es tan sencillo como hacer esto:
Código
Como ven primero especificamos de que tipo sera nuestra variable, en este caso sera una clase, de tipo "Perro", luego le ponemos un nombre, y después del signo ponemos la palabra reservada "new", para indicar que estamos creando un nuevo objeto, después volvemos a escribir el nombre de la clase("Perro") y entre los paréntesis le pasamos los parámetros al constructor del objeto, si es que lo requiere.
Perro perro1 = new Perro("Toby");
Accediendo a los atributos y métodos del objeto:
Luego que tengamos nuestro objeto creado, podremos acceder a los atributos y métodos que posea el objeto. Para ello debemos poner el nombre del objeto y luego un punto y después podremos llamar atributos y ejecutar funciones de ese objeto:
Código
Perro perro1 = new Perro("Toby"); perro1.ladrar();
Hasta ahí lo mas básico de la programación orientada a objetos en Java, espero que sirva de ayuda para la gente que quiera aprender este maravilloso lenguaje, sobre todo para los que ya tienen experiencia en otros lenguajes y no quieran empezar un curso de cero.
Un saludo a todos!