Programación orientada a objetos: como sugiere el nombre, la programación orientada a objetos o OOP se refiere a los lenguajes que usan objetos en la programación. La programación orientada a objetos tiene como objetivo implementar entidades del mundo real como herencia, ocultación, polimorfismo, etc. en la programación. En este artículo, discutiremos cómo se implementa este concepto de programación orientada a objetos en el escenario del mundo real.
Consideremos un ejemplo de un Geek que quiere aprender el curso completo de Java en línea. Elige una de las fuentes para conocer las diversas plataformas que ofrecen cursos de Java. Digamos que elige Google y busca el curso. Una vez que Google acepta la solicitud, realizará varias acciones para llevar a cabo la solicitud hasta que la solicitud haya sido atendida. La siguiente ilustración muestra los pasos realizados:
A continuación se muestra la implementación de la clase de demostración que demuestra los pasos mencionados en la imagen de arriba:
// Java Program to demonstrate // the above steps // Here, Geek is a class class Geek { // Until no request the // value will be false boolean value = false; private String request = ""; // Constructor of Geek Geek(String request) { // The value becomes true // once the constructor called // or when the object created value = true; this.request = request; System.out.println( "Geek Requested: " + request); } public String getRequest() { return this.request; } } // A google class class Google { private String request; // Constructor of Google Google(String request) { this.request = request; System.out.println( "Google Searched: " + request); } // This class may also contains methods // through which the request passes // messages to further more objects // and also send back a response } // Demo class to understand // A way of using abstraction public class MainDemo2 { // Driver code public static void main(String[] args) { // Geek class object creation Geek g = new Geek("Java"); // Checking whether Geek // has requested or not if (g.value) { // If the Geek requested // Google object created Google gl = new Google(g.getRequest()); // Google performs some action // To satisfy the Geek with his // Desired result } } }
Geek Requested: Java Google Searched: Java
Una figura ilustrativa del programa anterior:
Del ejemplo anterior, comprendamos la diferente terminología utilizada en el Diseño Orientado a Objetos :
- Agentes y Comunidad:
- Agente: Cada objeto en la comunidad actúa como un agente (es decir) del ejemplo anterior, podemos decir que Geek, Google y los otros objetos adicionales son conocidos como agentes. Cada agente realiza algunas acciones y esas acciones están siendo utilizadas por otros miembros de la comunidad para resolver el problema.
- Comunidad: Se crea por acciones. En el ejemplo anterior, podemos decir que se ha formado la comunidad de motores de búsqueda.
Por lo tanto, en el ejemplo anterior:
Agents: Geek, Google, and other objects Community: Search engine community
- Mensajes y Métodos:
- Mensajes: cada mensaje puede ser una solicitud o una respuesta que se transmite a otros miembros de la comunidad.
- Métodos Todo método se utiliza para realizar una acción en la comunidad, esa acción será utilizada por otros miembros de la comunidad para resolver diversos problemas.
- Responsabilidades: Del ejemplo anterior, podemos observar que una vez que el Geek pasa una solicitud a Google, la aceptará y realizará varias acciones para darle el resultado deseado. Significa que si la solicitud es aceptada por un agente, es responsabilidad del agente llevar a cabo la solicitud hasta que se resuelva el problema.
Finalmente, podemos concluir que hemos logrado ocultar los datos o Abstracción implementando el sistema de tal manera que cuando el Geek pasa la solicitud, se le ocultan las acciones realizadas por Google para obtener el resultado deseado.