Hola a todos, hoy os explicare que es la programación orientada a objetos en Java, daremos algunos conceptos y mostraremos algún ejemplo al respecto. Es algo que debemos tener muy claro.
La programación orientada a objetos es un paradigma de la programación que descompone el código de una clase en unidades llamados objetos.
Un objeto en Java es una entidad existente en la memoria del ordenador que tiene unas propiedades, llamados atributos, y unas operaciones disponibles específicas, llamados métodos.
Estos objetos vienen de clases, en realidad hasta ahora hemos usado una clase, solo que esta clase tenia un método ejecutable. Podemos crear una clase directamente en Eclipse. Al crear una clase desmarcamos la opción public static void main(String[] args)
Recuerda que por convención de nombres en Java, las clases no ejecutables deben escribirse la primera letra en mayúscula, si tiene mas de una palabra la primera letra se escribirá en mayúsculas y no se escribe al final App.
Por ejemplo, crearemos una clase empleado:
public class Empleado {}
Como hemos dicho, un objeto tiene unas propiedades, en el ejemplo anterior las propiedades podrían ser el nombre, el apellido, edad y sueldo, estas propiedades son llamados atributos en Java y se declaran igual que una variable, veremos que en Eclipse lo colorea de azul. No se inicializan. Veamos un ejemplo:
/** * Clase Empleado * * Contiene informacion de cada empleado * @author Fernando * @version 1.0 */ public class Empleado { //Atributos /** * Nombre del empleado */ private String nombre; /** * Apellido del empleado */ private String apellido; /** * Edad del empleado */ private int edad; /** * Salario del empleado */ private double salario; }
No te preocupes por lo de private, lo veremos mas adelante con detalle.
También hemos comentado, que podían realizar unas acciones con los objetos, llamados métodos. Se definen igual como hemos visto hasta ahora, excepto por static, también lo explicaremos mas adelante con detalle. Veamos un ejemplo de un método que incluya un plus al sueldo si tiene mas de 40 años:
/** * Clase Empleado * * Contiene informacion de cada empleado * * @author Fernando * @version 1.0 */<br />public class Empleado { //Atributos /** * Nombre del empleado */ private String nombre; /** * Apellido del empleado */ private String apellido; /** * Edad del empleado */ private int edad; /** * Salario del empleado */ private double salario; //Metodos /** * Suma un plus al salario del empleado si el empleado tiene mas de 40 años * @param sueldoPlus * */ public boolean plus (double sueldoPlus){ boolean aumento=false; if (edad>40){ salario+=sueldoPlus; aumento=true; } return aumento; } }
Como vemos, le pasamos por parámetro el plus, pero ¿por que no le pasamos la edad o el salario por parámetro? Esto es debido a que desde la propia clase puede acceder a todos sus atributos.
Solo nos falta crear un constructor, este es un método especial en las clases, que es el invocado al crear un nuevo objeto de esa clase, normalmente se suele usar para inicializar los atributos, también puede ejecutar métodos.
Si no definimos un constructor Java, nos construye uno por defecto, que no hace nada al crear el objeto. NOTA: si definimos un constructor, el constructor por defecto desaparece.
Para crear un constructor, escribiremos public nombre_clase (parámetros). Sigamos con el ejemplo:
/** * Clase Empleado * * Contiene informacion de cada empleado * * @author Fernando * @version 1.0 */ public class Empleado { //Atributos /** * Nombre del empleado */ private String nombre; /** * Apellido del empleado */ private String apellido; /** * Edad del empleado */ private int edad; /** * Salario del empleado */ private double salario; //Metodos /** * Suma un plus al salario del empleado si el empleado tiene mas de 40 años * @param sueldoPlus * */ public boolean plus (double sueldoPlus){ boolean aumento=false; if (edad>40){ salario+=sueldoPlus; aumento=true; } return aumento; } //Constructores /** * Constructor por defecto */ public Empleado(){ this.nombre=""; this.apellido=""; this.edad=0; this.salario=0; } /** * Constructor con 4 parametros * @param nombre nombre del empleado * @param apellido nombre del empleado * @param edad edad del empleado * @param salario salario del empleado */ public Empleado(String nombre, String apellido, int edad, double salario){ this.nombre=nombre; this.apellido=apellido; this.edad=edad; this.salario=salario; } }
Vemos que vemos una palabra nueva, this, lo veremos con mas detalle más adelante.
Lo mas normal es que se defina un constructor por defecto, es decir, sin parámetros donde se inicialicen los parámetros con un valor por defecto (como una constante, por ejemplo) y uno o varios con parámetros que nosotros le demos.
Ahora podemos crear un objeto de la clase Empleado, tantos como queramos. Debemos crear una nueva clase en el mismo proyecto, que contenga un método main. Para nuestro caso, lo llamaremos EmpleadoApp.
Para crear un objeto de una clase, seguiremos la siguiente sintaxis:
nombre_clase nombre_objeto=new nombre_clase (parametros_constructor);
En nuestro caso, sería:
Empleado empleado1=new Empleado («Fernando», «Ureña», 23, 800);
Si quisiéramos invocar el método por defecto, seria igual pero sin parámetros.
Una vez creado el objeto, podemos acceder a los métodos y atributos de la clase, si tienen un private no se podrá acceder a ellos.
Accedamos al método que hemos creado, usando el objeto creado, un punto y método o atributo:
public class EmpleadoApp { public static void main(String[] args) { Empleado empleado1=new Empleado ("Fernando", "Ureña", 23, 800); //Devolvera false System.out.println(empleado1.plus(30)); } }
Mas adelante veremos una manera sencilla de modificar y mostrar atributos.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Tengo problemas con la programación orientada a objetos y me esta sirviendo mucho estos tutoriales. Muchas gracias por compartir tu conocimiento conmigo
Muchas gracias me ha servido mucho, para mis clases.