Cuando hablamos de Programación orientada objetos nos referimos a un paradigma de la programación; este se basa más que todo en la utilización de objetos, los cuales también pueden ser llamado instancias. En esta nueva entrega de byspel nos centraremos en la explicación de todo lo relacionado con este paradigma de programación; es decir, la programación orientada a objetos en java.
La programación orientada a objetos es un enfoque de programación de los más populares, y viene teniendo gran aceptación en el desarrollo de proyectos de software.
Programación Orientada a Objetos en Java | POO en Java
Una de las cosas que hace tan importante la programación orientada a objetos es que esta permite la reutilización del código y esto genera que a su vez sea eficiente en cuanto a la estabilidad del software.
¿Qué es un Paradigma?: Es un punto de vista personal, modo de pensar, metáfora, visión del mundo; con respecto a la programación representa un enfoque particular o filosofía para la construcción del software.
Diferencias de la Programación Orientada a Objetos con la Programación Estructurada
Entre estos tipos o enfoques de programación, podemos resaltar aspectos como:
🌟 ¡Visita Nuestra Tienda para Programadores! 🌟Descubre Códigos Fuente, Cursos, Software, Computadoras, Accesorios y Regalos Exclusivos. ¡Todo lo que necesitas para llevar tu programación al siguiente nivel!
- La POO es moderna, podría mirarse como una evolución de la programación estructurada.
- En la POO se representan y unen objetos y sus funciones mediante clases.
- En la Programación estructurada las instrucciones se ejecutan línea por línea para alcanzar los resultados.
- La POO, permite mayor reutilización de código.
- Al utilizar POO, podemos construir Software, que son más fáciles de entender y mantener.
Veamos a continuación, algunos conceptos que serán necesarios para comprender la programación orientada a objetos
Clases
Una clase es una plantilla. Las clases son las encargadas de definir cada uno de los objetos; cada clase tiene sus atributos, que por decirlo de otra manera son sus propiedades. Ejemplo, tenemos la clase llamada personas, procedemos a definir cada una de las propiedades de una persona, el cual serían; Nombre, Apellido, Identificación, Teléfono, entre muchas otras.
Cada clase necesita tener métodos o también llamados funciones, el cual por decirlo de dicha manera serían las acciones que debe realizar la clase.
Diferencia entre constructor y métodos
Los constructores se utilizan para crear e inicializar objetos que no existen, en cambio los métodos necesitan tener objetos ya inicializados. Los constructores deben llamarse con el mismo nombre que el nombre de clase en el que se encuentran, mientras que los métodos pueden tener cualquier nombre en Java.
Nota: Utilizar constructores en una clase no es obligatorio, pero si nos brinda la posibilidad de establecer los atributos mínimos para la creación de objetos.
Métodos
Un método es un bloque de código que contiene una serie de instrucciones. Estos representan las operaciones que se pueden realizar con los objetos de la clase, para este ejemplo utilizaremos algunos atributos básicos que maneja un Auto.
Constructor
Es un conjunto de instrucciones diseñado especialmente para inicializar una instancia de un objeto. Pueden pasarse parámetros a un constructor, de la misma forma que una función.
Objetos
En POO podemos definir a un objeto como un conjunto de datos que tiene datos y funciones relacionadas. Estos se identifican por tener 2 características: Estado y comportamiento, tomando el anterior ejemplo vemos que la clase estado tiene varios estados; Nombre, Apellido, Edad y también comportamientos; caminar, comer, dormir.
¿Cómo crear una clase desde Java?
Para crear una clase en java, simplemente debemos especificar el tipo y el nombre de cada atributo y además también debemos especificar los métodos o funciones si existen o no, el tipo de dato que retornan, el nombre y los parámetros que reciben dichos métodos. Para eso debemos guiarnos de la estructura básica de una tabla, el cual es la siguiente.
Al definir una clase en Java, debemos utilizar la siguiente estructura.
En este ejemplo definiremos una clase llamada «Auto«, con dos atributos:
public class Auto { //Atributos public String placa; public String marca; //Constructor //Métodos }
Constructor de la clase Auto:
public class Auto { //Atributos public String placa; public String marca; //Constructor public Auto(String placa, String marca) { this.placa = placa; this.marca = marca; } //Métodos }
Si observamos, ahora nuestra clase cuenta con un constructor, el cual se ejecuta, siempre que se requiera crear un objeto, de tipo «Auto».
¿Qué métodos puedo definir para mi clase?
Todo depende de las acciones que el objeto que crearás, realizará en tu proyecto, puedes definir métodos genéricos como get y set (Para asignar valores a los atributos y obtenerlos).
Ejemplo de métodos get y set para la clase Auto
public class Auto { //Atributos public String placa; public String marca; //Constructor public Auto(String placa, String marca) { this.placa = placa; this.marca = marca; } //Métodos public String getPlaca() { return placa; } public void setPlaca(String placa) { this.placa = placa; } public String getMarca() { return marca; } public void setMarca(String marca) { this.marca = marca; } }
Nota: cabe resaltar, que si utilizamos un constructor, los métodos set de los atributos que utilizamos en el; «puede que no sean necesarios».
¿Cómo crear un objeto en java?
Para poder crear un Objeto en java es necesario tener en cuenta 2 cosas, primero el nombre de la clase y segundo el constructor de la clase; cuando nos referimos al constructor estamos hablando sobre si este recibe o no dichos parámetros.
A continuación, crearemos dos objetos de tipo «Auto», utilizando nuestra clase.
Auto auto1 = new Auto("XYZ-2", "BMW"); Auto auto2 = new Auto("ABC-1", "LAMBORGHINI");
Si observamos, hemos creado dos objetos: auto1 y auto2, ambos con la misma clase «Auto»; sin embargo, se diferencian en sus atributos (Aunque ambos sean Autos).
Acceder a los datos o atributos de un objeto en Java
System.out.println("Datos del Auto 1"); System.out.println("Placa: "+auto1.getPlaca()); System.out.println("Marca: "+auto1.getMarca()); System.out.println("Datos del Auto 2"); System.out.println("Placa: "+auto2.getPlaca()); System.out.println("Marca: "+auto2.getMarca());
Cuando creamos objetos, podemos acceder a los datos o atributos con los cuales fueron creados; si observamos en el ejemplo anterior, usamos el objeto para referenciar los métodos get, que retornan el valor de cada atributo.
Esto mostraría por consola:
Datos del Auto 1 Placa: XYZ-2 Marca: BMW Datos del Auto 2 Placa: ABC-1 Marca: LAMBORGHINI
¿Qué pasa si no utilizo un constructor?
En este caso, deberás utilizar los «métodos set», de cada atributo, para instanciar tus objetos, ejemplo:
Auto auto1 = new Auto(); auto1.setPlaca("XYZ-2"); auto1.setMarca("BMW"); Auto auto2 = new Auto(); auto2.setPlaca("ABC-1"); auto2.setMarca("LAMBORGHINI");
Tendríamos como resultado los mismos dos objetos de tipo «Auto»; de esta forma, los objetos se crean inicialmente «sin datos», y luego los asignamos con los «métodos set».
Veamos otros conceptos de Programación Orientada a Objetos en Java que estaremos estudiando próximamente
Herencia
Podemos definir a la herencia como aquella en la que se puedan definir nuevas clases basadas de unas ya existentes con el fin de reutilizar el código, generando así una jerarquía de clases dentro de una aplicación
Principios de POO
Como todo paradigma de programación tienes sus principios, la programación orientada a objetos en Java no es la excepción, en este caso contiene 4 y son los siguientes:
- Encapsulación: Consiste en mantener de forma privada el estado de cada objeto que se encuentran en dicha clase. Esto proporciona más seguridad en el programa. Para manipular estos objetos se debe hacer uso de métodos públicos.
- Abstracción: Cada objeto maneja de manera interna mecanismos para hacer uso otros. Este permite hacer cambios y adicciones de manera rápida
- Herencia: Este principio consiste en relacionar subclases con objetos, lo cual nos permite la reutilización del código.
- Polimorfismo: Es la capacidad que tiene los objetos de contener valores de diferentes tipos al momento de ejecutar el programa, es decir, el polimorfismo nos da la capacidad de procesar objetos de diferentes formas.
Ventajas de la programación orientada a objetos
- Reutilización del código.
- Evita la duplicación de código.
- Protege la información a través de la encapsulación, ya que solo se puede acceder a los datos del objeto a través de propiedades y métodos privados.
- Al estar la clase bien estructurada permite la corrección de errores en varios lugares del código.
Algunos lenguajes que soportan la programación orientada a objetos son:
Action Script , Ada, C++, C#, Clarion, C++Builder, D, Delphi, Harbour, Eiffel, Java, Objective-C, Ocaml, Oz, Perl (soporta herencia múltiple), PHP (en su versión 5) , PowerBuilder, Python, Ruby, Smalltalk, Magik (SmallWorld), VB.NET Visual FoxPro , XBase++
Recuerda que, si deseas aprender más de este lenguaje de programación, puedes acceder al curso gratuito de Java, donde te explicaré paso a paso ejercicios prácticos en este lenguaje.
CURSO JAVA CON INTERFAZ.
CURSO JAVA POR CONSOLA