Conceptos de programación orientada a objetos en Java | Qué es, Fundamentos con Ejemplos
¿Qué es OOPS?
Sistema de Programación Orientado a Objetos (POO) es un concepto de programación que funciona según los principios de abstracción, encapsulación, herencia y polimorfismo. Permite a los usuarios crear los objetos que desean y crear métodos para manejar esos objetos. El concepto básico de OOP es crear objetos, reutilizarlos en todo el programa y manipular estos objetos para obtener resultados.
OOP, que significa "Programación orientada a objetos", es un concepto popularmente conocido y ampliamente utilizado en lenguajes de programación modernos como Java.
Lista de conceptos de programación orientada a objetos en Java con ejemplos
Los siguientes son conceptos generales de programación orientada a objetos en Java:
1) Clase
La clase es uno de los conceptos básicos de OOP, que es un grupo de entidades similares. Es solo un componente lógico y no la entidad física. Entendamos este de los Conceptos OOP con un ejemplo, si tuviera una clase llamada "Autos caros" podría tener objetos como Mercedes, BMW, Toyota, etc. Sus propiedades (datos) pueden ser el precio o la velocidad de estos autos. Si bien los métodos que se pueden realizar con estos automóviles son conducir, retroceder, frenar, etc.
2) Objeto
Un objeto se puede definir como una instancia de una clase y puede haber múltiples instancias de una clase en un programa. Un objeto es uno de los conceptos de programación orientada a objetos de Java que contiene tanto los datos como la función que opera en los datos. Por ejemplo:silla, bicicleta, rotulador, bolígrafo, mesa, coche, etc.
3) Herencia
La herencia es uno de los conceptos básicos de OOP en el que un objeto adquiere las propiedades y comportamientos del objeto principal. Está creando una relación padre-hijo entre dos clases. Ofrece un mecanismo robusto y natural para organizar y estructurar cualquier software.
4) Polimorfismo
El polimorfismo se refiere a uno de los conceptos de programación orientada a objetos en Java, que es la capacidad de una variable, objeto o función para adoptar múltiples formas. Por ejemplo, en inglés, el verbo run tiene un significado diferente si lo usa con una computadora portátil , una carrera a pie y empresa . Aquí, entendemos el significado de correr basado en las otras palabras usadas junto con él. Lo mismo también se aplica al polimorfismo.
5) Abstracción
La abstracción es uno de los conceptos de OOP en Java, que es un acto de representar características esenciales sin incluir detalles de fondo. Es una técnica de creación de un nuevo tipo de datos adecuado para una aplicación específica. Entendamos este uno de los conceptos de OOP con un ejemplo, mientras conduce un automóvil, no tiene que preocuparse por su funcionamiento interno. Aquí solo debe preocuparse por piezas como el volante, los engranajes, el acelerador, etc.
6) Encapsulación
La encapsulación es uno de los mejores conceptos de Java OOP para envolver los datos y el código. En este concepto de programación orientada a objetos, las variables de una clase siempre están ocultas de otras clases. Solo se puede acceder usando los métodos de su clase actual. Por ejemplo, en la escuela, un estudiante no puede existir sin una clase.
7) Asociación
La asociación es una relación entre dos objetos. Es uno de los conceptos OOP en Java que define la diversidad entre objetos. En este concepto de programación orientada a objetos, todos los objetos tienen su ciclo de vida independiente y no hay propietario. Por ejemplo, muchos estudiantes pueden asociarse con un maestro, mientras que un estudiante también puede asociarse con varios maestros.
8) Agregación
En esta técnica, todos los objetos tienen su ciclo de vida separado. Sin embargo, existe una propiedad tal que el objeto secundario no puede pertenecer a otro objeto principal. Por ejemplo, considere el departamento de clase/objetos y el maestro. Aquí, un solo maestro no puede pertenecer a varios departamentos, pero incluso si eliminamos el departamento, el objeto del maestro nunca se destruirá.
9) Composición
La composición es una forma especializada de agregación. También se le llama relación de “muerte”. Los objetos secundarios no tienen su ciclo de vida, por lo que cuando el objeto principal elimina, todos los objetos secundarios también se eliminarán automáticamente. Para eso, tomemos un ejemplo de Casa y habitaciones. Cualquier casa puede tener varias habitaciones. Una habitación no puede formar parte de dos casas diferentes. Por lo tanto, si elimina la habitación de la casa, también se eliminará.
Ventajas de los OOP (Sistema de Programación Orientado a Objetos):
- Los conceptos de programación orientada a objetos en Java ofrecen una estructura modular clara y fácil de entender para los programas.
- Los objetos creados para programas orientados a objetos se pueden reutilizar en otros programas. Por lo tanto, ahorra un costo de desarrollo significativo.
- Los programas grandes son difíciles de escribir, pero si el equipo de desarrollo y diseño sigue los conceptos de OOPS, entonces pueden diseñar mejor con fallas mínimas.
- Mejora la modularidad del programa porque cada objeto existe de forma independiente.
Comparación de OOPS con otros estilos de programación con la ayuda de un ejemplo
Entendamos con un ejemplo en qué se diferencian los conceptos de OOP de Java de otros enfoques de programación.
Los lenguajes de programación se pueden clasificar en 3 tipos principales
- Lenguajes de programación no estructurados: El más primitivo de todos los lenguajes de programación que tiene un flujo de control secuencial. El código se repite a lo largo del programa
- Lenguajes de programación estructurados: Tiene un flujo de control no secuencial. El uso de funciones permite la reutilización del código.
- Lenguajes de programación orientados a objetos :combina datos y acción juntos.
Haga clic aquí si no se puede acceder al video
Entendamos estos 3 tipos con un ejemplo.
Suponga que desea crear un software bancario con funciones como
- Depósito
- Retirar
- Mostrar saldo
Lenguajes de programación no estructurados
Los primeros de todos los lenguajes de programación fueron los lenguajes de programación no estructurados. Un código muy elemental de aplicación bancaria en lenguaje de programación no estructurado tendrá dos variables de un número de cuenta y otra para el saldo de la cuenta
int account_number=20; int account_balance=100;
Supongamos que se hace un depósito de 100 dólares.
account_balance=account_balance+100
A continuación, debe mostrar el saldo de la cuenta.
printf(“Account Number=%d,account_number) printf(“Account Balance=%d,account_balance)
Ahora se retira la cantidad de 50 dólares.
account_balance=account_balance-50
Nuevamente, debe mostrar el saldo de la cuenta.
printf(“Account Number=%d,account_number) printf(“Account Balance=%d,account_balance)
Para cualquier otra operación de depósito o retiro, deberá repetir las mismas líneas una y otra vez.
Programación Estructurada
Con la llegada de la programación estructurada, las líneas repetidas del código se colocaron en estructuras como funciones o métodos. Siempre que sea necesario, se realiza una simple llamada a la función.
Programación Orientada a Objetos
En nuestro programa, estamos tratando con datos o realizando operaciones específicas en los datos.
De hecho, tener datos y realizar ciertas operaciones con esos datos es una característica muy básica en cualquier programa de software.
Expertos en Programación de Software pensaron en combinar los Datos y las Operaciones. Por lo tanto, el nacimiento de la Programación Orientada a Objetos que comúnmente se llama OOPS.
El mismo código en lenguajes de Programación Orientada a Objetos tendrá los mismos datos y alguna acción realizada sobre esos datos.
Class Account{ int account_number; int account_balance; public void showdata(){ system.out.println(“Account Number”+account_number) system.outprintln(“Account Balance”+ account_balance) } }
Al combinar datos y acción, obtendremos muchas ventajas sobre la programación estructural, a saber,
- Abstracción
- Encapsulación
- Herencia
- Polimorfismo
Se tratan con mayor detalle en tutoriales posteriores
Java
- Clase única de Java
- Tutorial de clases y objetos de C# con ejemplos
- C# Queue con ejemplos:¿Qué es C# Queue y cómo usarlo?
- ¿Qué es la abstracción en OOP? Método y clase abstracta de Java
- Encapsulación en Java OOP con ejemplo
- Método Java String indexOf() con subcadena y ejemplos
- Método Java String compareTo():cómo usarlo con ejemplos
- Sobrecarga de constructores en Java:qué es y ejemplos de programas
- Java - Objeto y Clases
- Java - Serialización
- Java - Conceptos básicos de los subprogramas